顾名思义,OptionB的解决方案中,两个域的关系是直连的weipnv4邻居关系
说明:R4、R5之间建立的是wiepnv4的邻居关系
其他说明在配置中展开
[R4]dis c c bgp
[V200R003C00]
#
bgp 234
router-id 4.4.4.4
undo default ipv4-unicast
peer 10.1.2.2 as-number 234
peer 10.1.2.2 connect-interface LoopBack0
peer 10.1.45.5 as-number 567
#
ipv4-family unicast
undo synchronization
undo peer 10.1.2.2 enable
undo peer 10.1.45.5 enable
#
ipv4-family v4
policy -target
peer 10.1.2.2 enable
peer 10.1.45.5 enable
#
return
[R5]dis c c bgp
[V200R003C00]
#
bgp 567
router-id 5.5.5.5
undo default ipv4-unicast
peer 10.1.7.7 as-number 567
peer 10.1.7.7 connect-interface LoopBack0
peer 10.1.45.4 as-number 234
#
ipv4-family unicast
undo synchronization
undo peer 10.1.7.7 enable
undo peer 10.1.45.4 enable
#
ipv4-family v4
policy -target
peer 10.1.7.7 enable
peer 10.1.45.4 enable
#
return
详细说明:R1发来的路由是携带RT+ipv4即96bit的weipnv4路由,但是R4是没有RT的标识的,即不收这条路由;R5上相同
为什么optionA方案中没有这个问题?
因为OptionA中R4、R5上配置了RT 收的内容就是R2、R7上的RT
如何看R1、R7将路由发给了R2、R5
[R2]dis bgp v4 all routing-table peer 10.1.4.4 advertised-routes
[R7]dis bgp v4 all routing-table peer 10.1.5.5 advertised-routes
意义:
为了减少不必要的标签存储,针对PE而言(标签存在的本质);PE对接CE是接收哪些CE的路由是有要求的,这个要求就是ARF,并不是谁的都收;若关闭了ARF,那么PE就接收任意的CE路由
对于ASBR,其必须要学习到所有的PE路由,那么就需要关闭ARF
解决:
ipv4-family v4
Undo policy -traget
R4不能将路由(从R5学到的)发给R2;R5不能将路由(从R4学到的)发给R7
原因:R4和R5的接口没有使能MPLS,导致标签的隧道不可达
解决:MPLS意义在于使能标签的功能,具体标签是谁发的可能是LDP、BGP
未使能:没有出接口
使能:有出接口
为什么optionA方案中没有这个问题?
OptionA中R4、R5之间是ipv4 weipn-instance的BGP,传递的是IP包,不需要使能mpls,重新进入新的mpls域会重新打RT,切双方都有互相导入的RT
为什么要使能mpls?
因为R4、R5之间要传递的是label,所以接口要使能mpls,不用开启ldp是因为这个label是由weipnv4产生的 而不是ldp产生的
R4给R2传递weipn路由(从R5学到的),R2不收;R5给R7传递路由(从R4学到的)
如下从两个维度进行分析
R4、R5又是一段LSP,还是需要一个label
R4上重新产生一个新的私网label,送给上游,R4上将进行一个SWAPPUSH操作 即更换label
1、R1查询FIB给到R2
dis fib 172.16.8.8
2、R2查FIB发现这是一个标签包,首先压入底层标签1029(R5通过v4传递给R4的底层标签)
dis fib -instance a 172.16.8.8
然后查询token,压入1024的公网label,这个是R4通过ldp协议分发的,下一条是R3
dis tunnel-info tunnel-id 0x3
至此,R2上有两层label
3、R3上查询in-label为1024的信息,弹出1024,即PHP,露出1029,给到R4
dis mpls lsp in-label 1024 verbose
4、R4上进行swappsuh操作,将私网的1029换成1028,1028这个label是R5通过v4传递来的私网label(R4 <—> R5这一段),给到R5
dis mpls lsp in-label 1027 verbose
R4的入接口抓包,可以看到公网label被弹出,仅剩私网label 1029
R4的出接口抓包,可以看到私网label做了更换的操作,变成了1028
5、R5上进行swappsuh操作,将私网的1028换成1026,1026这个label是R8通过v4传递来的私网label,给到R7 R7传递给R5(控制层面)
dis mpls lsp in-label 1027 verbose
此lsp还有顶层的token,查询详情还需要压入公网的label1025 这个是mpls-domain中ldp生成的,给到R6
dis tunnel-info tunnel-id 0x3
6、R6将公网的1025 label弹出,只剩下私网的1026这个label
dis mpls lsp in-label 1025 verbose
7、R7将私网的1026弹出,查询FIB
dis mpls lsp in-label 1026 verbose
dis fib 172.16.8.8
问题汇总:
LSP路径