PBR策略路由


PBR策略路由

Policy-based routing

之前所學習的是路由策略,這兩個是完全不同的東西

路由策略:必須有路由,然后針對於路由施加策略

策略路由:很策略,后路由,可以沒有路由

啥意思,

 

這樣說,當一個數據包進入到路由器以后,

是先查策略,再查路由,然后再進行轉發。

當然了,這項技術也是離不開route-map的。

 

配置思路

1 ACL匹配數據

2 route-map定義

3 接口掛接route-map。(PBR)

定義好的PBR,是一定要進行掛接的,如果不掛接,顯然是不生效的,

另外,所掛接的接口也是有講究的,是數據來的方向。

針對的數據有兩種,一種是經過這里的,一種是本地的,所使用的掛接命令也是不同的,后面會詳細講到的。

 

應用場景

局域網出口網關,當出現多條路徑時,可以使用PBR來實現指定選路,而不需要設置路由策略。

 

1

 

 

 

 

如圖所示,

R1和R2上分別做默認路由指向R3,

R3做r4-r4兩台模擬pc的GW,

R1和R2上分別有一個loop 接口,地址都是100.1.1.1

R1,R2開啟TELNET 功能

 

現要求,

R4 icmp 請求讓其去往R2

R4 telnet 請求去往R1

 

R5 icmp請求去往R1

R5 telnet 請求去往R2

 

R3上不做任何的路由指向

 

分析,

考慮到數據走向的問題,就要借助PBR,(policy based routing)策略路由

策略路由的實現也無外乎route-map

route-map還要依靠acl,

剛才要求中提到的,有關於數據類型的,如telnet ,icmp,那么就可以使用較為精確的擴展ACL來幫助route-map實現這一功能,

 

 

具體實施

配置IP地址我就不說了

1 定義ACL,抓取具體的主機去往何處目標,干什么(更加的精細)

在實際的工作環境中,應該是針對網段的

Router(config)#access-list 100 permit icmp host 192.168.1.4 host 100.1.1.1 echo      

Router(config)#access-list 101 permit icmp host 192.168.1.5 host 100.1.1.1 echo        

Router(config)#access-list 102 per tcp hos 192.168.1.4 host 100.1.1.1 eq 23

Router(config)#access-list 103 per tcp hos 192.168.1.5 host 100.1.1.1 eq 23

 

 

 

編輯route-map

Router(config)#route-map wfy per 10

Router(config-route-map)#match ip add 100

Router(config-route-map)#set ip next-hop 23.0.0.1   ///強制指定下一跳為23.0.0.1,

 

 

                                                  就是R4請求的icmp去往R2

Router(config-route-map)#exit

 

Router(config)#route-map wfy per 20

Router(config-route-map)#match ip add 101

Router(config-route-map)#set ip next-hop 13.0.0.1   //R5請求的ICMP去往R1

Router(config-route-map)#exit

 

Router(config)#route-map wfy per 30

Router(config-route-map)#match  ip add 102

Router(config-route-map)#set ip next-hop 13.0.0.1   //R4的telnet 去往R1

Router(config-route-map)#exit

 

Router(config)#route-map wfy per 40

Router(config-route-map)#match ip add 103

Router(config-route-map)#set ip next-hop 23.0.0.1    //R5的TELNET請求去往R2

 

3 掛接

Router(config-route-map)#inter f1/0

Router(config-if)#ip policy route-map wfy

 將策略掛接在接口上,使用route-map wfy

 

 問:為什么要將它掛在接口上,而為什么又非得把它掛接在f1/0口上呢?

答:策略路由必須掛接在接口上才會生效,另外,這要考慮到數據的走向,

做為R4-R5的GW路由,F1/0口是他們的網關地址,

當路由進入到接口以后,就要先查策略,如果有相應的策略就要按照策略進行轉發,

如果沒有策略的話,就要直接進行路由表的查詢,

 

因為策略的優先級高於路由,所以必須讓它在查路由表之前運行策略。

說人話,在查找策略的時候必須得有東西可查,要不然就查路由表出去了,策略也就沒生效

 

4 測試

 

 

 

 R4 進行telnet測試,去的是R1,並且可以相連

 

 

 

 R5進行telnet測試,去的是R2,並且可以連接

 

至於icmp

我們要在R1 和 R2上開啟debug ip icmp

來檢測一個收到的echo包

 

 

 

 R4是去往R2的,沒問題

 

 

 

 OK ,也是沒有問題的。

至此實驗結束

 

通過此實驗得出以后結論

 

1 使用PBR 在定義route-map以及acl時,可以更加靈活的定義數據的走向,而不單純的是路由

2 在部署PBR時,本地可以沒有路由,但是必須兩點互通,強制性的指向下一跳方向

  

其實PBR的應用方法還有幾個,我們不防來看一下,

 

1 使用PBR實現多個下一跳

 

什么意思呢

就是當擁有多個下一跳時,可以通過pbr去設置他們的順序,一條命令全部搞寫,而不用再寫多條,當第一個不可達,自動切換到第二個,第二個不行,則第三個,....

就是這樣

 

R4(config-route-map)#set ip next-hop 14.0.0.1 24.0.0.2 34.0.0.3

直接在后面寫個多next-hop即可

 

 

 

  

R4(config)#access-list 1 per host 192.168.1.10

R4(config)#route-map

R4(config)#route-map aa per 10

R4(config-route-map)#ma ip add 1

R4(config-route-map)#set ip next-hop 14.0.0.1 24.0.0.2 34.0.0.3  //指定多個下一跳地址

然后就可以去模擬斷到R4的F0/0,F0/1口,看效果啦~

 

 2 PBR的下一跳(隔跳),next-hop非直連

那么非直連,肯定是要有路由的,確認自己的路由表中有這個地址的可達條目,且兩端可以通信即可。

 

 

 R1為一跳,R3為第二跳,最后的R4為備選默認路由,如果沒有PBR策略路由最后則執行默認路由,優先級不同嘛.

 

下面只使用了一台PC,來進行模仿,省事兒了,

R5(config)#access-list 1 per host 92.168.1.10

R5(config)#route-map wfy per 10

R5(config-route-map)#ma ip add 1

R5(config-route-map)#set ip next-hop 15.0.0.1

R5(config-route-map)#set ip next-hop recursive 23.0.0.3   //設置可達的下一跳地址

R5(config-route-map)#ip route 0.0.0.0 0.0.0.0 45.0.0.4

R5(config)#inter f2/0

R5(config-if)#ip policy route-map wfy

R5(config-if)#end

 

  以一是幾個PBR常見的場景,沒有路由也可以正常使用,

 

PBR有沒有可能是針對自己本設備上生的數據進行設置方向呢?

當然可以

但是針對於本地而言,要在全局下進行

 

R1(config)#ip local policy route-map xxx

然后,並不是所有的pbr都優先於路由,有一種特殊的配置就是在路由之后的,

R1(config-route-map)#set ip default next-hop x.x.x.x

 

可如果PBR結合NAT使用呢? 如何實現呢?

敬請期待宿主NAT文檔


免責聲明!

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



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