第2期-Route-Policy詳解 在上一期的路由策略專題中,我們曾經(jīng)提到,很多人會把路由策略等同于Route-Policy,雖然這不太準確,但是能夠體現(xiàn)出Route-Policy的重要性和普遍性。Route-Policy是一種比較復(fù)雜的過濾器,它不僅可以匹配路由信息的某些屬性,還可以在條件滿足時改變路由信息的屬性。這一期我們就詳細介紹一下Route-Policy,包括Route-Policy的組成、匹配規(guī)則和使用舉例等內(nèi)容。 1 Route-Policy的組成如圖1所示,Route-Policy由節(jié)點號、匹配模式、if-match子句(條件語句)和apply子句(執(zhí)行語句)這四個部分組成。 圖1 Route-Policy的組成 l 節(jié)點號 一個Route-Policy可以由多個節(jié)點(node)構(gòu)成。路由匹配Route-Policy時遵循以下兩個規(guī)則: 1)順序匹配:在匹配過程中,系統(tǒng)按節(jié)點號從小到大的順序依次檢查各個表項,因此在指定節(jié)點號時,要注意符合期望的匹配順序。 2)唯一匹配:Route-Policy各節(jié)點號之間是“或”的關(guān)系,只要通過一個節(jié)點的匹配,就認為通過該過濾器,不再進行其它節(jié)點的匹配。 l 匹配模式 節(jié)點的匹配模式有兩種:permit和deny。 1)permit指定節(jié)點的匹配模式為允許。當路由項通過該節(jié)點的過濾后,將執(zhí)行該節(jié)點的apply子句,不進入下一個節(jié)點;如果路由項沒有通過該節(jié)點過濾,將進入下一個節(jié)點繼續(xù)匹配。 2)deny指定節(jié)點的匹配模式為拒絕。這時apply子句不會被執(zhí)行。當路由項滿足該節(jié)點的所有if-match子句時,將被拒絕通過該節(jié)點,不進入下一個節(jié)點;如果路由項不滿足該節(jié)點的if-match子句,將進入下一個節(jié)點繼續(xù)匹配。 注意事項: 通常在多個deny節(jié)點后設(shè)置一個不含if-match子句和apply子句的permit模式的Route-Policy,用于允許其它所有的路由通過。 l if-match子句(條件語句) if-match子句用來定義一些匹配條件。Route-Policy的每一個節(jié)點可以含有多個if-match子句,也可以不含if-match子句。如果某個permit節(jié)點沒有配置任何if-match子句,則該節(jié)點匹配所有的路由。 l apply子句(執(zhí)行語句) apply子句用來指定動作。路由通過Route-Policy過濾時,系統(tǒng)按照apply子句指定的動作對路由信息的一些屬性進行設(shè)置。Route-Policy的每一個節(jié)點可以含有多個apply子句,也可以不含apply子句。如果只需要過濾路由,不需要設(shè)置路由的屬性,則不使用apply子句。 2 路由策略匹配結(jié)果相信大家在使用或者學(xué)習(xí)Route-Policy的時候都重點關(guān)注這樣一個問題:對于一條路由,在使用Route-Policy以后,最終結(jié)果是允許還是拒絕這條路由呢?這個最終的結(jié)果對于業(yè)務(wù)的影響是非常大的,可能會直接影響某種業(yè)務(wù)的通與不通。這就涉及到Route-Policy匹配規(guī)則的問題了,這里我們詳細討論一下。 Route-Policy每個node節(jié)點的過濾結(jié)果要綜合以下兩點: 1、 Route-Policy的node節(jié)點的匹配模式(permit或deny)。 2、 if-match子句(如引用的地址前綴列表或者訪問控制列表)中包含的匹配條件(permit或deny)。 對于每一個node節(jié)點,以上兩點的排列組合會出現(xiàn)表1所示的4種情況。
表1 Route-Policy的匹配規(guī)則 上述四種組合情況中,前兩種比較好理解,也比較常用。后兩種相對難理解一點,這里我們以第三種情況為例,舉例說明一下: 假設(shè)if-match子句中包含的匹配條件是deny,node節(jié)點對應(yīng)的匹配條件permit,配置如下: # acl number 2001 rule 5 deny source 172.16.16.0 0 //拒絕172.16.16.0 # acl number 2002 rule 5 permit source 172.16.16.0 0 //允許172.16.16.0 # route-policy RP permit node 10 //在這個節(jié)點,172.16.16.0這條路由被拒絕,繼續(xù)往下 if-match acl 2001 # route-policy RP permit node 20 //在這個節(jié)點,172.16.16.0這條路由被允許 if-match acl 2002 # 這種情況下,有一個關(guān)鍵點就是在node 10,172.16.16.0這條路由被拒絕,同時會繼續(xù)往下匹配,或許下一個節(jié)點就允許通過了呢?果然,繼續(xù)往下走,到node 20這個節(jié)點的時候172.16.16.0又被允許了,所以Route-Policy的最終匹配結(jié)果是允許172.16.16.0這條路由。 注意事項: 華為S交換機默認所有未匹配的路由將被拒絕通過Route-Policy。如果Route-Policy中定義了一個以上的節(jié)點,應(yīng)保證各節(jié)點中至少有一個節(jié)點的匹配模式是permit。因為Route-Policy用于路由信息過濾時: l 如果某路由信息沒有通過任一節(jié)點,則認為該路由信息沒有通過該Route-Policy。 l 如果Route-Policy的所有節(jié)點都是deny模式,則沒有路由信息能通過該Route-Policy。 3 路由策略使用案例通過上面兩個小節(jié),我們介紹完了Route-Policy的組成和匹配規(guī)則。這個小節(jié)中,我們來看一個Route-Policy的使用實例。 圖2 使用Route-Policy實現(xiàn)數(shù)據(jù)分流示例 用戶需求 如圖2所示,某園區(qū)網(wǎng)絡(luò)主要劃分為生產(chǎn)網(wǎng)段和辦公網(wǎng)段。LSW3下掛的終端訪問下面的網(wǎng)段的時候流量模型如下: 10.10.1.0/24-----生產(chǎn)網(wǎng)段,優(yōu)先走LSW1出去,LSW2作為備份鏈路。 10.10.2.0/24-----辦公網(wǎng)段,優(yōu)先走LSW2出去,LSW1作為備份鏈路。 10.10.3.0/24-----其他網(wǎng)段,隨便走那邊都行,負載分擔即可。 這種流量模型,可以保證生產(chǎn)網(wǎng)絡(luò)與辦公網(wǎng)絡(luò)的流量分離,便于維護和故障定位。同時,這種流量模型有利于流量均衡的分配到兩條鏈路上,同時互相作為備份鏈路,有利于網(wǎng)絡(luò)的穩(wěn)定性。 配置過程 1、 LSW1、LSW2、LSW3三個設(shè)備之間建立OSPF鄰居關(guān)系。 2、 LSW1和LSW2上配置到達上述網(wǎng)段的靜態(tài)路由,并引入OSPF,從而通告給LSW3。 3、 LW1和LSW2上配置路由策略,調(diào)整流量模型滿足用戶規(guī)劃的需求。 這里僅給出涉及路由策略的關(guān)鍵配置: LSW1關(guān)鍵配置: # acl number 2000 rule 5 permit source 10.10.1.0 0 //用于匹配生產(chǎn)網(wǎng)段路由 # acl number 2001 rule 5 permit source 10.10.2.0 0 //用于匹配辦公網(wǎng)段路由 # route-policy RP permit node 10 if-match acl 2000 apply cost 10 //設(shè)置生產(chǎn)網(wǎng)段路由的cost值為10 # route-policy RP permit node 20 if-match acl 2001 apply cost 20 //設(shè)置辦公網(wǎng)段路由的cost值位20 # route-policy RP permit node 30 //剩余網(wǎng)段的路由允許進來,不做任何處理 # ip route-static 10.10.1.0 255.255.255.0 192.168.14.2 ip route-static 10.10.2.0 255.255.255.0 192.168.14.2 ip route-static 10.10.3.0 255.255.255.0 192.168.14.2 # LSW2關(guān)鍵配置: # acl number 2000 rule 5 permit source 10.10.1.0 0 //用于匹配生產(chǎn)網(wǎng)段路由 # acl number 2001 rule 5 permit source 10.10.2.0 0 //用于匹配辦公網(wǎng)段路由 # route-policy RP permit node 10 if-match acl 2000 apply cost 20 //設(shè)置生產(chǎn)網(wǎng)段路由的cost值為20 # route-policy RP permit node 20 if-match acl 2001 apply cost 10 //設(shè)置辦公網(wǎng)段路由的cost值為10 # route-policy RP permit node 30 //剩余網(wǎng)段的路由允許進來,不做任何處理 # ip route-static 10.10.1.0 255.255.255.0 192.168.25.2 ip route-static 10.10.2.0 255.255.255.0 192.168.25.2 ip route-static 10.10.3.0 255.255.255.0 192.168.25.2 # 結(jié)果驗證 完成上述配置以后,可以在LSW3上查看IP路由表,確認流量模型是否正確。 <LSW3> display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 9 Routes : 10 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.10.1.0/24 O_ASE 150 10 D 192.168.13.1 Vlanif13 10.10.2.0/24 O_ASE 150 10 D 192.168.23.1 Vlanif23 10.10.3.0/24 O_ASE 150 1 D 192.168.23.1 Vlanif23 O_ASE 150 1 D 192.168.13.1 Vlanif13 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 192.168.13.0/24 Direct 0 0 D 192.168.13.2 Vlanif13 192.168.13.2/32 Direct 0 0 D 127.0.0.1 Vlanif13 192.168.23.0/24 Direct 0 0 D 192.168.23.2 Vlanif23 192.168.23.2/32 Direct 0 0 D 127.0.0.1 Vlanif23 從LSW3的路由表中可以看到,到達生產(chǎn)網(wǎng)段10.10.1.0/24的流量優(yōu)先走LSW1,到達辦公網(wǎng)段10.10.2.0/24的流量優(yōu)先走LSW2,到達其他網(wǎng)段的流量在LSW1和LSW2兩條鏈路上進行負載分擔。流量模型符合預(yù)期。 通過本期專題,我們把Route-Policy的組成結(jié)構(gòu)、匹配規(guī)則基本上就講清楚了,也通過一個實例讓大家了解了Route-Policy的使用場景和配置方法。本期專題中,我們主要使用了ACL來“抓取”需要的路由,實際上地址前綴列表(ip ip-prefix)在“抓取”路由方面會更精確一點,這個我們將會在下一期的路由策略專題中詳細介紹。 |
|