在前幾期的路由策略專題中,我們介紹路由策略的時候,大多是用某種IGP協(xié)議進行舉例的。實際上,對于BGP路由的控制是路由策略的最大的用武之地,因為我們知道,BGP路由最大的特點就是靈活可控,這主要得益于BGP單獨提供了不少工具用于配合執(zhí)行路由策略。對BGP路由合理使用路由策略,可以做到對路由的精準(zhǔn)控制,這也是很多網(wǎng)絡(luò)工程師追求的一個目標(biāo)。本期及下期內(nèi)容內(nèi)容,我們將會用較大的篇幅討論BGP路由策略,希望能讓大家有所收獲。
在BGP中,ip-prefix除了可以配合filter-policy或者route-policy使用以外,還可以被peer命令直接調(diào)用,這也是BGP不同于其他路由協(xié)議的地方。通過peer命令調(diào)用的時候,僅對這一個對等體生效,因此BGP對路由的控制能做到更加精準(zhǔn)。我們看下面這個舉例。
圖1 ip-prefix在BGP中的應(yīng)用
需求描述
如圖1所示,LSW1、LSW2、LSW3三個交換機分別屬于不同的AS,他們之間維持EBGP鄰居關(guān)系,在LSW1上通過BGP發(fā)布兩條路由?,F(xiàn)在LSW3上由于某種業(yè)務(wù)需求,要求禁止10.1.2.0/24這條路由,允許其他的路由。
配置方法
上述需求可以在LSW3的BGP進程中,通過peer命令調(diào)用ip-prefix進行過濾。
LSW3上的關(guān)鍵配置如下:
#
ip ip-prefix huawei index 10 deny 10.1.2.0 24 //定義ip-prefix,禁止目標(biāo)路由
ip ip-prefix huawei index 20 permit 0.0.0.0 0 less-equal 32 //允許其他所有路由
#
bgp 300
router-id 3.3.3.3
peer 192.168.23.1 as-number 200
#
ipv4-family unicast
undo synchronization
peer 192.168.23.1 enable
peer 192.168.23.1 ip-prefix huawei import //在import方向關(guān)聯(lián)ip-prefix。
#
當(dāng)然,也可以在LSW2的export方向關(guān)聯(lián)ip-prefix進行路由過濾,效果是一樣的,大家可以自行試一下,這里不再贅述。
結(jié)果驗證
完成上述配置后,查看LSW3的BGP路由表,可以看到,只有10.1.1.0/24這條路由,10.1.2.0/24已經(jīng)被過濾掉。
[LSW3] display bgp routing-table
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.0/24 192.168.23.1 0 200 100i
filter-policy這個過濾工具我們前面曾經(jīng)介紹過,我們知道filter-policy應(yīng)用在距離矢量路由協(xié)議和鏈路狀態(tài)路由協(xié)議的時候,過濾規(guī)則是不一樣的,BGP屬于一種距離矢量路由協(xié)議,具體過濾規(guī)則請參見路由策略專題第4期。
filter-policy在BGP中有兩種應(yīng)用方式:
l 在BGP視圖下對全局應(yīng)用,對所有對等體生效。
l 通過peer命令應(yīng)用,僅對這一個對等體生效。
相對于其他路由協(xié)議,BGP可以針對某個對等體單獨應(yīng)用filter-policy,這樣也保證了BGP對路由的控制更加靈活、精確。下面我們來看一個具體的舉例。
圖2 filter-policy在BGP中的應(yīng)用
需求描述
如圖2所示,LSW1、LSW2、LSW3三個交換機分別屬于不同的AS,他們之間維持EBGP鄰居關(guān)系,在LSW1上通過BGP發(fā)布兩條路由?,F(xiàn)在LSW3上由于某種業(yè)務(wù)需求,要求禁止10.1.2.0/24這條路由,允許其他的路由。
配置方法
l 方法一:在BGP視圖下對全局應(yīng)用,對所有對等體生效。
LSW3的關(guān)鍵配置如下:
#
acl number 2001 //定義ACL,用于匹配目標(biāo)路由
rule 5 deny source 10.1.2.0 0 //拒絕10.1.2.0這條路由
rule 10 permit source any //允許所有
#
bgp 300
router-id 3.3.3.3
peer 192.168.23.1 as-number 200
#
ipv4-family unicast
undo synchronization
filter-policy 2001 import //對所有對等體使用filter-policy過濾路由
peer 192.168.23.1 enable
#
l 方法二:通過peer命令應(yīng)用,僅對這一個對等體生效。
LSW3的關(guān)鍵配置如下:
#
acl number 2001 //定義ACL,用于匹配目標(biāo)路由
rule 5 deny source 10.1.2.0 0 //拒絕10.1.2.0這條路由
rule 10 permit source any //允許所有
#
bgp 300
router-id 3.3.3.3
peer 192.168.23.1 as-number 200
#
ipv4-family unicast
undo synchronization
peer 192.168.23.1 enable
peer 192.168.23.1 filter-policy 2001 import //對單個對等體使用filter-policy
#
route-policy在前面我們也詳細(xì)介紹過了,在BGP中,route-policy同樣是一個非常重要的工具,可以用來設(shè)置路由的屬性,對路由進行過濾等。
我們再通過一個舉例來看一下在BGP中調(diào)用route-policy的方法。
圖3 route-policy在BGP中的應(yīng)用
需求描述
如圖2所示,LSW1和LSW2兩個交換機分別屬于不同的AS,他們之間維持EBGP鄰居關(guān)系,在LSW1上通過BGP發(fā)布兩條路由?,F(xiàn)在由于某種業(yè)務(wù)需求,需要對LSW1發(fā)布的兩條路由分別設(shè)置不通的團體屬性值,10.1.1.0/24這條路由設(shè)置團體屬性值為100:1,10.1.2.0/24這條路由設(shè)置團體屬性值為100:2。
配置方法
l 方法一:通過network命令調(diào)用route-policy。
這種配置方法是在通過network命令發(fā)布路由的時候直接調(diào)用route-policy,設(shè)置相應(yīng)的團體屬性值以后再發(fā)布給對等體。
LSW1的關(guān)鍵配置如下:
#
ip ip-prefix 1 index 10 permit 10.1.1.0 24 //定義前綴列表,匹配目標(biāo)路由
ip ip-prefix 2 index 10 permit 10.1.2.0 24
#
route-policy huawei permit node 10 //為不同的路由設(shè)置不同的團體屬性值
if-match ip-prefix 1
apply community 100:1
#
route-policy huawei permit node 20
if-match ip-prefix 2
apply community 100:2
#
route-policy huawei permit node 30 //允許剩余所有路由
#
bgp 100
router-id 1.1.1.1
peer 192.168.12.2 as-number 200
#
ipv4-family unicast
undo synchronization
network 10.1.1.0 255.255.255.0 route-policy huawei
network 10.1.2.0 255.255.255.0 route-policy huawei
peer 192.168.12.2 enable
peer 192.168.12.2 advertise-community
#
l 方法二:通過peer命令調(diào)用route-policy。
這種配置方法,在通過network命令發(fā)布路由的時候不使用route-policy,但是通過peer命令針對對等體使用route-policy,這樣路由在發(fā)布之前先通過route-policy的過濾,通過并設(shè)置相應(yīng)的團體屬性值以后再發(fā)布給對等體。
LSW1的關(guān)鍵配置如下:
#
ip ip-prefix 1 index 10 permit 10.1.1.0 24 //定義前綴列表,匹配目標(biāo)路由
ip ip-prefix 2 index 10 permit 10.1.2.0 24
#
route-policy huawei permit node 10 //為不同的路由設(shè)置不同的團體屬性值
if-match ip-prefix 1
apply community 100:1
#
route-policy huawei permit node 20
if-match ip-prefix 2
apply community 100:2
#
route-policy huawei permit node 30 //允許剩余所有路由
#
bgp 100
router-id 1.1.1.1
peer 192.168.12.2 as-number 200
#
ipv4-family unicast
undo synchronization
network 10.1.1.0 255.255.255.0
network 10.1.2.0 255.255.255.0
peer 192.168.12.2 enable
peer 192.168.12.2 route-policy huawei export
peer 192.168.12.2 advertise-community
#
結(jié)果驗證
上述兩種配置方法雖然不一樣,但是對于這個場景,都可以實現(xiàn)10.1.1.0/24這條路由設(shè)置團體屬性值為100:1,10.1.2.0/24這條路由設(shè)置團體屬性值為100:2。完成配置后,在LSW2上查看一下BGP路由表,可以看到已實現(xiàn)上述需求。
[LSW2] display bgp routing-table community
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Community
*> 10.1.1.0/24 192.168.12.1 0 0 <100:1>
*> 10.1.2.0/24 192.168.12.1 0 0 <100:2>
相對于其他路由協(xié)議,BGP中應(yīng)用route-policy的命令會更多一點,更具體一點。常見的調(diào)用route-policy的命令有下面這些:
l network
l peer
l import-route
l dampening
上面給大家舉例看了一下network和peer命令調(diào)用route-policy的方法,其他的調(diào)用命令我們不再一一舉例。
對于BGP路由,更重要的是通過BGP的路由屬性對路由進行控制,BGP具有豐富的路由屬性可供使用,常用的有AS_Path過濾器和團體屬性過濾器,這個我們將會在下一期路由策略專題中詳細(xì)介紹,請大家持續(xù)關(guān)注。