路由策略:操作對象是路由信息,主要用於兩個方面:(1)對路由信息進行過濾。(2)修改路由屬性
什么是路由策略
路由策略不是一個特定的技術,也不是一個特定的特性
PBR:操作對象是數據包,策略路由是通過用戶制定的策略進行轉發,且該策略優於路由表的轉發。(在路由表已經產生的情況下,不按照路由表進行轉發,而是根據需要,依照某種策略改變數據包轉發路徑
路由策略包括:1.router-policy 的組成
首先通過ACL或者IP-Prefix 工具來匹配流量目標流量
l 節點號
一個Route-Policy可以由多個節點(node)構成。路由匹配Route-Policy時遵循以下兩個規則:
1)順序匹配:在匹配過程中,系統按節點號從小到大的順序依次檢查各個表項,因此在指定節點號時,要注意符合期望的匹配順序。
2)唯一匹配:Route-Policy各節點號之間是“或”的關系,只要通過一個節點的匹配,就認為通過該過濾器,不再進行其它節點的匹配。
l 匹配模式
節點的匹配模式有兩種:permit和deny。
1)permit指定節點的匹配模式為允許。當路由項通過該節點的過濾后,將執行該節點的apply子句,不進入下一個節點;如果路由項沒有通過該節點過濾,將進入下一個節點繼續匹配。
2)deny指定節點的匹配模式為拒絕。這時apply子句不會被執行。當路由項滿足該節點的所有if-match子句時,將被拒絕通過該節點,不進入下一個節點;如果路由項不滿足該節點的if-match子句,將進入下一個節點繼續匹配。
注意事項:
通常在多個deny節點后設置一個不含if-match子句和apply子句的permit模式的Route-Policy,用於允許其它所有的路由通過。
l if-match子句(條件語句)
if-match子句用來定義一些匹配條件。Route-Policy的每一個節點可以含有多個if-match子句,也可以不含if-match子句。如果某個permit節點沒有配置任何if-match子句,則該節點匹配所有的路由。
l apply子句(執行語句)
apply子句用來指定動作。路由通過Route-Policy過濾時,系統按照apply子句指定的動作對路由信息的一些屬性進行設置。Route-Policy的每一個節點可以含有多個apply子句,也可以不含apply子句。如果只需要過濾路由,不需要設置路由的屬性,則不使用apply子句。
2 路由策略匹配結果
相信大家在使用或者學習Route-Policy的時候都重點關注這樣一個問題:對於一條路由,在使用Route-Policy以后,最終結果是允許還是拒絕這條路由呢?這個最終的結果對於業務的影響是非常大的,可能會直接影響某種業務的通與不通。這就涉及到Route-Policy匹配規則的問題了,這里我們詳細討論一下。
Route-Policy每個node節點的過濾結果要綜合以下兩點:
1、 Route-Policy的node節點的匹配模式(permit或deny)。
2、 if-match子句(如引用的地址前綴列表或者訪問控制列表)中包含的匹配條件(permit或deny)。
對於每一個node節點,以上兩點的排列組合會出現表1所示的4種情況。
Rule
Mode
匹配結果
permit
permit
l 匹配該節點if-match子句的路由在本節點允許通過Route-Policy,匹配結束。
l 不匹配if-match子句的路由進行Route-Policy下一個節點的匹配。
permit
deny
l 匹配該節點if-match子句的路由在本節點不允許通過Route-Policy,匹配結束。
l 不匹配if-match子句的路由進行Route-Policy下一個節點的匹配。
deny
permit
l 匹配該節點if-match子句的路由在本節點不允許通過Route-Policy,繼續進行Route-Policy下一個節點的匹配。
l 不匹配if-match子句的路由進行Route-Policy下一個節點的匹配
deny
deny
l 匹配該節點if-match子句的路由在本節點不允許通過Route-Policy,繼續進行Route-Policy下一個節點的匹配。
l 不匹配if-match子句的路由進行Route-Policy下一個節點的匹配
注1:Rule表示if-match子句中包含的匹配模式是permit還是deny。
注2:Mode表示Route-Policy中node節點對應的匹配模式permit還是deny。
表1 Route-Policy的匹配規則
上述四種組合情況中,前兩種比較好理解,也比較常用。后兩種相對難理解一點,這里我們以第三種情況為例,舉例說明一下:
假設if-match子句中包含的匹配條件是deny,node節點對應的匹配條件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 //在這個節點,172.16.16.0這條路由被拒絕,繼續往下
if-match acl 2001
#
route-policy RP permit node 20 //在這個節點,172.16.16.0這條路由被允許
if-match acl 2002
#
這種情況下,有一個關鍵點就是在node 10,172.16.16.0這條路由被拒絕,同時會繼續往下匹配,或許下一個節點就允許通過了呢?果然,繼續往下走,到node 20這個節點的時候172.16.16.0又被允許了,所以Route-Policy的最終匹配結果是允許172.16.16.0這條路由。
注意事項:
華為S交換機默認所有未匹配的路由將被拒絕通過Route-Policy。如果Route-Policy中定義了一個以上的節點,應保證各節點中至少有一個節點的匹配模式是permit。因為Route-Policy用於路由信息過濾時:
l 如果某路由信息沒有通過任一節點,則認為該路由信息沒有通過該Route-Policy。
l 如果Route-Policy的所有節點都是deny模式,則沒有路由信息能通過該Route-Policy。
3 路由策略使用案例
通過上面兩個小節,我們介紹完了Route-Policy的組成和匹配規則。這個小節中,我們來看一個Route-Policy的使用實例。
圖2 使用Route-Policy實現數據分流示例
用戶需求
如圖2所示,某園區網絡主要划分為生產網段和辦公網段。LSW3下掛的終端訪問下面的網段的時候流量模型如下:
10.10.1.0/24-----生產網段,優先走LSW1出去,LSW2作為備份鏈路。
10.10.2.0/24-----辦公網段,優先走LSW2出去,LSW1作為備份鏈路。
10.10.3.0/24-----其他網段,隨便走那邊都行,負載分擔即可。
這種流量模型,可以保證生產網絡與辦公網絡的流量分離,便於維護和故障定位。同時,這種流量模型有利於流量均衡的分配到兩條鏈路上,同時互相作為備份鏈路,有利於網絡的穩定性。
配置過程
1、 LSW1、LSW2、LSW3三個設備之間建立OSPF鄰居關系。
2、 LSW1和LSW2上配置到達上述網段的靜態路由,並引入OSPF,從而通告給LSW3。
3、 LW1和LSW2上配置路由策略,調整流量模型滿足用戶規划的需求。
這里僅給出涉及路由策略的關鍵配置:
LSW1關鍵配置:
#
acl number 2000
rule 5 permit source 10.10.1.0 0 //用於匹配生產網段路由
#
acl number 2001
rule 5 permit source 10.10.2.0 0 //用於匹配辦公網段路由
#
route-policy RP permit node 10
if-match acl 2000
apply cost 10 //設置生產網段路由的cost值為10
#
route-policy RP permit node 20
if-match acl 2001
apply cost 20 //設置辦公網段路由的cost值位20
#
route-policy RP permit node 30 //剩余網段的路由允許進來,不做任何處理
#
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關鍵配置:
#
acl number 2000
rule 5 permit source 10.10.1.0 0 //用於匹配生產網段路由
#
acl number 2001
rule 5 permit source 10.10.2.0 0 //用於匹配辦公網段路由
#
route-policy RP permit node 10
if-match acl 2000
apply cost 20 //設置生產網段路由的cost值為20
#
route-policy RP permit node 20
if-match acl 2001
apply cost 10 //設置辦公網段路由的cost值為10
#
route-policy RP permit node 30 //剩余網段的路由允許進來,不做任何處理
#
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
#
結果驗證
完成上述配置以后,可以在LSW3上查看IP路由表,確認流量模型是否正確。
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的路由表中可以看到,到達生產網段10.10.1.0/24的流量優先走LSW1,到達辦公網段10.10.2.0/24的流量優先走LSW2,到達其他網段的流量在LSW1和LSW2兩條鏈路上進行負載分擔。流量模型符合預期。
通過本期專題,我們把Route-Policy的組成結構、匹配規則基本上就講清楚了,也通過一個實例讓大家了解了Route-Policy的使用場景和配置方法。本期專題中,我們主要使用了ACL來“抓取”需要的路由,實際上地址前綴列表(ip ip-prefix)在“抓取”路由方面會更精確一點,這個我們將會在下一期的路由策略專題中詳細介紹。
轉自中國存儲網,原文鏈接:http://www.chinastor.com/netdevice/switch/04063AC2017.html
2.Filter-policy
3.IP-Prefix