MPLS LDP浅析及应用场景举例(解决IBGP路由黑洞问题)

一、概念

        华为ldp是mpls动态的标签分发、存储、控制协议,工作时在2.5层; 默认为只为32位主机路由且存在于路由表中的地址分标签

名词:

MPLS domain
LSR:Label Switching Router
LER:Label Edge Router
LSP:Label Switching Path
LDP:Label Distribution Protocol
RIB:Routing Information Base    #路由信息库
LIB:Label Information Base    #标签信息库
FIB:Forwarding Information Base    #转发信息库
LFIB:Label Forwarding Information Base(ILM+NHLFE)    #标签转发信息库
ILM:Token+ Incomping Interface+Incoming Label=Incoming Label Mapping
NHLFE:Next Hop Label Forwarding Entry下一跳标签转发出口(包括:Token、Next Hop、Out Label、Out Interface、LSRtype)
Bottom of Label Stack:标签栈底位
DS:DownStream下游
PHP:Penultimate Hop Popping次末跳弹出

LDP动作:

        Ingress    Push
        Transport    Swap
        Egress    Pop

LDP邻居建立过程(邻居建立时在传输层上方):

1、起用mpls ldp的端口向224.0.0.2的646端口广播hello message,双方互相收到
2、lsr-id大的(端口号n)向小的一方的lsr-id 646端口,发起TCP三次握手,建立邻居关系
3、lsr-id大的port n向小的一方的lsr-id 646端口,发起Initialization Message初始化信息
4、lsr-id小的一方确认信息无误,用646端口向大的一方port n回复Initialization Message Keep Alive Message
5、lsr-id大的port n向小的一方的lsr-id 646端口,发送Keep Alive Message Address Message
6、lsr-id小的用646端口向大的一方的port n,发送Address Message,包含自己有32位路由的IP地址
7、lsr-id大的进行tcp ack确认
8、lsr-id小的用646端口向大的一方的port n,发送Label Mapping Message Label,包含FEC和标签
9、lsr-id大的用port n向小的一方的646端口,也发送Label Mapping Message Label,包含FEC和标签
10、lsr-id小的进行tcp ack确认
然后,启用ldp的直连端口也重复上述过程

LDP LIB标签建立过程:

        1、在egress的路由器上,发现新的路由(32位主机路由),为始发的FEC分配3的标签,并给上游发Label Mapping消息,包含FEC和自己分发的标签
        2、上游收到了下游分的Label Mapping消息,检查是否本地有FEC、是否是下一跳发送。是则保存、并分配标签,用Lable Mapping发给上下游邻居(体现有序分发)
        3、Ingress,收到Label Mapping消息,检查是否是下一跳,是则存储、分配标签、发送给上游,上游检查,发现路由不可达,自由保留并在前边打星号

二、拓朴背景

        BGP100和BGP234是EBGP邻居关系; BGP500和BGP234是EBGP邻居关系;
        BGP234内,R2和R4建立IBGP邻居关系; 全域起IGP邻居关系OSPF,全域起MPLS域

三、要求

要求1:
        R1能否访问R5的业务地址?如果不通,是什么原因?怎么解决?
要求2:
        BGP234全域关闭mpls后,测试是否可以通?如果不通,怎么解决?

四、答案

        1、要求1答案:
             不能访问,原因是IBGP路由黑洞:当数据包到R2时,走FIB表,将172.16.5.5通过IGP传递,但R3上没有R5的路由,导致数据包被丢弃
解决方法:
             R2和R4敲命令route recursive-lookup tunnel命令,当数据包到R2时,叠代查询到MPLS隧道:下一跳10.1.4.4,走0x3,分配标签1025给R3;    R3查询LFIB表,走MPLS隧道,发现替换标签是3(隐含空标签),次末跳弹出,走路由到下一跳到达R4;    R4走EBGP路由到达R5,如下:

<R2>dis fib 10.1.4.4
  Route Entry Count: 1
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
10.1.4.4/32        10.1.23.3       DGHU  t[68]         GE0/0/1        0x3
#
[R2-bgp]dis tunnel-info tunnel-id 0x3
Tunnel ID:                    0x3
Tunnel Token:                 3
Type:                         lsp
Destination:                  10.1.4.4
Out Slot:                     0
Instance ID:                  0
Out Interface:                GigabitEthernet0/0/1
Out Label:                    1025
Next Hop:                     10.1.23.3
Lsp Index:                    14339
#
#
<R3>dis mpls lsp in-label 1025
-------------------------------------------------------------------------------
                 LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
10.1.4.4/32        1025/3        -/GE0/0/1                                     

        2、要求2答案:
         关闭BGP234的MPLS域后,R1到R5不通,原因是路由黑洞:当R2走FIB表转发到R3时,R3由于未起IBGP,导致没有R5的路由,丢弃数据包
        解决方法是:
         1、R3也起IBGP,全域IBGP互联,同样能获取到R5的路由,用路由传递(或者R3起路由反射器,也能获取到R5的路由);
         2、BGP234全域起MPLS,如要求1答案相同,或者走隧道如GRE
         3、R2和R4上做EBGP和IGP的双向引入,全程走路由

        *这里不用PE设备对域内peer不用敲peer x.x.x.x next-hop-local命令,因为不管下一跳是走哪个,已经进lsp tunnel里面、物理上的下一跳了

五、主要配置命令:

mpls lsr-id <lsr-id>    #配置mpls lsr-id,一般为环回口(必须为可用且可达的IP地址)
mpls     #全局|接口使能mpls
mpls ldp    #全局|接口下使能ldp
mpls ldp transport-address interface <接口>    #如果lsr-id不可达,则更换为物理接口
lsp-trigger all | host | ip-prefix ip-prefix-name | none    #为所有|指定路由分标签(华为ldp默认只为32位主机路由分标签)
route recursive-lookup tunnel    #全局模式下,开启叠代隧道查询(如在ibgp场景下,通过叠代进标签隧道的方式,解决路由黑洞问题)

dis mpls ldp lsp            #查lib表(控制层面)
dis mpls lsp |verbose   #查lfib表(数据层面)
dis mpls lsp in-label|out-label <label_name> |verbose
dis mpls interface        #查使能mpls的接口列表
dis mpls ldp interface | G0/0/0 #查看接口的mpls ldp详细信息
dis mpls ldp session    #查ldp会话表
dis tunnel-info all|tunnel-id <tunnel_id号>    #查隧道信息表
dis fib <ip>                   #查fib表
tracert lsp -a <sip> ip <dip> <dip掩码位数>    #跟踪lsp路径(包括本机压入标签信息条目)
tracert -v -a <sip> <dip>    #跟踪目标路径详细信息(不包括本机压入标签信息条目)


 

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值