前一天排错
Acl 1 匹配所有ospf的数据包 (目的 ospf建立邻居关系 传递路由条目)
2 放行UDP报文 让LDP邻居能互相收发HELLO包
4 放行TCP报文 让LDP邻居能够建立TCP会话 互传标签
5 放行ICMP报文 让R1能ping通3.3.3.3
总结mpls基础标签转发流程
IGP汇总问题
此时 在R2的S0/1接口做汇总 发给R3 针对(1.1.1.1/32)
汇总成 1.1.0.0/16 本地自动生成1.1.0.0/16 指向null0
本地会为1.1.0.0/16 分配空标签,传递给R3,不会影响MPLS域中数据包的传递,只是每次传递的都是空标签。
Bgp 路由黑洞问题(有何好处?)
R1和R3为IBGP邻居 R2和R1 R3均没有任何IBGP邻居关系
此时在R3上起源33.33.33.33/32 (33.33不能宣告进底层的IGP中)
R1能够通过IBGP更新学习到33.33,但是此时直接
Ping 33.33.33.33 sou 1.1.1.1 会发现到R2丢包,因为路由表的递归查找顺序,永远是基于数据包目的IP查路由表,在R2上没有33.33的路由,直接丢包。(BGP 路由黑洞)
解决方法
R1 R2 R3互相建立LDP邻居关系,此时R1为inbound LSR 查FIB表 压关于3.3的标签,R2为link LSR查LFIB表 压 3.3的{}标签,R3为outbound LSR 查FIB表到达33.33的目的地
解决方法
Ospf 24位环回口问题
由于ospf24位环回接口默认认为一个网络末节,此时通告出去的关于3.3.3.3都是/32位的,此时R3不会为1.1.1.1/32分配本地标签,所以不会传递1.1.1.1/32的{}标签给R2
R2在收到一个标签包,发现没有任何下有路由器再为此前缀分配标签,R2动作 untagged(弹出所有标签)
在纯净MPLS域里没问题,MPLSVPN排错的重点!
Ldp 认证
(密) 对方跟我建立邻居的地址
全局下配置mpls ldp neighbor 2.2.2.2 password cisco
(密码可以加空格!)
查看密码加空格的方法
Sh run | s cisco(加空格)
MPLS过滤标签
出方向过滤标签
Standard IP access list 10
10 permit 1.1.1.1 (3 matches)
Standard IP access list 20
10 permit 3.3.3.3
R1(config)#mpls ldp advertise-labels for 10 to 20
此条命令代表 我把1.1.1.1的前缀本地分配的local标签 只传给3.3.3.3的邻居(其他都不传)
此时在R2上看到现象
关于1.1.1.1/32此条前缀
有local标签
remote方向只有R3有发的标签 R1被过滤
只会出现在拍错中
查找方法
sh run | s mpls ldp
修改方法 将正确的邻居RID加入相对应的ACL中
入方向的标签过滤
在R1的全局配置下mpls ldp neighbor 2.2.2.2 labels accept 30
access-list 30 permit 3.3.3.3
此时可以看到 只接受关于3.3.3.3/32的标签
sh run | s mpls ldp
查看方法
标签回收
排错实验
总结排错
1、检查全局MPLS IP是否关闭
代表全局MPLS IP进程被关闭 需要打开
2、检查全局cef
如果发现是 no ip cef 请打开
3、查看接口下是否开启mpls ip
如果发现LDP邻居未建立
1、R1(config)#mpls ldp router-id loopback 0 force
如果有两个loopback口 lo0 1.1.1.1 lo1 100.1.1.1
此时100.1.1.1未宣告进底层使用此条命令 强制指定lo0
2、查看是否有数据包的过滤
3、查看是否有标签过滤
查看命令
4、查看密码是否匹配(注意空格)
5、全局下是否关闭标签分发
6、ospf环回口24位的问题
修改环回口的ospf网络类型 改为P2P
最后检测的命令为 trace(路径成功)