• 文章搜索:
  • 唯快不破

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    无为长老的小内功——V5&V7平台版本VPN路由与VPNv4路由选路规则总结与案例分析

    作者:  |  上传时间:2014-11-26  |  关键字:无为长老的小内功——V5&V7平台版本VPN路由与VPNv4路由选路规则总结与案例分析

    一、VPN路由传递过程

    在BGP MPLS-VPN环境中,VPN路由使用VPNV4地址族和BGP扩展属性,通过MP-BGP协议进行传输,并以BGP路由的形式体现。

    我们先来回顾一下VPN路由的传递过程:

    1) CE路由表中的路由,经过PE-CE间的路由协议传递到PE相应的VPN路由表中;

    2) 在PE上,VPN的路由表被附加上相应的RD值和RT属性后被导入到VPNv4路由表中;

    3) PE通过MP-BGP协议将VPNv4路由传递给远端PE, 远端PE收到后,将VPNv4路由添加到自己的VPNv4路由表中;

    4) 在远端PE上,VPNv4路由表中的路由与VPN的RT(import)属性进行匹配,匹配上的VPNv4路由,被导入到相应的VPN路由表中;

    5) 远端PE VPN路由表中的路由,经过PE-CE间路由协议通告给远端CE,CE进行路由计算后,将这些路由加入到自己的路由表中。

    综上所述,VPN路由表包括从CE学习到的路由,从VPNV4路由表中根据RT值导入的路由。VPNv4路由表包括所有通过MP-BGP学习到的私网路由表,以及本地导入的路由表,按照不同的RD值进行排列。

    需要注意的是,BGP路由反射器反射的是VPNv4路由表的最佳路由。

    二、BGP选路规则

    VPN路由虽然也是BGP路由,但是其选路原则不同于BGP的选路规则,BGP选路规则如下:

    1) 丢弃下一跳(NEXT_HOP)不可达的路由;

    2) 优选首选值(Preferred-value)最大的路由;

    3) 优选本地优先级(LOCAL_PREF)最高的路由;

    4) 依次选择network命令生成的路由、import-route命令引入的路由、聚合路由;

    5) 优选AS路径(AS_PATH)最短的路由;

    6) 依次选择ORIGIN类型为IGP、EGP、Incomplete的路由;

    7) 优选MED值最低的路由;

    8) 依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由;

    9) 优选下一跳Cost值最低的路由;

    10) 优选CLUSTER_LIST长度最短的路由;

    11) 优选ORIGINATOR_ID最小的路由;

    12) 优选Router ID最小的路由器发布的路由;

    13) 优选IP地址最小的对等体发布的路由。

    三、不同于BGP的选路规则,V5平台版本的VPN路由与VPNv4路由选路规则如下(注意VPN路由与VPNv4路由选路规则的区别):

    1) 比较LocalPref值,优选LocalPref值较大的路由;

    2) 比较AS-Path长度,优选AS-Path较短的路由;

    3) 比较Origin属性,优选值较小的(Incomplete > EGP > IGP,IGP值最小);

    4) 比较MED值,优选MED值较小的路由;

    5) 比较路由类型,EBGP路由>联盟BGP路由>IBGP路由;

    6) 比较下一跳的IGP cost值,优选值较小的(对VPNv4路由则不进行此项的比较);

    7) 优先选择CLUSTER-LIST长度最短的路由;

    8) 比较源路由器的RouterId,优选RouterId值较小的;

    9) 比较NeighborId,优选NeighborId值较小的。

    四、V7平台版本的VPN路由和VPNv4路由选路规则一致,具体如下:

    1) weight值大的优(prefered_value)本地生成的路由WEIGHT默认32768,从邻居学到的路由默认为0

    2) local preference 值大的优(local preference value优先取路由上的值,其次是实例下配置的值)

    3) 本地初始路由优先级比较NETWORK > IMPORT > 聚合 > 自动聚合

    4) As-path 长度短的优(AsSequence Count的个数少的优)

    5) Origin小的优( IGP > EGP > INCOMPLETE )

    6) Med小的优(配置 compare-different-as-med或bestroute med-confederation比较)

    7) 协议优选级比较(EBGP > 联盟EBGP > 联盟IBGP > IBGP)

    8) 协议路由依赖路由的Metric值比较 BGP-nexthop-metric comparison

    综上所述,V7平台版本VPN路由和VPNv4路由选路规则一致,而V5平台版本VPN路由和VPNv4路由选路规则不一致。所以V7平台上VPN路由和VPNv4路由优选结果肯定相同,V5平台上可能不同。

    五、案例分析

    下面我们来分析一个实际案例,V5平台版本VPN路由选路和路由负载分担应用案例,及此种情况下V7平台版本上处理的区别:

    如下图所示,SR88-3和SR88-4作为路由反射器,其他四台SR88路由器分别和这两台路由反射器建立MP-IBGP邻居。有VPN路由192.168.0.0/24,被SR88-1和SR88-2两台设备发布到BGP VPNv4路由表中:

    1、从各台路由器上查看BGP路由表中此条路由

    1) SR88-2除了有本地路由,还有SR88-3和SR88-4两台路由反射器反射过来的路由:

    说明: D:\个人工作资料\高端产品组资料经理工作\扩展类资料工作\百日维新\四期\佛山广电MPLS BGP选路问题\1.png

    2) SR88-3,其中两条路由分别来自SR88-1和SR88-2,以及一条是SR88-4反射过来的路由:

    说明: D:\个人工作资料\高端产品组资料经理工作\扩展类资料工作\百日维新\四期\佛山广电MPLS BGP选路问题\2.png

    3) SR88-4,从下图可以看出优选了SR88-2的路由,但从上面的几张图可以看出SR88-4反射出去的路由下一跳均是172.18.245.76,即SR88-1发布过来的路由,而没有反射SR88-2发布过来的路由:

    说明: D:\个人工作资料\高端产品组资料经理工作\扩展类资料工作\百日维新\四期\佛山广电MPLS BGP选路问题\3.png

    4) SR88-5上可以看出两台路由反射器反射给它的路由都是下一跳172.18.245.76,即SR88-1发布的路由,但是在SR88-4上优选的却是下一跳为172.18.245.77的路由,即SR88-2发布的路由:

    说明: D:\个人工作资料\高端产品组资料经理工作\扩展类资料工作\百日维新\四期\佛山广电MPLS BGP选路问题\4.png

    5) SR88-6上可以看出两台路由反射器反射给它的路由也都是下一跳是172.18.245.76,即SR88-1发布的路由:

    说明: D:\个人工作资料\高端产品组资料经理工作\扩展类资料工作\百日维新\四期\佛山广电MPLS BGP选路问题\5.png

    如此就造成了以下一种情况:

    SR88-6去往192.168.0.0/24这个网段的路由最优的应该是下一跳为172.18.245.77的路由,但是它却选择了下一跳是172.18.245.76的路由。这是为什么呢?

    2、我们来分析一下原因,参考V5平台对于VPNV4与VPN路由优选规则和区别

    1) 最佳的VPNv4路由,优选规则前五项的属性相同,接下来因为不比较IGP cost值,则优选route id 小的,即优选始发为172.18.245.76的路由,反射器反射的是VPNv4最优的路由,所以向客户端发送的是这条路由,所以SR88-5/SR88-6上学到的都是始发为172.18.245.76的路由;

    2) 最佳的VPN-instance路由,因为比较IGP cost值,因SR88-4与SR88-2直连,所以SR88-4优选始发为172.18.245.77的路由。

    3、负载分担怎么办?

    用户希望在SR88-5/SR88-6上实现VPN路由192.168.0.0/24的负载分担,同时选择下一跳是172.18.245.76和172.18.245.77的两条路由,那该如何实现呢?

    解决方法如下:

    对于两台路由反射器SR88-3/SR88-4上做如下路由策略,对于直连的PE(SR88-1或者SR88-2)发布过来的VPNv4路由,修改路由属性让其优选,比如在SR88-3上配置

    ipv4-family vpnv4

    peer 172.18.245.76 route-policy 1 import

    在SR88-4上配置

    ipv4-family vpnv4

    peer 172.18.245.77 route-policy 1 import

    route-policy 1 是对于对端发布的路由,修改本地优先级为110(原优先级为100)。这样两台路由反射器只会把直连的PE(SR88-1或者SR88-2)发布过来的VPNv4路由(通过local-prefence优选)发布到远端的PE上(SR88-5或者SR88-6).

    而在SR88-5/SR88-6上的vpn视图下配置“balance 2”,这样就能形成2条等价路由:

    [H3C]display ip routing-table vpn vpn1

    Routing Tables: vpn1

    Destinations : 3 Routes : 4

    Destination/Mask Proto Pre Cost NextHop Interface

    127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0

    127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0

    192.168.0.0/24 BGP 255 0 172.18.245.77 NULL0

    BGP 255 0 172.18.245.76 NULL0

    Bingo! 问题解决!

    V7平台版本的VPN路由和VPNv4路由选路规则一致,所以VPNv4的路由表也会通过IGP cost值优选路由,其结果与VPN路由表优选结果一致,不存在上述问题。如要形成VPN路由负载分担,在SR88-5/SR88-6上的vpn视图下配置“balance 2”即可。

    附:V7平台版本上VPN路由是否能形成负载分担,参考如下属性,

    1) 路由类型不同不能形成等价(区分IBGP,EBGP,Import引入,network引入,聚合,自动聚合);

    2) IBGP邻居MED值不同不能进行负载分担;

    3) As-path值不同不能形成等价;

    4) 反射路由和非反射路由不进行负载分担;

    5) 标签路由与非标签路由不能形成等价。