文章目录
LDP标签分发协议
- 基于FEC自动分配标签构建LSP
- 用于建立动态LSP
- LDP报文头部结构
- 信息类型
工作原理
LDP工作过程
- 发送Hello消息用于发现邻居;UDP发送
- LSR_1主动发起并建立TCP连接;TCP进行建立
- 主动方发初始化消息协商参数
- 接收参数则发初始化消息和Keepalive消息
- 接收参数则发送 Keepalive 消息
bashdis mpls ldp adjacency #查看邻居关系,只能说明邻居关系建立成功,不能说明会话建立成功 dis mpls ldp session #查看邻居会话关系 dis mpls ldp inter g0/0/0 #查看接口状态,接口Down掉之后邻居和会话肯定都断掉
标签分配过程
标签的分配是下游开始分配到上游的
- EGress设备分配标签到FEC(路由),向上游通告标签映射(标签与FEC路由的对应关系)
- Transit 接受标签映射,向上游通告对应FEC(路由)的标签映射
- InGress接受标签映射
- 标签映射接受前提:判断标签映射通告者和该FEC的下一跳是否一致
- 只会对主机路由进行分配标签,互联网段不会分配标签(可以改)
LDP应用
解决BGP路由黑洞问题
MPLS在BGP的IBGP内解决全互联问题,可以直接跨设备建立邻居,直接解决路由黑洞问题,因为MPLS交换的是标签路径,中间的BGP设备是不需要看路由的,看标签进行数据的转发
配置完基本的MPLS和BGP操作之后,只有R2和R5上面有两个私网的路由,中间的设备没有私网路由,这时候默认还是走IP网络,此时是无法通信的,中间走路由肯定不行,虽然R3和R4没路由,但是配置MPLS之后,可以经过标签进行转发,这时候在两台LER上配置----路由迭代,让私网的包走LSP链路
之后直接查看FIB,发现去往另一端的网段是走路由下一跳的,此时不行
bash[R2-bgp]dis fib | in 2.0 Destination/Mask Nexthop Flag TimeStamp Interface TunnelID 10.1.2.0/24 23.1.1.3 DGU t[2527] GE0/0/1 0x0
但是在BGP路由表中看另一端的网段下一跳是正确的 LSP 路径,需要让本地路由走正确的LSP路径
bashTotal Number of Routes: 2 Network NextHop MED LocPrf PrefVal Path/Ogn *> 10.1.1.0/24 0.0.0.0 0 0 i *>i 10.1.2.0/24 5.5.5.5 0 100 0 i
配置命令:
bashroute recursive-lookup tunnel #路由递归到标签交换隧道中,只能在LER设备上进行配置,两端都需要配置 dis fib | in 2.0 #之后我们就能看见走路由标签交换了 dis tunnel-info tunnel-id 0x5 #查看Tunnel隧道信息
之后使用 Tracert -v 10.1.2.253 进行测试时候会发现经过MPLS网络的信息,会直接用 * 代替
bash#华为认为,在Tracert路由进入MPLS网络中之后,里面的设备需要一跳一跳的去回复,回复的是ICMP差错报文,当只有一层标签的情况下,ICMP的报错信息会沿着IP路由回来,但是如果要沿着IP路由回来的话,本地上没有路由,所以就出现 * 号 配置:undo ttl expiration pop #命令是将TTL的报错命令沿着LSP路径继续往后发,也可以记成让 Tracert 回显,在LSR上配置
配置以上命令之后就能在 Tracert 中查看到了
倒数第二跳弹出
倒数第二跳当然也可以不弹出,会对 LER 设备构成困扰
倒数第二跳弹出,主要是用来缓解LER的压力
LER连接的是IP网络,最后一跳依靠 LFIB 来判断是否需要弹标签,如果需要弹标签,还需要查询 IP 路由表,之后查询FIB表再进行转发。
最后一跳查两张表,FIB(转发表)和LFIB(标签转发表)
为了降低LER的压力,在倒数第二的LSR设备上进行标签的弹出,让LER设备直接查询路由进行FIB转发
Author:DC