要求:PC1,PC3,PC5为电信面路由,PC2,PC4,PC6为联通面路由。正常情况下,电信面路由走AS1,联通面路由走AS2,当R9与R1之间的线路发生故障时,电信面路由改经R4然后回到AS1
路由分析
-
正常情况
【1】PC1,PC2访问PC5路由经过R9来到AS1的R1上,由于全互联建邻,R1会收到两条PC5的路由,一条是R5(IBGP)给的,另一条是R2(EBGP)给的。在BGP的默认配置下,由于R2给R1的路由中AS-PATH属性长,因此R1会优选R5的路由。所以PC1,PC2的流量会经R1转发到R5,R5在比较R12和R6给的到达PC5的路由后优先选择R12,最终PC1,PC2的路由经过R9–R1–R5–R12到达PC5
【2】PC3,PC4访问PC6的流量选路原则同上,最终经过R10–R4–R8–R12到达PC6
【3】默认配置下,R12会从R5和R8收到来自PC1,2,3,4的路由,根据BGP的选路规则可以得出R12会优选从R5处学到的路由。因此PC5,6的流量只会经过AS1到达PC1,2,3,4
-
R9与R1线路故障
【1】线路发生故障后PC1,2,3,4的流量只能经过AS2来到PC5,6。根据AS2的选路,流量经过的路径为(R9)–R10–R4–R8–R12
【2】链路发生故障,AS1通过AS2学习到PC1,PC3的路由后在传给R12,由于AS-PATH属性长,R12会优选R8的路由,导致PC5,6的流量只会由R8中转,PC1,2,3,4的流量只会由R4中转
定制策略
- 正常情况
经过分析得到,正常情况下PC2,PC3去的流量和PC6回的流量不符合预期,需要进行选路干预。为了防止属性之间形成互相干扰,建议使用PreVal属性干预选路。
修改电信面(PC1,3,5)路由社团属性为100:*
联通面(PC2,4,6)路由社团属性为200:*
打上社团属性的目的是为了一次性可以匹配到多条路由
R9上抓路由
route-polocy修改社团属性
在邻居R10的出向调用route-policy
R10,R12同理
之后在R10上抓住100.*的路由,并且在邻居R9的入向上调用策略
R10同理
R12上需要将R8给的社团属性为200的路由的PreVal加大
测试:
PC1,PC3去的流量符合预期
PC5回的流量符合预期
PC2,PC4去的流量符合预期
PC6回的流量符合预期
- R9与R1链路故障
经过分析得到,当链路发生故障时,R12优选从R8学到的路由,要让100的路由继续走R5就要在R5与R12的入向修改PreVal
在R5与R12的入向调用该策略后,确实会影响到R5对100的选路,但由于R5会收到IBGP邻居和EBGP邻居的关于100的路由。在线路没问题时,EBGP邻居的路由AS-PATH长,所以R5会选择IBGP邻居的路由,而此时线路故障,AS1只能从AS2处收到关于100的路由,选路规则EBGP>IBGP,所以R5会优选从EBGP邻居处学到的路由,导致的问题就是路由会经过R5到达R6,与预期不符。
解决这个问题就需要在AS1上加大关于100路由PreVal让路由重新回到R3上
AS1都修改PreVal,最后一台配置的路由器才会真正成为流量经过的路由器,R3最后配置即可
R1,其他路由器同理
PC5回的路由干预成功后还需要干预PC1,2去的路由。按照预期需要经过R4转到R3,那么就需要在R4上抓100的路由,并在R3与R4的入向上加大PreVal,让100的路由经过R4到AS1
测试:
PC1,PC3去的流量符合预期
PC5回的流量符合预期
PC2,4,6不受影响
- R9与R1链路恢复正常
恢复正常后100的路由会由R9,R2,R3分别给到R1,由于刚才在AS1上修改了100的PreVal,因此R1会选择R3给到的路由,将会导致PC5回的流量又会经过R3绕到R4导致选路不加
观察BGP的路由可以看到要让R1相信R9的路由,只需要在R9与R1的入向上修改PreVal的值和R3的一致,根据选路规则EBGP>IBGP,R1会优选从R9处收到的关于100的路由
测试
PC5回的流量恢复正常
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)