NE20E由于路由preference 配置导致流量迂回

发布时间:  2015-12-08 浏览次数:  553 下载次数:  0
问题描述

如下图所示:新上线NE20E作为区域的新建PEextreme8810设备作为CE设备双归至原PET600以及新建PENE20E,增加网络的可靠性。预期实现的流量如绿色箭头所示。



但是在实际上线后的流量如下图所示,流量横穿了两台PE之间的链路。


 

处理过程

1、路由情况

首先查看NE20E上转发到CE的路由,发现所有的路由均是指向了同级的PE设备,相关路由情况如下所示:

[~SZ_GZ-DR-NE20E-2]dis ip routing-table vpn-instance GX_CNOOC_SVR
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : GX_CNOOC_SVR
         Destinations : 3302     Routes : 3302     

Destination/Mask    Proto   Pre  Cost        Flags NextHop         Interface

        1.1.1.0/30  IBGP    20   1000          RD 10.248.24.1     LDP LSP
     10.0.192.0/20  IBGP    20   2001          RD 10.248.9.1      LDP LSP
       10.8.0.0/21  IBGP    20   0             RD 10.248.12.5     LDP LSP
      10.8.10.0/23  IBGP    20   0             RD 10.248.12.5     LDP LSP
       10.9.0.0/21  IBGP    20   6             RD 10.248.12.1     LDP LSP
       10.9.8.0/21  IBGP    20   6             RD 10.248.12.1     LDP LSP


从路由的学习来看,所有去玩下级CE设备的路由类型均为IBGP且优先级为20,非本地学习到的ospf路由。


2、设备配置

ipv4-family vpn-instance GX_CNOOC_SVR
  preference 20 200 20
#
ospf 100 router-id 10.241.4.41 vpn-instance GX_CNOOC_SVR
import-route direct
import-route static
import-route bgp
preference 110


由上可知,设备上vpn内的ospf路由优先级均调整成了110,而设备上同vpn内的bgp路由分配调整成了20EBGP 200IBGP 20(本地始发),由于华为设备会对交叉进VPN内的vpnv4路由做本地始发路由,因此进入VPN内的从远端RR反射过来的路由变成了优先级为20的本地始发路由,而设备从本地CE学习过来的ospf路由为110,对于两条路由,若其前缀相同,则比较协议优先级,所以设备优选了从上层RR反射过来的T600上的路由,下一跳也理所当然指向了同层级的PE设备。

根因

由之前的设备配置和路由分析可以得到如下结论:

NE20E由于修改了BGPospf的的默认优先级,导致上层RR反射过来交叉进本地vpn的始发BGP路由的优先级(preference 20)高于本地的ospf路由优先级(preference 110),所以设备优选了上层RR反射的路由,而路由的原始下一跳为同级的PE设备T600,故设备将目的CE业务网段的下一跳设置成了T600的地址,进而造成回程流量通过T600迂回。

解决方案

由问题分析结论可知,设备优选BGP路由的原因是路由优先级导致的,所以可以通过修改华为BGP本地始发路由的优先级低于本地ospf路由的优先级即可。修改完成后,本地vpn的下行流量会优选本地的ospf路由,将转发下一跳修改为下行的CE设备,不会再迂回至同级的PE设备。

建议与总结

华为设备默认会将本地或者远端交叉进本VPN的路由起源属性修改为本地始发路由,而非IBGP路由,由于路由优先级只是本地有效,只影响本地选路。所以,可以通过调整本地的路由优先级来做控制。

END