今天针对BGP的权重做了个实验。目的也就是当本地出口路由器有多条外出自治系统的链路时,应用权重(Weight)属性能够决定数据流从本地路由器哪条出口链路流出本地自治系统。但这个是cisco私有的属性。由于本地优先级针对本地AS属性。MED属性却是不同的AS,MED不作比较。所以cisco私有的权重属性也是重要的属性,并且在cisco路由器中优先级是排名第一的。好的。下面就看一下拓扑图:
 
一、拓扑图:
 
二、实验分析:
1 、根据BGP路由选择决策过程 对于特定的目的地,BGP只选择一条最佳路径。但<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

如果到达目标有多条路径,则将会依据以下这些策略进行路径选择:

A 、选权重最高的路由(cisco私有属性,只在当前本地路由器有效)

B 、选择本地优先级最高的路由(注:只用于本地AS内部)

C 、选择当前路由器的通告过的路由

D 、选择AS路径最短的路由

E 、选择源头编码最小的路径(依次为IGP<EGP<Incomplete)

F 、选择MED值最小的路径

G 、外部路径(EBGP)优先于内部路径(IBGP)

H 、选择经过最近的IGP邻居的路径

I 、对于EBGP路径,选择最老的路由

J 、选邻居BGP路由器ID最小的路由

K 、选择邻居IP地址最小的路由

 
2、那么依次配置各台路由器 IP地址和 BGP协议之后,查看 R1BGP和路由表:
 
R1#sh ip route
………………

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route

 

Gateway of last resort is not set

 

C    192.168.4.0/24 is directly connected, FastEthernet0/0

C    192.168.1.0/24 is directly connected, Serial1/1

B    192.168.2.0/24 [20/0] via 192.168.1.2, 00:09:18

B    192.168.3.0/24 [20/0] via 192.168.4.1, 00:09:11

     150.150.0.0/24 is subnetted, 1 subnets

B       150.150.1.0 [20/0] via 192.168.1.2, 00:09:18

R1#sh ip bgp

BGP table version is 7, local router ID is 192.168.4.2
………………

   Network          Next Hop            Metric LocPrf Weight Path

*  150.150.1.0/24   192.168.4.1                            0 64515 64514 i

*>                  192.168.1.2                            0 64513 64514 i

*  192.168.1.0      192.168.1.2              0             0 64513 i

*>                  0.0.0.0                  0         32768 i

*  192.168.2.0      192.168.4.1                            0 64515 64514 i

*>                  192.168.1.2              0             0 64513 i

*> 192.168.3.0      192.168.4.1              0             0 64515 i

*                   192.168.1.2                            0 64513 64514 i

*  192.168.4.0      192.168.4.1              0             0 64515 i

*>                  0.0.0.0                  0         32768 i

 
3、查看一下 R1BGP邻居表:
 
R1#sh ip bgp neighbors

BGP neighbor is 192.168.1.2,  remote AS 64513, external link

  BGP version 4, remote router ID 192.168.2.1

  BGP state = Established, up for 00:53:38
………………
BGP neighbor is 192.168.4.1,  remote AS 64515, external link

  BGP version 4, remote router ID 192.168.4.1

  BGP state = Established, up for 00:54:23

 
4、由于 R2router-id并且优先通告给 R1。所以 R1选择 R2作为下一跳到达 150.150.1.0/24,R1R4之间是快速以太网链路,所以 R1选错了下一跳,并且由于 本地优先级针对本地AS属性, MED属性却是不同邻居ASMED不作比较。那么下面我们通过 cisco 私有的 BGP的权重属性来解决 R1150.150.1.0/24路径选择问题。
三、实验步骤:
1、在 R1上分别指定两个邻居的权重,让 R1优先选择权重大的链路走:
 
R1(config)#router bgp 64512

R1(config-router)#nei 192.168.1.2 weight 50

R1(config-router)#nei 192.168.4.1 weight 100

 
2、软涮新一下 BGP数据库,查看一下:
 
R1#clear ip bgp * soft

R1#sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path

*> 150.150.1.0/24   192.168.4.1                          100 64515 64514 i(现在选择R4了)

*                   192.168.1.2                           50 64513 64514 i

*  192.168.1.0      192.168.1.2              0            50 64513 i       (这条没错)

*>                  0.0.0.0                  0         32768 i

*> 192.168.2.0      192.168.4.1                          100 64515 64514 i(但这条路径就……)

*                   192.168.1.2              0            50 64513 i

*> 192.168.3.0      192.168.4.1              0           100 64515 i

*                   192.168.1.2                           50 64513 64514 i

*  192.168.4.0      192.168.4.1              0           100 64515 i

*>                  0.0.0.0                  0         32768 i (为避免环路,直连权重值为最大)

 
3、通过对 R1指定邻居权重, R1150.150.1.0/24发现是选择了权重大的下一跳走,但却发现 R1192.168.2.0/24也选择了权重大的 R4链路作为下一跳。而没有选择直连链路走,看来我们只指定邻居权重这种方法是 拆东墙补西墙。并不是很完美的。但如果用路由图调用设置权重就不一样了。这样可以针对目的地址设置权重,下面我们就把之前配置的权重 no掉,并重新建一个 route-map设置权重值。
 
R1(config)#router bgp 64512

R1(config-router)#no neighbor 192.168.1.2 weight 50
R1(config-router)#no neighbor 192.168.4.1 weight 100
R1(config)#access-list 10 per 150.150.1.0 0.0.0.255 (建立一个ACL

R1(config)#route-map set_weight per 10 (建立一个路由图名为set_weight

R1(config-route-map)#match ip add 10 (匹配ACL)

R1(config-route-map)#set weight 100 (针对route-map特定的目的网络设置权重值100

R1(config-route-map)#exit        

R1(config)#route-map set_weight per 20 (再建立一个空路由图以便其它路由都按默认方式转发)

 
四、验证实验:
 
R1#sh ip bgp

…………

   Network          Next Hop            Metric LocPrf Weight Path

*> 150.150.1.0/24   192.168.4.1                            0 64515 64514 i(下一跳为R4

*                   192.168.1.2                            0 64513 64514 i

*  192.168.1.0      192.168.1.2              0             0 64513 i

*>                  0.0.0.0                  0         32768 i

192.168.2.0      192.168.4.1                            0 64515 64514 i

*>                  192.168.1.2              0             0 64513 i  (下一跳为R2)

*> 192.168.3.0      192.168.4.1              0             0 64515 i

*                   192.168.1.2                            0 64513 64514 i

*  192.168.4.0      192.168.4.1              0             0 64515 i

*>                  0.0.0.0                  0         32768 i

R1#sh ip route

………………

C    192.168.4.0/24 is directly connected, FastEthernet0/0

C    192.168.1.0/24 is directly connected, Serial1/1

B    192.168.2.0/24 [20/0] via 192.168.1.2, 00:07:40

B    192.168.3.0/24 [20/0] via 192.168.4.1, 00:32:27

     150.150.0.0/24 is subnetted, 1 subnets

B       150.150.1.0 [20/0] via 192.168.4.1, 00:07:40