BGP的路由策略非常丰富,可以运用多种方法解决同一问题,如本案例中可用weight来实现,但weight只在本路由器有效,所以需要在很多路由器上做策略。而local_preference在本AS内都会有效,可以减少不少配置,MED同样可以在一个AS内传递。Community属性具有可传递性,但需手工开启邻居支持Community属性,适合有很多的业务流时,可以打上Community属性,再在另一路由器上配置Community属性做策略。大家可以去尝试一下,在这我只做local_preference+MED的综合运用。
RT5:
ip prefix-list RT1 seq 5 permit 10.3.0.0/16 //用前缀列表区分出流量
ip prefix-list RT2 seq 5 permit 10.2.0.0/16
ip prefix-list RT2 seq 10 permit 10.4.0.0/16
route-map RT5-RT1 permit 10               //用ROUTE-MAP做策略
 match ip address prefix-list RT1  //匹配RT3的流量
 set local-preference 500      //设置本地优先为500(默认为什么100,大的优先所以它就会走RT5到RT1)
route-map RT5-RT1 permit 15   
 match ip address prefix-list RT2  //匹配去往RT4的流量
 set metric 1000             //设定MED为1000(默认从另一个AS传来的为0),越小的优先,所以会走RT6到RT2
route-map RT5-RT1 permit 20 //允许所有未匹配的路由通过
router bgp 65001
 neighbor 10.0.15.1 route-map RT5-RT1 in  //将策略应用到由RT1发来的路由上
RT1:
ip prefix-list RT1 seq 5 permit 10.5.0.0/16/用前缀列表区分出流量
ip prefix-list RT6 seq 5 permit 10.6.0.0/16
route-map RT1-RT5 permit 10
 match ip address prefix-list RT1  //匹配去往RT5的流量
 set local-preference 500      //设置本地优先级为500,让经过RT1的路由优先
route-map RT1-RT5 permit 15
 match ip address prefix-list RT6  //匹配去往RT6的流量
 set metric 1000   //设定MED为1000(默认从另一个AS传来的为0),越小的优先,所以经RT1的匹配路由会成为次佳的路由
route-map RT1-RT5 permit 20 /允许所有未匹配的路由通过
router bgp 65000
neighbor 10.0.15.2 route-map RT1-RT5 in //将策略应用到由RT5发来的路由
RT5的路由表:
RT6的路由表:
现在来分析一下RT5和RT6的路由表:在RT5上由RT1发来过的10.3.0.0/16的路由本地优先级被改为了500,成为了最佳路由,为什么没有收到RT6发过来的这条路由呢,因为在RT6上同样的由RT5发过来的最优,所以它也通告这条最优路由,但是遵守水平分隔原则,所以不会再向RT5通告。同理由RT1必来的10.2.0.0/16和10.4.0.0/16的MED为1000,而RT6发过来的为0,所以优走RT6.
其它路由器上的路由类似,各位自己去分析吧!
三、测试结果
在RT1上测试,去往10.5.0.0/16的主路径走RT1-RT5去往10.6.0.0/16的主路径走RT2-RT6
在RT6上测试,去往10.3.0.0/16的主路径走RT5-RT1去往10.2.0.0/16、10.4.0.0/16的主路径走RT6-RT2,其它的大家自己去测试了!
好与不好大家都要给个评价啊!为我的博客增加点人气啊!下一篇介绍大型BGP组网案例!