weight属性控制路由器,去优选weight值较大的路径.

 

上图中,routerA  AS400中学到网段175.10.0.0并将其传递给C
 
B一样从AS400中获得了175.10.0.0这条相同的路径,并传给C
 
现在C处同时从A B 处获得了关于175.10.0.0这个网段的两条不同路径。
 
我们在Cshow ip bgp可观察到
*> 175.10.0.0/16    1.1.1.1                           0  100 400 i
*                   2.2.2.2                           0  200 400 i
这种情况下C会选取1.1.1.1将数据转发至175.10.0.0网段。
 
我们可以通过以下两种方法来手动改变路由的选路:
1、使用 neighbor 命令
   neighbor 2.2.2.2 weight 200
 
2、使用 route-map
   router bgp 300
   neighbor 1.1.1.1 remote-as 100
   neighbor 1.1.1.1 route-map setweightin in
   neighbor 2.2.2.2 remote-as 200
   neighbor 2.2.2.2 route-map setweightin in
 
   ip as-path access-list 5 permit ^100$
  
   route-map setweightin permit 10
   match as-path 5
   set weight 200
 
 
 
neighbor是种最简单的方式,但是它并不能精确地针对某条路由实现weight值的改变,相反,它会对所有从指定邻居学来的路由进行weight操作。
 
route-map恰恰弥补了这个缺点,它们的灵活性是neighbor weight所远远不及的。
 
 
// routerc
 
router bgp 300
  neighbor 2.2.2.2 remote-as 200
  neighbor 2.2.2.2 route-map setweightin in
 
ip as-path access-list 1 permit _4$
 
route-map setweightin permit 10
  match as-path 1
  set weight 200
route-map setweightin permit 20
  set weight 100