关于MPLS VPN标签问题
MPLS域中LSR-ID默认为最大IP地址的loopback接口,这点没问题吧?但是如果将PE的LSR-ID更改成24位掩码地址,于是在LIB表中会出现该接口的两条路由,分别为24位、32位,并且32位掩码的地址不会绑定标签(空标签),也就意味这它不会给次末跳发送该空标签,在次末跳上查看LFIB表,关于32位掩码的outgoing为untag。问题来了:
MPLS VPN的双层标签就在次末跳上执行了弹出所有标签,出站PE接收到纯IP包,没有内网标签直接丢弃。
组织能力不是很好,其实我只是想问为什么LSR-ID必须为32位掩码,如果不是,为什么LIB表中会出现两条该接口的路由信息。如下图:R4的就是环回口配置了24位掩码的PE
?LSR-ID是什么?表示没有看懂
你是不是在OSPF域内运行MPLS啊
OSPF环回口默认发送的是32位主机路由,如果你环回口是24位
那么路由器给自己的环回口分配的标签是24位的,而邻居收到的路由是32位的,分配的标签也是给32位路由分配
根本就没有那个24位的路由标签,查找LFIB的时候自然无法进行标签交换 本帖最后由 jsjsboy 于 2016-1-4 15:03 编辑
qsy112233 发表于 2016-1-3 22:49
?LSR-ID是什么?表示没有看懂
你是不是在OSPF域内运行MPLS啊
OSPF环回口默认发送的是32位主机路由,如果 ...
LSR-ID就是LDP router-id。
的确是OSPF内运行的MPLS,你这么一点,我想起来了,还真是环回口在OSPF看来是主机路由,通告给邻居的也是32位,但是有一点说错了,如果环回口配置成24位掩码,MPLS会给这个24位绑定标签,而32位不绑,这问题就是看LIB表发现的,次末跳上LIB会有24位和32位的路由标签各一条,只有24的位远程标签对应的是隐式空,而32位只有本地标签,没有下一跳远程标签,末跳上的LIB不为32位绑定标签
多谢,解决了我的问题,我还以为是LDP的router-id必须为32位,看来跑OPSF还是有些问题 本帖最后由 qsy112233 于 2016-1-4 20:27 编辑
jsjsboy 发表于 2016-1-4 14:35
LSR-ID就是LDP router-id。
的确是OSPF内运行的MPLS,你这么一点,我想起来了,还真是环回口在OSPF看来 ...
1、首先分发标签是自主分发,默认会为每一条IGP路由分发一个标签
2、将自己分发的标签和邻居分发的标签放入LIB,把LIB中自己的标签和下一跳分发的标签放入LFIB
3、默认只会给自己的直连接口分配隐含空标签,具体为什么,你可百度
又看了一下,发现你可能理解错我的意思了 qsy112233 发表于 2016-1-4 20:23
1、首先分发标签是自主分发,默认会为每一条IGP路由分发一个标签
2、将自己分发的标签和邻居分发的标 ...
我知道,但是,如果R4的环回口上配置的是4.4.4.4/24位
在R4上show mpls ldp bindings
里面会有
1、4.4.4.4/24 本地标签/远程标签
2、4.4.4.4/32远程标签
虽然通告出去的是32位路由,但是实际上并没有对这条32位路由绑定空标签,只有一个R3发来的标签
反而却是对4.4.4.4/24绑定了空标签,还会收到R3发来的远程标签
我的理解是R3没有接收到R4对4.4.4.4/32绑定的空标签,于是对这条路由outgoing为untagged
我反复测了几次,有个现象:把环回口改成32位然后再改回24位,这样R4就会给32位路由分发标签。我等了几分钟后测试仍然可以通信。
当然我最后的解决方法是对修改R4环回口为P2P,掩码仍为24位 很多地方你弄错了
MPLS是为路由表(CEF)中的每条路由分配一个标签
R4上只有/24的路由,所以他只会为这24位的路由分配标签
R3只收到32位的路由,所以只会为32位的路由分配标签
为什么直接traceroute可以成功,但是加了一层VPN标签就不成功了呢
1、首先R4把路由通告给R3,然后分发自己的4.4.4.0/24的标签
2、R3收到路由4.4.4.4/32和24位的标签(R4分配),在LIB中这条24 的标签显示no route ,然后把32位这条路由自己的标签以及下一跳分配的标签加入LFIB表,由于R4没有分配32位的标签,所以没有下一跳的标签。所以在LFIB里显示no label或者untagged
3、R3分配32位的路由标签,发送给R2和R4
同样R4收到以后,加入LIB表,但是他本地没有这条路由,所以显示no route
4、R2收到的标签就没什么了,32位的,很正常,也能进行标签交换
然后这时候直接用R2trR4
R2检查FIB表,发现到R2需要压上R3分配给R2的关于4.4.4.4/32的标签
R3收到以后,检查LFIB,对方是no label,直接弹出所有标签,恢复成IP包送给R4,然后这就通了
但是,为什么加了VPN标签就不行了!
同样数据从R2发送到R4
压入VPN底层标签,再压入R3分配给R2的关于4.4.4.4/32的标签,传递给R3
R3收到标签,依旧是no label,然后这里就执行一个动作:弹出所有标签,恢复成IP包
然而这里是MPLS VPN域,恢复成IP包以后检查本地的FIB表而不是VRF的,没有路由了,所以就直接丢包了 jsjsboy 发表于 2016-1-5 00:17
我知道,但是,如果R4的环回口上配置的是4.4.4.4/24位
在R4上show mpls ldp bindings
里面会有
其实没有那么复杂,简单点想的话,就是没有标签可以交换了,只能恢复成IP包 这么说,丢包是发生在R3,而不是R4。
恢复成IP包查路由表,发现没有CE的路由,直接丢弃。
我一直认为R3恢复成IP包传递给R4,然后R4丢包的。
原来是R3。。太感谢了
qsy112233 发表于 2016-1-5 17:29
其实没有那么复杂,简单点想的话,就是没有标签可以交换了,只能恢复成IP包
:D:D:D
页:
[1]