思科Cisco策略路由詳細介紹

思科策略路由怎麼配置呢?下面yjbys為大家就策略路由的以下四個方面做相關講解,配置Cisco策略的朋友可以參考下

思科Cisco策略路由詳細介紹

注: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}[ss-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 er]

這 裏要注意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接口進入的流量,在沒有“精確路由”匹配的情況下,把源地址為的數據包使用策略路由轉發至, 源地址為的數據包轉發至,其它數據全部丟棄。

配置如下:

access-list 1 permit ip

access-list 2 permit ip

!

interface async 1

ip policy route-map equal-access

!

route-map equal-access permit 10

match ip address 1

set ip default next-hop

route-map equal-access permit 20

match ip address 2

set ip default next-hop

route-map equal-access permit 30

set default interface null0

案例2

在 路由器針對不同流量,修改其precedence bit,並設置下一跳地址。對於產生的流量,設置precedence bit為priority,並設置其下一跳轉發地址為;對於產生的流量,設置precedence bit為critical,並設置其下一跳轉發地址為。

配置如下:

access-list 1 permit ip

access-list 2 permit ip

!

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

!

route-map Texas permit 20

match ip address 2

set ip precedence critical

set ip next-hop

==============分割線===============

route map和ACL很類似,它可以用於路由的再發布和策略路由,還經常使用在BGP中.策略路由(policy route)實際上是複雜的靜態路由,靜態路由是基於數據包的目標地址並轉發到指定的下一跳路由器,策略路由還利用和擴展IP ACL鏈接,這樣就可以提供更多功能的過濾和分類

route map的一些命令:

一 路由重發布相關

match命令可以和路由的再發布結合使用:

代碼如下:

h interface {type number} […type number]:匹配指定的下一跳路由器的接口的路由

h ip address {ACL number|name} […ACL number|name]:匹配ACL所指定的目標IP地址的路由

h ip next-hop {ACL number|name} […ACL number|name]:匹配ACL所指定的下一跳路由器地址的路由

h ip route-source {ACL number|name} […ACL number|name]:匹配ACL所指定的路由器所宣告的路由

h metric {metric-value}:匹配指定metric大小的路由

h route-type {internal|external[type-1|type-2]|level-1|level-2}:匹配指定的OSPF,EIGRP或IS-IS的路由類型的`路由

h tag {tag-value} […tag-value]:匹配帶有標籤(tag)的路由

set命令也可以和路由的再發布一起使用:

代碼如下:

level {level-1|level-2|level-1-2|stub-area|backbone}:設置IS-IS的Level,或OSPF的區域,匹配成功的路由將被再發布到該區域

metric {metric-value|bandwidth delay RELY load MTU}:為匹配成功的路由設置metric大小

metric-type {internal|external|type-1|type-2}:為匹配成功的路由設置metric的類型,該路由將被再發布到OSPF或IS-IS 1

next-hop {next-hop}:為匹配成功的路由指定下一跳地址

tag {tag-value}:為匹配成功的路由設置標籤

二 策略路由相關

match命令還可以和策略路由一起使用:

代碼如下:

h ip address {ACL number|name} […ACL number|name]:匹配ACL所指定的數據包的特徵的路由

h length {min} {max}:匹配層3的數據包的長度

set命令也可以和策略路由一起使用:

代碼如下:

default interface {type number} […type number]:當不存在指向目標網絡的顯式路由(explicit route)的時候,為匹配成功的數據包設置出口接口

interface {type number} […type number]:當存在指向目標網絡的顯式路由的時候,為匹配成功的數據包設置出口接口

ip default next-hop {ip-address} […ip-address]:當不存在指向目標網絡的顯式路由的時候,為匹配成功的數據包設置下一跳路由器地址

ip precedence {precedence}:為匹配成功的IP數據包設置服務類型(Type of Service,ToS)的優先級

ip tos {tos}:為匹配成功的數據包設置服務類型的字段的TOS位

Configuring Route Maps

route map是通過名字來標識的,每個route map都包含許可或拒絕操作以及一個序列號,序列號在沒有給出的情況下默認是10,並且route map允許有多個陳述,如下:

代碼如下:

Linus(config)#route-map Hagar 20

Linus(config-route-map)#match ip address 111

Linus(config-route-map)#set metric 50

Linus(config-route-map)#route-map Hagar 15

Linus(config-route-map)#match ip address 112

Linus(config-route-map)#set metric 80

儘管先輸入的是20,後輸入的是15,IOS將把15放在20之前.

還可以允許刪除個別陳述,

如下: 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語句,如下:

代碼如下:

! route-map Garfield permit 10

match ip route-source 15

match interface Serial0

set metric-type type-1

set next-hop !

在這裏,為了執行set語句,每個match語句中都必須進行匹配 .

基於策略的路由

基於策略的路由技術概述:

基於策略的路由為網絡管理者提供了比傳統路由協議對報文的轉發和存儲更強的控制能力,傳統上,路由器用從路由協議派生出來的路由表,根據目的地址進行報文的轉發。

基於策略的路由比傳統路由強,使用更靈活,它使網絡管理者不能夠根據目的地址而且能夠根據,報文大小,應用或IP源地址來選擇轉發路徑。策略可以定義為通過多路由器的負載平衡或根據總流量在各線上進行轉發的服務質量(QOS)。策略路由使網絡管理者能根據它提供的機定一個報文采取的具體路徑。而在當今高性能的網絡中,這種選擇的自由性是很需要的。

策略路由提供了這樣一種機制:根據網絡管理者制定的標準來進行報文的轉發。策略路由用MATCH和SET語句實現路徑的選擇。

策略路由是設置在接收報文接口而不是發送接口。

基於源地址的策略路由

配置概述:

路由器A將來的所有數據從接口S0發出,而將從來的所有數據從接口S1發出。

路由器A定義幾個二級接口作為測試點。路由器A和B配置RIP.在A的ETHERNET接口上應用IP策略路由圖LAB1,為從來的數據設置下一跳接口為S0,為從來的數位設置下一跳接口為S1,所有其他的報文將用基於目的地址的路由。

路由器配置:

代碼如下:

ROUTE A:

Version 11.2

No service udp-small-servers

No service tcp-small-servers

Hostname routerA

Interface ethernet0

Ip address secondary

Ip address secondary

Ip address secondary

Ip address

Ip policy route-map lab1

//策略路由應用於E0口

interface serial0

ip addr

interface serial1

ip addr

router rip

network

network

network

ip local policy route-map lab1

//使路由器策略路由本地產生報文

no ip classless

access-list 1 permit

access-list 2 permit

route-map lab1 permit 10

//定義策略路由圖名稱:LAB1,10為序號,用來標明被匹配的路由順序。

Match ip address 1

//匹配地址為訪問列表1

Set interface serial0

//匹配下一跳為S0

Route-map lab1 permit 20

Match ip address 2

Set interface serial1

Line con0

Line aux0

Line vty 0 4

Login

End

路由器B為標準配置略。

相關調試命令:

代碼如下:

show ip policy

show router-map

debug ip policy