注:PBR以前是CISCO用來丟棄報文的一個主要手段。比如:設置set interface null 0,按CISCO說法這樣會比ACL的deny要節省一些開銷。這里我提醒:
interface null 0
no ip unreachable //加入這個命令
這樣避免因為丟棄大量的報文而導致很多ICMP的不可達消息返回。
三層設備在轉發數據包時一般都基于數據包的目的地址(目的網絡進行轉發),那么策略路由有什么特點呢?
1、可以不僅僅依據目的地址轉發數據包,它可以基于源地址、數據應用、數據包長度等。這樣轉發數據包更靈活。
2、為QoS服務。使用route-map及策略路由可以根據數據包的特征修改其相關QoS項,進行為QoS服務。
3、負載平衡。使用策略路由可以設置數據包的行為,比如下一跳、下一接口等,這樣在存在多條鏈路的情況下,可以根據數據包的應用不同而使用不同的鏈路,進而提供高效的負載平衡能力。
策 略路由影響的只是本地的行為,所以可能會引起“不對稱路由”形式的流量。比如一個單位有兩條上行鏈路A與B,該單位想把所有HTTP流量分擔到A 鏈路,FTP流量分擔到B鏈路,這是沒有問題的,但在其上行設備上,無法保證下行的HTTP流量分擔到A鏈路,FTP流量分擔到B鏈路。
策略路由一般針對的是接口入(in)方向的數據包,但也可在啟用相關配置的情況下對本地所發出的數據包也進行策略路由。
本文就策略路由的以下四個方面做相關講解:
1、啟用策略路由
2、啟用Fast-Switched PBR
3、啟用Local PBR
4、啟用CEF-Switched PBR
啟用策略路由:
開始配置route-map。使用route-map map-tag [permit | deny] [sequence-number]進入route-map的配置模式。
使 用match語句定義感興趣的流量,如果不定義則指全部流量。match length min max and/or match ip address {access-list-number | name}[...access-list-number | name]
使用set命令設置數據包行為。
set ip precedence [number | name]
set ip next-hop ip-address [... ip-address]
set interface interface-type interface-number [... type number]
set ip default next-hop ip-address [... ip-address]
set default interface interface-type interface-number [... type ...number]
這 里要注意set ip next-hop與set ip default next-hop、set interface與set default interface這兩對語句的區別,不含default的語句,是不查詢路由表就轉發數據包到下一跳IP或接口,而含有default的語句是先查詢路 由表,在找不到精確匹配的路由條目時,才轉發數據包到default語句指定的下一跳IP或接口。
進入想應用策略路由的接口。interface xxx
應用所定義的策略。注意必須在定義好相關的route-map后才能在接口上使用該route-map,在接口啟用route-map策略的命令為:
ip policy route-map map-tag
啟用Fast-Switched PBR
在Cisco IOS Release 12.0之前,策略路由只能通過“進程轉發”來轉發數據包,這樣數據包的轉發效率是非常低的,在不同的平臺上,基本在每秒1000到10,000個數據 包。隨著緩存轉發技術的出現,Cisco實現了Fast-Switched PBR,大大提升了數據包的轉發速度。啟用方法即在接口中使用ip route-cache policy命令。
注意:Fast-switched PBR支持所有的match語句及大多數的set語句,但其有下面的兩個限制:
不支持set ip default next-hop 與 set default interface命令。
如 果在route-cache中不存在set中指定的接口相關的項,那么僅在point-to-point時set interface命令才能夠Fast-switched PBR。而且,在進行“進程轉發”時,系統還會先查詢路由條目查看該interface是不是一個合理的路徑。而在fast switching時,系統不會對此進行檢查。
啟用Local PBR
默認情況下,路由器自身所產生的數據包不會被策略路由,如果想對路由器自身產生的數據包也進行策略路由,那么需要在全局模式下使用如下命令來啟用:
ip local policy route-map map-tag
啟用CEF-Switched PBR
在支持CEF的平臺上,系統可以使用CEF-Switched PBR來提高PBR的轉發速度,其轉發速度比Fast-Switched PBR更快!只要你在啟用PBR的路由器上啟用了CEF,那么CEF-Switched PBR會自動啟用。
注:ip route-cache policy僅僅適用于Fast-Switched PBR,在CEF-Switched PBR中并不需要,如果你在啟用了CEF的路由器上使用PBR時,這個命令沒有任何作用,系統會忽略此命令的存在。
PBR配置案例:
案例1:
路由器通過兩條不同的鏈路連接至兩ISP,對于從async 1接口進入的流量,在沒有“精確路由”匹配的情況下,把源地址為1.1.1.1的數據包使用策略路由轉發至6.6.6.6, 源地址為2.2.2.2的數據包轉發至7.7.7.7,其它數據全部丟棄。
配置如下:
access-list 1 permit ip 1.1.1.1
access-list 2 permit ip 2.2.2.2
!
interface async 1
ip policy route-map equal-access
!
route-map equal-access permit 10
match ip address 1
set ip default next-hop 6.6.6.6
route-map equal-access permit 20
match ip address 2
set ip default next-hop 7.7.7.7
route-map equal-access permit 30
set default interface null0
案例2
在 路由器針對不同流量,修改其precedence bit,并設置下一跳地址。對于1.1.1.1產生的流量,設置precedence bit為priority,并設置其下一跳轉發地址為3.3.3.3;對于2.2.2.2產生的流量,設置precedence bit為critical,并設置其下一跳轉發地址為3.3.3.5。
配置如下:
access-list 1 permit ip 1.1.1.1
access-list 2 permit ip 2.2.2.2
!
interface ethernet 1
ip policy route-map Texas
!
route-map Texas permit 10
match ip address 1
set ip precedence priority
set ip next-hop 3.3.3.3
!
route-map Texas permit 20
match ip address 2
set ip precedence critical
set ip next-hop 3.3.3.5
==============分割線===============
route map和ACL很類似,它可以用于路由的再發布和策略路由,還經常使用在BGP中.策略路由(policy route)實際上是復雜的靜態路由,靜態路由是基于數據包的目標地址并轉發到指定的下一跳路由器,策略路由還利用和擴展IP ACL鏈接,這樣就可以提供更多功能的過濾和分類
route map的一些命令:
一 路由重發布相關
match命令可以和路由的再發布結合使用:
二 策略路由相關
match命令還可以和策略路由一起使用:
route map是通過名字來標識的,每個route map都包含許可或拒絕操作以及一個序列號,序列號在沒有給出的情況下默認是10,并且route map允許有多個陳述,如下:
還可以允許刪除個別陳述,
如下: Linus(config)#no route-map Hagar 15 在刪除的時候要特別小心,假如你輸入了no route-map Hegar而沒有指定序列號,那么整個route map將被刪除.并且如果在添加match和set語句的時候沒有指定序列號的話,那么它們僅僅會修改陳述10.在匹配的時候,從上到下,如果匹配成功,將不再和后面的陳述進行匹配,指定操作將被執行
關于拒絕操作,是依賴于route map是使用再路由的再發布中還是策略路由中,
如果是在策略路由中匹配失敗(拒絕),那么數據包將按正常方式轉發;
如果是用于路由再發布,并且匹配失敗(拒絕),那么路由將不會被再發布 如果數據包沒有找到任何匹配,和ACL一樣,route map末尾也有個默認的隱含拒絕所有的操作,如果是在策略路由中匹配失敗(拒絕),那么數據包將按正常方式轉發;如果是用于路由再發布,并且匹配失敗(拒絕),那么路由將不會被再發布 如果route map的陳述中沒有match語句,那么默認的操作是匹配所有的數據包和路由;
每個route map的陳述可能有多個match和set語句,如下:
基于策略的路由
基于策略的路由技術概述:
基于策略的路由為網絡管理者提供了比傳統路由協議對報文的轉發和存儲更強的控制能力,傳統上,路由器用從路由協議派生出來的路由表,根據目的地址進行報文的轉發。
基于策略的路由比傳統路由強,使用更靈活,它使網絡管理者不能夠根據目的地址而且能夠根據,報文大小,應用或IP源地址來選擇轉發路徑。策略可以定義為通過多路由器的負載平衡或根據總流量在各線上進行轉發的服務質量(QOS)。策略路由使網絡管理者能根據它提供的機定一個報文采取的具體路徑。而在當今高性能的網絡中,這種選擇的自由性是很需要的。
策略路由提供了這樣一種機制:根據網絡管理者制定的標準來進行報文的轉發。策略路由用MATCH和SET語句實現路徑的選擇。
策略路由是設置在接收報文接口而不是發送接口。
基于源地址的策略路由
配置概述:
路由器A將192.1.1.1來的所有數據從接口S0發出,而將從192.1.1.2來的所有數據從接口S1發出。
路由器A定義幾個二級接口作為測試點。路由器A和B配置RIP.在A的ETHERNET接口上應用IP策略路由圖LAB1,為從192.168.1.1來的數據設置下一跳接口為S0,為從192..1.1.2來的數位設置下一跳接口為S1,所有其他的報文將用基于目的地址的路由。
路由器配置:
相關調試命令:
新聞熱點
疑難解答