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

(這個邏輯真的是沒話說了,對比於ciscoroute-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

 

 

最后進行測試

開啟R1R3debugging

<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成長之路 --- 梅利 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM