實驗指南:BGP路徑選擇

實驗指南
 
初始配置
Wills
conf t
host Wills
int l 0
ip ad 1.1.1.1 255.255.255.255
int s2/0
encap f
no arp f
no frame inver
no shut
int s2/0.1 p
ip ad 10.1.1.1 255.255.255.0
frame int 102
int s2/0.2 p
ip ad 10.1.2.1 255.255.255.0
frame inter 103
router rip
ver 2
no au
net 10.00.0.0
net 1.0.0.0
net 62.0.0.0
router bgp 2001
no au
no sy
bgp router-id 1.1.1.1
nei 2.2.2.2 remote 645
nei 2.2.2.2 up l 0
nei 2.2.2.2 e 255
nei 3.3.3.3 remote 645
nei 3.3.3.3 up l 0
nei 3.3.3.3 e 255
end

Amold
conf t
host Amold
int l 0
ip ad 2.2.2.2 255.255.255.255
int s2/0
encap f
no arp f
no frame inver
no shut
int s2/0.1 p
ip ad 10.1.1.2 255.255.255.0
frame int 201
int s2/1
ip ad 10.2.2.1 255.255.255.0
encap f
no arp f
no frame inver
frame map ip 10.2.2.3 216 b
frame map ip 10.2.2.2 216 b
no shut
router rip
ver 2
no au
net 2.0.0.0
net 10.0.0.0
router bgp 645
no au
no sy
bgp router-id 2.2.2.2
nei 1.1.1.1 remote 2001
nei 1.1.1.1 up l 0
nei 1.1.1.1 e 255
nei 6.6.6.6 remote 645
nei 6.6.6.6 up l 0
end

Kimberly
conf t
host Kimberly
int l 0
ip ad 3.3.3.3 255.255.255.255
int s 2/0
encap f
no arp f
no frame inver
no shut
int s2/0.1 p
ip ad 10.1.2.2 255.255.255.0
frame int 301
int s2/1
ip ad 10.2.2.2 255.255.255.0
encap f
no arp f
no frame inver
frame map ip 10.2.2.1 316 b
frame map ip 10.2.2.3 316 b
no shut
router rip
ver 2
no au
net 3.0.0.0
net 10.0.0.0
router bgp 645
no au
no sy
bgp router-id 3.3.3.3
nei 1.1.1.1 remote 2001
nei 1.1.1.1 up l 0
nei 1.1.1.1 e 255
nei 6.6.6.6 remote 645
nei 6.6.6.6 up l 0
end

Router6
conf t
host Router6
int l 0
ip ad 6.6.6.6 255.255.255.255
 int 1
ip ad 189.168.82.1 255.255.254.0
 int l2
ip ad 189.168.84.1 255.255.254.0
 int l3
ip ad 189.168.86.1 255.255.254.0
 int l4
ip ad 189.168.88.1 255.255.254.0
int s2/1
ip ad 10.2.2.3 255.255.255.0
encap f
no arp f
no frame inver
frame map ip 10.2.2.1 612 b
frame map ip 10.2.2.2 613 b
no shut
router rip
ver 2
net 6.0.0.0
net 10.0.0.0
router bgp 645
bgp router-id 6.6.6.6
no au
no sy
nei 2.2.2.2 remote 645
nei 2.2.2.2 up l 0
nei 3.3.3.3 remote 645
nei 3.3.3.3 up l 0
nei 2.2.2.2 route-reflector-client
nei 3.3.3.3 route-reflector-client
net 189.168.82.0 mask 255.255.254.0
net 189.168.84.0 mask 255.255.254.0
net 189.168.86.0 mask 255.255.254.0
net 189.168.88.0 mask 255.255.254.0
end

1,修改origin來影響BGP路徑選擇
Wills#sh ip route bgp | include 189
     189.168.0.0/23 is subnetted, 17 subnets
B       189.168.84.0 [20/0] via 2.2.2.2, 01:44:47
B       189.168.86.0 [20/0] via 2.2.2.2, 01:44:47
B       189.168.82.0 [20/0] via 2.2.2.2, 01:44:47
B       189.168.88.0 [20/0] via 2.2.2.2, 01:44:47
從Wills的路由表狀態可以看出,到達189.168.0.0/16網段是從Amold學到,若想從Kimberly學到,有幾種方法,先講根據origin來影響

Wills
access-list 1 permit 189.168.0.0 0.0.255.255
route-map ORIGIN permit 10
match ip ad 1
set origin incomplete
router bgp 2001
nei 2.2.2.2 route-map ORIGIN incomplete
end

這時,Wills上路由表的狀態
Wills(config-router)#do sh ip route bgp | include 189
     189.168.0.0/23 is subnetted, 17 subnets
B       189.168.84.0 [20/0] via 3.3.3.3, 00:00:07
B       189.168.86.0 [20/0] via 3.3.3.3, 00:00:07
B       189.168.82.0 [20/0] via 3.3.3.3, 00:00:07
B       189.168.88.0 [20/0] via 3.3.3.3, 00:00:07
很明顯,從Wills到189.168.0.0/16網段,要走路由器Kimberly。

Wills上BGP表狀態
Wills(config-router)#do sh ip bgp | include 189
BGP table version is 63, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*> 189.168.82.0/23  3.3.3.3                                0 645 i
*                   2.2.2.2                                0 645 ?
*> 189.168.84.0/23  3.3.3.3                                0 645 i
*                   2.2.2.2                                0 645 ?
*> 189.168.86.0/23  3.3.3.3                                0 645 i
*                   2.2.2.2                                0 645 ?
*> 189.168.88.0/23  3.3.3.3                                0 645 i
*                   2.2.2.2                                0 645 ?
從鄰居2.2.2.2學到的BGP條目的origin爲incomplete,所以Origin Codes 標識爲“?”根據BGP路徑優先的選擇進程,Wills將從Kimberly到達189.168.0.0/16網段

2,使用AS path屬性影響BGP路徑選擇
上例中,我們通過BGP的origin屬性來影響BGP路徑選擇,本例講到達189.168.0.0/16網段是從Amold學到,若想從Kimberly學到的第二種方法
Wills
access-list 2 permit 189.168.0.0 0.0.255.255
route-map ASPATH permit 10
match ip ad 2
set as-path prepend last-as 2
或者 set as-path prepend 123 1234
router bgp 2001
nei 2.2.2.2 route-map ASPATH in

end
第一個set命令是收到路由條目所經過的最後一個AS顯示的次數,第二個set命令是加入預先設定的AS值。因爲BGP路徑選擇時會比較AS path,BGP會選擇經過AS path少的路徑
Wills上BGP表的狀態
Wills#sh ip bgp
BGP table version is 46, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*  189.168.82.0/23  2.2.2.2                                0 123 1234 645 645 645 i
*>                  3.3.3.3                                0 645 i
*  189.168.84.0/23  2.2.2.2                                0 123 1234 645 645 645 i
*>                  3.3.3.3                                0 645 i
*  189.168.86.0/23  2.2.2.2                                0 123 1234 645 645 645 i
*>                  3.3.3.3                                0 645 i
*  189.168.88.0/23  2.2.2.2                                0 123 1234 645 645 645 i
*>                  3.3.3.3                                0 645 i
 
CISCO IOS提供了一條隱藏的命令,可以使得BGPpath選擇時忽略AS path的長短
Wills
router bgp 2001
bgp bestpath as-path ignore

end

這時,在Wills上BGP表的狀態
Wills#sh ip bgp
BGP table version is 46, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*  189.168.82.0/23  3.3.3.3                                0 645 i
*>                  2.2.2.2                                0 123 1234 645 645 645 i
*  189.168.84.0/23  3.3.3.3                                0 645 i
*>                  2.2.2.2                                0 123 1234 645 645 645 i
*  189.168.86.0/23  3.3.3.3                                0 645 i
*>                  2.2.2.2                                0 123 1234 645 645 645 i
*  189.168.88.0/23  3.3.3.3                                0 645 i
*>                  2.2.2.2                                0 123 1234 645 645 645 i
這裏可以看出,配置bgp bestpath as-path ignore後,將不再比較AS path的值。通過routerID去選擇路徑了。
 
3,使用AS path屬性過濾BGP路由
使用AS path屬性過濾掉從Amold上發送的經過AS645的路由條目,要使用正則表達式

Wills
ip as-path access-list 1 deny _645_
ip as-path access-list 1 permit .*
route-map FILTER permit 10
match as-path 1
router bgp 2001
nei 2.2.2.2 route-map FILTER in

end
 
這時Wills上BGP表的狀態
Wills(config-router)#do sh ip bgp | include 189
*> 189.168.82.0/23  3.3.3.3                                0 645 i
*> 189.168.84.0/23  3.3.3.3                                0 645 i
*> 189.168.86.0/23  3.3.3.3                                0 645 i
*> 189.168.88.0/23  3.3.3.3                                0 645 i
說明從Amold上發送的路由條目已經被過濾了
還可以使用filter-list 進行AS path過濾,建立as-path列表的步驟一樣,不過就是不用建立route-map了
Wills
router bgp 2001
nei 2.2.2.2 filter-list 1 in

end
用這個方法要比使用route-map簡便許多,也同時能起到過濾AS path的作用
PS:正則表達式比較麻煩,需要多多練習

4,使用MED屬性選擇BGP最佳路徑
默認情況下Wills要189.168.0.0/16網段要走Amold,下面通過修改Amold和Kimberly的mertic值來改變Wills到達189.168.0.0/16網段要走的路徑
Amold
access-list 1 permit 189.168.0.0 0.0.255.255
route-map METRIC permit 10
match ip ad 1
set metric 100
route-map METRIC permit 20
router bgp 645
nei 1.1.1.1 route-map METRIC out

end
把從Amold發出的189.168.0.0/16網段的metric設爲100(默認爲0),這時Wills的BGP表狀態
Wills(config-router)#do sh ip bgp             
BGP table version is 63, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*> 189.168.82.0/23  3.3.3.3                                0 645 i
*                   2.2.2.2                100             0 645 i
*> 189.168.84.0/23  3.3.3.3                                0 645 i
*                   2.2.2.2                100             0 645 i
*> 189.168.86.0/23  3.3.3.3                                0 645 i
*                   2.2.2.2                100             0 645 i
*> 189.168.88.0/23  3.3.3.3                                0 645 i
*                   2.2.2.2                100             0 645 i
很明顯,Wills將選擇metric小的路徑到達目的網段

<注>本例中沒有提到的一種情況就是,BGP默認並不比較通過多個AS到達目的網段的metric值,也就是說,如果Amold和Kimberly不在同一個AS中時,BGP並不比較這兩個AS的mertric值。這樣就有可能到達目的網段並不是走最佳路徑,CISCO IOS提供了一條命令可以比較多個AS的metric值,以達到最佳路徑的目的
router bgp <AS>
bgp always-compare-med

這樣可以比較多個AS的metric值了
 
 
5,通過修改local_pref來選擇網絡出口
Wills
acccess-list 1 permit 189.168.0.0 0.0.255.255
route-map LOCAL_PREF permit 10
match ip ad 1
set local-preference 1000
router bgp 2001
nei 3.3.3.3 route-map LOCAL_PREF in

end
 
Wills上BGP表的狀態
Wills(config-router)#do sh ip bgp
BGP table version is 46, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*  189.168.82.0/23  2.2.2.2                                0 645 i
*>                  3.3.3.3                      1000      0 645 i
*  189.168.84.0/23  2.2.2.2                                0 645 i
*>                  3.3.3.3                      1000      0 645 i
*  189.168.86.0/23  2.2.2.2                                0 645 i
*>                  3.3.3.3                      1000      0 645 i
*  189.168.88.0/23  2.2.2.2                                0 645 i
*>                  3.3.3.3                      1000      0 645 i
因爲Wills到Kimberly的local_pref高,所以BGP選擇Kimberly到達目的網段
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章