MPLS VPN私网路由选路测试分析

  概述

  本文在学习了H3C 协议案例中《MPLS VPN私网路由选路的原则》一文后,茅塞顿开在H3C MSR 路由器上进行学习测试,路由器版本为V5 VRP版本。通过测试证明了采用不同的RD和在BGP vpn-instance中配置balance实现私网路由负载分担,以及控制私网路由选择等,本文主要描述了在控制私网路由方面,采用相同RD和不同RD的区别。

  测试实验:

  

blob.png


  图一 V5版本私网选路的特殊性

  R1、R2、R3、R4四台路由器物理连接如上所示,IP地址、IGP、MPLS、LDP的配置为常规配置。R3是R1和R4的RR,R3与R2建立IBGP邻居。R1和R4分别将10.1.1.0/24网段通过MP-IBGP发布给R3,同时分别设置不同的LP值作为出策略,RR同样遵循反射器不改变反射路由的LP属性,传递给IBGP邻居R2,R2要分两种情况进行处理,私网的RD一样,那么在vpnv4路由表中就选择出LP大的下一跳作为自己的优选;若私网的RD不一样,那么在vpnv4路由表中都为优选,但在vpnv4路由交叉到vpn-instance路由表中再通过LP值比较选择出优选路由。以下是各设备主要配置和状态信息。

  R1上的主要配置如下:(mpls、mpls ldp、igp路由为常规配置略)

  bgp 100

  ……

  ipv4-family vpnv4

  peer 3.3.3.3 enable

  peer 3.3.3.3 route-policy 1 export

  ipv4-family vpn-instance vpn2

  import-route direct

  route-policy 1 permit node 10

  if-match ip-prefix 1

  apply local-preference 1000

  apply cost 1000

  route-policy 1 permit node 20

  ip ip-prefix 1 index 10 permit 10.1.1.0 24

  R4上的主要配置与R1类似,其主要区别是配置不同的LP值和MED值(LP:3000,MED:3000):

  RR上的主要配置:(mpls、mpls ldp、igp路由为常规配置略,RR上也可以不配置vpn-instance)

  R2上的状态信息 (其配置为普通的MPLS VPN/MBGP配置略)

  disp ip routing-table vpn-instance vpn2

  ......

  Destination/Mask Proto Pre Cost NextHop Interface

  10.1.1.0/24 BGP 255 3000 4.4.4.4 NULL0

  ......

  disp bgp vpnv4 all routing-table

  ……

  Route Distinguisher: 1000:1

  Network NextHop In/Out Label MED LocPrf

  *>i 10.1.1.0/24 4.4.4.4 NULL/1024 3000 3000

  Total routes of vpn-instance vpn2: 3

  Network NextHop In/Out Label MED LocPrf

  *>i 10.1.1.0/24 4.4.4.4 NULL/1024 3000 3000

  从选路结果来看,优选的原则是先比较Local-preference,再比较MED。若RD相同则在进入vpnv4路由表时就已经选出最优路由了。

  如果将Med,Local-preference配置为相同,并且在RD相同的情况下选择ROUTER-ID小的作为最优选路由,分别删掉R1和R4上的策略后,R2到10.1.1.0/24路由最优下一跳为1.1.1.1,如下所示:

  disp ip routing-table vpn vpn2

  10.1.1.0/24 BGP 255 0 1.1.1.1 NULL0

  ......

  若使RD为不同,配置与上面的一致,得到情况又如何呢?

  改变配置 (改变各自路由器的RD为不同)

  通过以上的修改后,R2得到的10.1.1.0/24路由最优与RD相同时的情况一致,R1和R4加入相同策略后,R2下一跳仍为4.4.4.4,但其中有一个细微的改变既是vpnv4路由表,如下:

  [r2]disp bgp vpn all routing-table

  ……

  Route Distinguisher: 1001:1

  Network NextHop In/Out Label MED LocPrf

  *>i 10.1.1.0/24 1.1.1.1 NULL/1025 1000 1000

  Route Distinguisher: 1004:1

  Network NextHop In/Out Label MED LocPrf

  *>i 10.1.1.0/24 4.4.4.4 NULL/1025 3000 3000

  Total routes of vpn-instance vpn2: 2

  Network NextHop In/Out Label MED LocPrf

  *>i 10.1.1.0/24 4.4.4.4 NULL/1025 3000 3000

  另外,当去掉R1和R4上的策略后,最后仍旧按照ROUTER-ID小为最佳路由。

  总结

  通过以上测试后,在mpls vpn中修改RD值与不修改RD值得到的最终结果都一样,但其中过程还是有差别的,主要是vpnv4路由表不一致,需要在实际工程中稍加注意。另一方面也证明了v5版本在MPLS选路上更加清晰,不像v3那样匪夷所思。

  在实际工程中,各PE路由器怎样选择此RD,是配置一样还是不一样,个人见解是若私网没有重复的地址就配置成一样,若存在重复的地址可以配置成不一样(是否路由器版本中为v3版本),当然其结果都一致,但网络需要实现负载分担时,就必须配置成不一样。


2016年01月