HUAWEI策略路由PBR
HUAWEI策略路由PBR
Traffic-policy
所謂策略路由,不用多說,是優先於路由的,當資料進入到裝置後,先查策略,再查路由
通常應用於單閘道器雙出口/多路徑時的資料流走向控制。可以說,沒有路由也可以實現互通~
舉個栗子
現兩臺路由器直連,都分別下聯了一臺PC,
R1-PC 192.168.1.0/24
R1-R2 12.0.0.0/24
R2-PC2 172.16.1.0 /24
使用traffic pollicy 策略路由功能,使得在兩臺路由裝置上沒有路由條目也可以實現兩臺PC互通。
原理
ACL抓取字首/資料
traffic classifier 匹配資料
traffic behavior 定義行為
traffic policy 繫結資料和行為
介面呼叫policy
一定要確保兩臺路由之間的直連可達。12.0.0.0/24
[R1]acl 2000 [R1-acl-basic-2000]rul per source 192.168.1.0 0.0.0.255 //這裡也可以使用擴充套件來定義不同的流量 [R1]traffic classifier aa //匹配資料 [R1-classifier-aa]if-match acl 2000 //匹配ACL [R1]traffic behavior bb //定義行為 [R1-behavior-bb]redirect ip-nexthop 12.0.0.2 //定義下一跳為12.0.0.2[R1-traffic policy cc [R1-trafficpolicy-cc]classifier aa behavior bb //policy關聯資料和行為 [R1]inter g0/0/1 [R1-GigabitEthernet0/0/1]traffic-policy cc inbound //一定要在資料的入介面來部署
[R2]acl 2000 [R2-acl-basic-2000]rul per source 172.16.1.0 0.0.0.255 [R2]traffic classifier aa [R2-classifier-aa]if-match acl 2000 [R2]traffic behavior bb [R2-behavior-bb]redirect ip-nexthop 12.0.0.1 [R2]traffic policy cc [R2-trafficpolicy-cc]classifier aa behavior bb [R2]inter g0/0/1 [R2-GigabitEthernet0/0/1]traffic-policy cc inbound
(這個邏輯真的是沒話說了,對比於cisco的route-map而言,我也是醉了)
檢視兩臺路由的路由表,並沒有指向對端的條目
測試
No problem
通過這個例項可以很清楚的看到,在沒有路由條目出去的時候,
可以通過traffic policy 指定它的下一跳來實現路由轉發。也充分的證明了,PBR是完全凌駕於路由之上的
上文講到過,PBR主要用於多出口時針對於不同的流量指定不同的方向,使得頻寬能夠被充分利用。
如圖所示,現要求vlan10去往100.1.1.1的資料走左側
Vlan20運往100.1.1.1的資料走右側
R2上做單臂路由,實現兩個VLAN通訊
基本配置就不說了,(由於我們現在還沒有配置NAT,所以在R1,R3上做預設路由指回來)
直接看R2 [gw]acl 3000 [gw-acl-adv-3000]rul permit ip source 192.168.1.0 0.0.0.255 destination 100.1.1.0 0.0.0.255 [gw]acl 3001 [gw-acl-adv-3001]rul per ip sou 192.168.2.0 0.0.0.255 destination 100.1.1.0 0.0.0.255 [gw]traffic classifier vlan10 //定義名字vlan10的匹配 [gw-classifier-vlan10]if-match acl 3000 //匹配ACL [gw]traffic behavior vlan10 //定義行為動作 [gw-behavior-vlan10]redirect ip-nexthop 12.0.0.1 [gw]traffic policy vlan10 [gw-trafficpolicy-vlan10]classifier vlan10 behavior vlan10 //匹配和動作進行關聯 [gw-trafficpolicy-vlan10]inter g2/0/0.1 [gw-GigabitEthernet2/0/0.1]traffic-policy vlan10 inbound 入口方向呼叫Policy [gw]traffic classifier vlan20 [gw-classifier-vlan20]if-match acl 3001 [gw]traffic behavior vlan20 [gw-behavior-vlan20]redirect ip-nexthop 23.0.0.3 [gw-trafficpolicy-vlan20]classifier vlan20 behavior vlan20 [gw-GigabitEthernet2/0/0.2]traffic-policy vlan20 inbound
最後進行測試
開啟R1和R3的debugging
<R1>terminal debugging
<R1>debugging ip icmp
可以看到PC1在請求時,資料到達了R1
當然另一側肯定也是一樣的,
效果是實現了,但又有一個問題浮現出來了,
我們在組網時,肯定會設計到冗餘設計,
像剛才的操作,PC1去請求100.1.1.1如果R1這邊出現故障,能否切換到R3方向呢?
又該如何操作中?
其實這個點還是很好理解的,
因為pbr優於路由,也就是說有沒有路由都會優先PBR,當PBR不生效時,也就不會去走它,從而走路由出去。
嘿嘿,這個很簡單對吧,(當然,前提是能夠檢測到出介面有問題的情況下,)
比如斷掉這裡
做為出介面肯定能夠感知,
出介面有問題,到達下一跳也肯定有問題,PBR不生效,怎麼辦?
沒關係有預設路由啊~
而且這兩條都不用去設定什麼浮動路由,不用去設定誰優先等等.
反正一邊有問題肯定預設路由也會跟著消失。
但是如果這樣呢?
這個接口出現問題呢?咋辦?
還能感知吧?肯定不行了吧,非直連線口,圖中我用hub來代替現實中的中繼裝置
這個時候就要用到一個工具,NQA,(和cisco中的sla基本上一樣,執行上行鏈路檢測的)
而且還要和預設路由相結合
nqa test-instance admin test //定義NQA程序 需要使用者和測試的名字 test-type icmp //使用測試的協議 destination-address ipv4 12.0.0.1 //測試目標地址 frequency 1 //執行間隔 interval seconds 2 //報文間隔 timeout 1 //超時 probe-count 1 //探測次數,單次測試中的探測次數, start now //現在開始
traffic behavior vlan10 //執行動作中track nqa redirect ip-nexthop 12.0.0.1 track nqa admin test
ip route-static 0.0.0.0 0.0.0.0 23.0.0.3 ip route-static 0.0.0.0 0.0.0.0 12.0.0.1 track nqa admin test //預設路由也要加上NQA,
這樣一來,NQA負責監控遠端地址,如果出現問題會取消這個pbr,轉至預設路由,
而預設路由並不知道是否遠端出現問題,所以,也要關聯NQA實現兩個預設路由之間的切換。
有可能你會說,我直接使用預設路由不就OK啦,幹嘛還要用PBR呢?不要忘了,我們前面設定的是強制資料走向。Vlan10走左側,只有當這一側出現問題時才會走另外一側。(如果只做預設路由+nqa ,這就是浮動路由嘍~)
PBR的另一種用法(本地應用)
如果此時是這樣的要求,要求GW訪問100.1.1.1的流量強制走R3要怎麼做呢?
如圖所求,
1 PC1請求CLOUD時,走AR1
R2請求CLOUD1 時走AR3
針對於經過本裝置的流量
[GW]acl 2000 [GW-acl-basic-2000]rul per source 192.168.1.10 0 [GW-acl-basic-2000]q [GW]traf c 1 [GW-classifier-1]if-match acl 2000 [GW]traf be 2 [GW-behavior-2]redirect ip-nexthop 12.0.0.1 [GW-behavior-2]q [GW]traffic pol 3 [GW-trafficpolicy-3]cla 1 be 2 [GW-trafficpolicy-3]q [GW]inter g2/0/0 [GW-GigabitEthernet2/0/0]traffic-poli 3 inbound
針對於本地流量
[GW]acl 2001 [GW-acl-basic-2001]rul 5 per so any //匹配所有本地 [GW]policy-based-route aa per node 10 //建立PBR [GW-policy-based-route-aa-10]if-match acl 2001 //匹配ACL [GW-policy-based-route-aa-10]apply ip-address next-hop 23.0.0.3 //應用動作 [GW-policy-based-route-aa-10]q [GW]ip local policy-based-route aa //應用本地策略
測試
測試本地
注意
針對於AR2而言,本地始發的,和經過此地的資料是兩回事
另外,PBR只適合小範圍使用,什麼意思呢?就是隻能在到下一跳裝置的距離,另外,這個功能很佔用系統CPU,所以,還是慎用
----------------------------------------------
CCIE成長之路 ---梅利