Q1.MPLS不会为BGP路由分配标签?以实例为证。
我们来重点关注192.168.12.0/24和192.168.56.0/24网段!
我们在左端OSPF和BGP都不宣告192.168.12.0/24网段,在右端OSPF和BGP都宣告192.168.56.0/24网段,以此来做对比测试!观察结果...
config:
R1:
router bgp 100
no network 192.168.12.0 mask 255.255.255.0
R2:
router ospf 1
no network 192.168.12.2 0.0.0.0 a 0
R5:
router ospf 1
network 192.168.56.5 0.0.0.0 a 0
R6:
router bgp 300
network 192.168.56.0 mask 255.255.255.0
观察R2上对于192.168.56.0/24网段的标签分发:
观察R1对于环回口6.6.6.6的可达性:
观察R5上对于192.168.12.0/24网段的标签分发:
观察R6对于环回口1.1.1.1的可达性:
现象归结:在执行了以上的OSPF和BGP配置后
左端:R1 B 192.168.56.0/24 6.6.6.0/24
R2 O 192.168.56.0/24
B 6.6.6.0/24 1.1.1.0/24
右端:R6 B 1.1.1.1.0/24
R5 B 1.1.1.0/24 6.6.6.0/24
结论:由于左端具备了对于IGP和BGP的路由,所以LDP对192.168.56.0/24进行了标签的分发。
但是,是因为IGP还是因为BGP,无法确定?!
为什么R6通,而R1不通!?
继续试验求解!
我们将协议的使用稍作修改!
config:
R1:
router bgp 100
no network 192.168.12.0 mask 255.255.255.0
R2:
router ospf 1
network 192.168.12.2 0.0.0.0 a 0
R5:
router ospf 1
no network 192.168.56.5 0.0.0.0 a 0
R6:
router bgp 300
network 192.168.56.0 mask 255.255.255.0
观察现象!
观察R2上对于192.168.56.0/24网段的标签分发:
观察R1对于环回口6.6.6.6的可达性:
观察R5上对于192.168.12.0/24网段的标签分发:
观察R6对于环回口1.1.1.1的可达性:
现象归结:此时R2有192.168.56.0/24的B路由,但是没有IGP路由,所以不会分标签!
此处,也就证明了:MPLS的LDP协议不会为BGP路由分发标签!
Q2:为什么在ISP内部同事设置MPLS和BGP两种协议?他们是如何运作的?
在解决这个问题之前,我们要先理解BGP与IGP转发数据包的区别:BGP可以与不是直连的路由器建立邻居的关系!换句话说:BGP在转发数据包,超找路由表的下一跳的时候,这里的下一跳可能并不是直连的链路地址!!!
而MPLS在此时的作用就是:帮助BGP寻找下一跳,也就是说,MPLS只要为BGP的下一跳打上标签,使之能够到达下一跳,其他的事BGP句能够自行解决!
做测试证明该结论:现在在R2上有B路由:192.168.56.0/24 下一跳是5.5.5.5!MPLS为之分配标签!
倘若在R2R3R4R5上使用BGP物理口建立邻居关系的话!那么该网络是不同的!!!
至此!全部解决两个问题!