pbr 多出口_PBR+多出口NAT+IP SLA
PBR策咯路由(Policy-Based Routing)
route-map的一種應(yīng)用,基于策略的路由比傳統(tǒng)的路由能力更強,使用更靈活,它使網(wǎng)絡(luò)管理者不僅能夠根據(jù)目的地址而且能夠根據(jù)協(xié)議類型、報文大小、應(yīng)用或IP源地址來選擇轉(zhuǎn)發(fā)路徑。策略路由可以定義為通過多路由器的負載平衡或根據(jù)總流量在各線上進行報文轉(zhuǎn)發(fā)的服務(wù)質(zhì)量來定義策略路由
策略路由主要對經(jīng)過路由器的數(shù)據(jù)流進行分流和過濾以及感興趣的數(shù)據(jù)流
在講PBR之前有必要簡單介紹下Route-map工具,Route-map包含兩元,一個是match(匹配)還有一個是set(執(zhí)行動作)。
Route-map默認為permit,默認序列號10,序列號不會自動遞增,需要指定序列號
Route-map執(zhí)行從最小的序列號開始執(zhí)行,如果一旦匹配住將不再執(zhí)行下邊序列號的語句,如果一個都沒有匹配住,Route-map末尾隱含deny any語句。
單條match語句包含多個條件時,使用邏輯or運算(或運算)
多條match語句時,使用邏輯and運算(且運算)
Route-map name {permit|deny }10
match xxx zzz???????????????? X和Z只要匹配住一個這個match就成真
Set yy執(zhí)行set動作
Route-map name {permit|deny } 20
match xxx????????????????????? x和z兩個match都必須匹配住這個序列號中的set動作才會執(zhí)行
match zzz
Set yy
Route-map name deny隱含deny any語句
PBR對數(shù)據(jù)的處理流程:
圖解:數(shù)據(jù)包到了接口,路由器查看是否應(yīng)用PBR工具,如果有執(zhí)行PBR的match語句,如果被match語句匹配住則執(zhí)行set動作,如果沒有被match語句匹配住,這個數(shù)據(jù)包流量將會按照傳統(tǒng)路由表進行轉(zhuǎn)發(fā),而不是丟棄。這是PBR很重要的一個處理數(shù)據(jù)包的流程概念,PBR的set動作是優(yōu)于路由表的。
PBR的配制分為三個步驟:1.用ACL匹配數(shù)據(jù)2.在Route-map中部署PBR? 3.調(diào)用PBR
如果你只再Route-map中部署PBR而不調(diào)用,PBR是不生效的。
整篇文章的實驗拓撲IP地址規(guī)劃:192.168.xy.z/24 ? 其中x和y是兩端設(shè)備編號,z是設(shè)備本身編號。 x代表較小的設(shè)備編號,y代表較大的設(shè)備編號
例如:R1----R2 ? ? R1的IP:192.168.12.1 ? R2的IP:192.168.12.2 ? ? 下邊文章不做贅述IP編址
PBR的應(yīng)用場景一:
PBR叫策略路由,而不是叫路由策略,PBR和傳統(tǒng)的路徑控制工具最大的區(qū)別就是它可以跟據(jù)源去做策略,而傳統(tǒng)的路徑控制工具只能根據(jù)目的去做決策,改變目的來影響數(shù)據(jù)流的走向。
如上圖,R1路由器去往100.100.100.100/24目的有兩條路徑,下邊的VLAN10和VLAN20用戶只能走一邊,或者等價負載均衡方式轉(zhuǎn)發(fā)。傳統(tǒng)工具無法做到讓VLAN10強制走R2,VLAN20強制走R3。
PBR可以做到,PBR可以跟據(jù)源去匹配感興趣的data(數(shù)據(jù)),強制性讓VLAN10用戶走R2,并且當(dāng)R2掛掉切換到R3。強制性讓VLAN20走R3,同樣當(dāng)R3掛掉切換到R2。
具體配置命令:
R1(config)#ip access-list standard vlan10
R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255
R1(config)#ip access-list standard vlan20
R1(config-std-nacl)#permit 192.168.2.0 0.0.0.255
首先用ACL匹配感興趣數(shù)據(jù)流,上邊命令分別用兩個ACL去匹配VLAN10和VLAN20的數(shù)據(jù)
R1(config)#route-map PBR permit 10創(chuàng)建Route-map,配置PBR
R1(config-route-map)#match ip address vlan10????? match VLAN10的ACL
R1(config-route-map)#set ip next-hop 192.168.12.2執(zhí)行set動作將數(shù)據(jù)丟給下一跳,需要注意這個下一跳一定是我直連的下一跳。Set動作的意思就是我將數(shù)據(jù)包丟給我的下一跳路由器,讓它幫我轉(zhuǎn)發(fā)數(shù)據(jù)
R1(config-route-map)#exit它丟給下一跳的動作是不會改變數(shù)據(jù)包的源和目的信息
R1(config)#route-map PBR permit 20在PBR的Route-map里邊創(chuàng)建第二個序列號
R1(config-route-map)#match ip address vlan20????? match VLAN20的ACL
R1(config-route-map)#set ip next-hop 192.168.13.3執(zhí)行set動作將數(shù)據(jù)丟給下一跳,需要注意這個下一跳一定是我直連的下一跳,Set動作的意思就是我將數(shù)據(jù)包丟給我的下一跳路由器,讓它幫我轉(zhuǎn)發(fā)數(shù)據(jù)
R1(config-route-map)#exit?????????????????????????????????????????????????????????????它丟給下一跳的動作是不會改變數(shù)據(jù)包的源和目的信息
R1(config)#interface fastEthernet 1/0在R1路由器的f1/0接口進行調(diào)用
R1(config-if)#ip policy route-map PBR這條命令是調(diào)用PBR,接口調(diào)用PBR,使得剛配置的PBR生效
PBR的調(diào)用有兩種方式:第一種接口調(diào)用,第二種全局調(diào)用
接口調(diào)用:從這個接口經(jīng)過的數(shù)據(jù)流量執(zhí)行PBR的策略
全局調(diào)用:R1(config)#ip local policy route-map PBR全局調(diào)用就是從這臺路由器設(shè)備本身經(jīng)過的數(shù)據(jù)全部執(zhí)行PBR的策略
經(jīng)過以上三個步驟配置,PBR的最簡單的應(yīng)用場景就實現(xiàn)了,下邊查看VLAN10和VLAN20用戶是不是按照PBR的方式執(zhí)行
R1路由表去往100.100.100.100/24實際上是走的默認路由,而默認路由的下一跳是R2,也就是在上述情況,去往該目的地實際上只能走R2,通過R3是到不了的,但是我們PBR可以做到,因為我們可以將數(shù)據(jù)丟給我的直連下一跳,讓它們進行轉(zhuǎn)發(fā)。
R1#show ip route
C??? 192.168.15.0/24 is directly connected, FastEthernet2/0
C??? 192.168.16.0/24 is directly connected, FastEthernet1/0
S??? 192.168.1.0/24 [1/0] via 192.168.16.6
S??? 192.168.2.0/24 [1/0] via 192.168.16.6
S*?? 0.0.0.0/0 [1/0] via 192.168.12.2
PC-4#traceroute 100.100.100.100???????????????????? VLAN10用戶
Type escape sequence to abort.
Tracing the route to 100.100.100.100
1 192.168.1.254 80 msec 52 msec 16 msec
2 192.168.16.1 76 msec 48 msec 44 msec
3 192.168.12.2 108 msec 72 msec 44 msec最后一跳路由是192.168.12.2剛好是R2
PC-5#traceroute 100.100.100.100????????????????????????????? VLAN20用戶
Type escape sequence to abort.
Tracing the route to 100.100.100.100
1 192.168.2.254 88 msec 60 msec 20 msec
2 192.168.16.1 60 msec 48 msec 44 msec
3 192.168.13.3 84 msec 64 msec 72 msec最后一跳路由是192.168.13.3剛好是R3
總結(jié):VLAN10的用戶發(fā)送數(shù)據(jù)到去往100.100.100.100/24目的,數(shù)據(jù)包到了R1的f1/0接口,R1路由器查看有沒有部署PBR,剛好部署,查看match語句能否匹配,剛好匹配執(zhí)行set動作強制將數(shù)據(jù)包丟給R2路由器
VLAN20的用戶發(fā)送數(shù)據(jù)到去往100.100.100.100/24目的,數(shù)據(jù)包到了R1的f1/0接口,R1路由器執(zhí)行PBR,將數(shù)據(jù)丟給R3,其實如果沒有部署PBR,R1直接通過R3是過不去的,因為沒有路由。R1的路由表去往100.100.100.100/24只有一條默認路由指向R2。但是我們做了PBR,R1將數(shù)據(jù)丟個了R3路由器,讓它進行轉(zhuǎn)發(fā),盡管我路由表本身沒有路由。
PBR應(yīng)用場景二:利用set語句的多個下一跳特性
需求:希望VLAN10用戶強制走R2路由器,當(dāng)R2路由器掛掉后走R3路由器,當(dāng)R3掛掉后通過R7訪問100.100.100.100/24
希望VLAN20用戶強制走R3路由器,當(dāng)R3路由器掛掉后走R2路由器,當(dāng)R2掛掉后通過R7訪問100.100.100.100/24
具體配置命令:
R1(config)#ip access-list standard vlan10
R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255
R1(config)#ip access-list standard vlan20
R1(config-std-nacl)#permit 192.168.2.0 0.0.0.255
首先用ACL匹配感興趣數(shù)據(jù)流,上邊命令分別用兩個ACL去匹配VLAN10和VLAN20的數(shù)據(jù)
R1(config)#route-map PBR permit 10創(chuàng)建Route-map,配置PBR
R1(config-route-map)#match ip address vlan10????? match VLAN10的ACL
R1(config-route-map)#set ip next-hop 192.168.12.2????? ?192.168.13.3????????????????? set動作這里的下一跳可以寫多個,先執(zhí)行第一個,當(dāng)?shù)谝粋€不可達了也就是掛掉了,執(zhí)行第二個
R1(config-route-map)#exit
R1(config)#route-map PBR permit 20在PBR的Route-map里邊創(chuàng)建第二個序列號
R1(config-route-map)#match ip address vlan20????? match VLAN20的ACL
R1(config-route-map)#set ip next-hop 192.168.13.3????? ?192.168.12.2????????????????? set動作這里的下一跳可以寫多個,先執(zhí)行第一個,當(dāng)?shù)谝粋€不可達了也就是掛掉了,執(zhí)行第二個
R1(config-route-map)#exit
R1(config)#interface fastEthernet 1/0在R1路由器的f1/0接口進行調(diào)用
R1(config-if)#ip policy route-map PBR這條命令是調(diào)用PBR
總結(jié):其實配置和場景一配置是一模一樣的,就是在set后邊多添加了那個下一跳的地址,當(dāng)?shù)谝粋€地址不可達了,執(zhí)行第二個地址。
實驗結(jié)果:
R1(config)#interface fastEthernet 0/0????????????????????模擬R2路由器掛掉,看VLAN10的用戶是否切換到R3
R1(config-if)#shutdown ????????????????????????????????????????????關(guān)閉R1路由器接口,也只能關(guān)閉R1的,因為模擬器無法感知對端設(shè)備的存活,將就下,最后講解如何讓R1探測到對端設(shè)備存活
PC-4#traceroute 100.100.100.100?????????????? VLAN10的用戶
Type escape sequence to abort.
Tracing the route to 100.100.100.100
1 192.168.1.254 40 msec 68 msec 12 msec
2 192.168.16.1 80 msec 56 msec 64 msec
3 192.168.13.3 88 msec 116 msec 56 msec最后一跳路由是192.168.13.3剛好R3路由器?????????說明PBR生效了 ? VLAN20的用戶同理
PBR應(yīng)用場景三:遞歸下一跳
PBR的set動作下一跳也不一定非要是直連的路由器接口IP,PBR有一個遞歸下一條的概念。
recursive next-hop(遞歸下一跳)特性突破了傳統(tǒng)下一跳必須是直連路由器接口IP的限制。recursive next-hop可以不是直連網(wǎng)絡(luò),只要路由表中有相關(guān)的路由可達即可。一般recursive next-hop不可達,數(shù)據(jù)交由路由 ? ? ? 表處理(一般就被默認路由匹配走了)
規(guī)則:如果在一個route-map列表同一個序列號中同時使用ip next-hop及ip next-hop recursive,則ip next-hop有效,如果IP next-hop掛了,則啟用IP next-hop recursive,如果兩個都掛了,則丟給路由表處理。注意: ? ? ?? 一個route-map序列號中,只允許配置一個ip next-hop recursive
需求VLAN10和VLAN20用戶強制走R3路由器,當(dāng)R3路由器掛掉以后從R2路由器走,R2路由器掛掉后從R5路由器轉(zhuǎn)發(fā)出去。
R1(config)#ip access-list standard vlan10anvlan20
R1(config-std-nacl)#10 permit 192.168.1.0 0.0.0.255
R1(config-std-nacl)#20 permit 192.168.2.0 0.0.0.255
首先用ACL匹配感興趣數(shù)據(jù)流,上邊命令用1個ACL去匹配VLAN10和VLAN20的數(shù)據(jù)
R1(config)#route-map PBR permit 10????????????????????創(chuàng)建Route-map,配置PBR
R1(config-route-map)#match ip address vlan10andvlan20????????????match VLAN10和VLAN20的用戶數(shù)據(jù)流量ACL
R1(config-route-map)#set ip next-hop 192.168.13.3????????????????????????先set到R3路由器
R1(config-route-map)#set ip next-hop recursive 192.168.24.2????????遞歸到R2路由器f0/1接口,也只能遞歸這個接口,不能遞歸到R4路由器接口IP
R1(config-route-map)#exit
R1(config)#interface fastEthernet 1/0在R1路由器的f1/0接口進行調(diào)用
R1(config-if)#ip policy route-map PBR這條命令是調(diào)用PBR
結(jié)果:
R1#show ip route
C??? 192.168.15.0/24 is directly connected, FastEthernet2/0
C??? 192.168.16.0/24 is directly connected, FastEthernet1/0
S??? 192.168.1.0/24 [1/0] via 192.168.16.6
S??? 192.168.2.0/24 [1/0] via 192.168.16.6
S??? 192.168.24.0/24 [1/0] via 192.168.12.2
S*?? 0.0.0.0/0 [1/0] via 192.168.15.5
在R1的路由表中去往100.100.100.100/24的目的只有默認路由可以匹配,但是默認路由的下一跳是R5,因為部署了PBR所以先匹配PBR的set動作。
R1(config)#interface fastEthernet 0/1
R1(config-if)#shutdown將R1的f0/1接口shutdown掉,模擬R3掛掉
PC-4#traceroute 100.100.100.100
Type escape sequence to abort.
Tracing the route to 100.100.100.100
1 192.168.1.254 88 msec 72 msec 12 msec
2 192.168.16.1 56 msec 56 msec 40 msec
3 192.168.12.2 104 msec 72 msec 44 msec最后一跳路由是192.168.12.2剛好R2路由器
R1(config)#interface fastEthernet 0/0
R1(config-if)#shutdown將R1的f0/0接口shutdown掉,模擬R2掛掉
PC-4#traceroute 100.100.100.100
Type escape sequence to abort.
Tracing the route to 100.100.100.100
1 192.168.1.254 100 msec 28 msec 16 msec
2 192.168.16.1 48 msec 28 msec 20 msec
3 192.168.15.5 84 msec 40 msec 24 msec最后一跳路由是192.168.15.5剛好R5路由器
應(yīng)用場景四:多出口NAT+PBR+IP SLA
需求:我們希望VLAN10的用戶走ISP-1,VLAN20的用戶走ISP-2并且在兩邊任何鏈路故障都能夠切換,結(jié)合NAT
IP SLA:cisco公司的一種私有協(xié)議,可以通過源發(fā)送icmp包檢測公司與運營商之間的接口是否是up的,因為有可能R1作為客戶路由器和運營商之間有一臺透明設(shè)備。假設(shè)ISP-1和透明設(shè)備之間鏈路故障,而作為客戶這邊是感知不到的,豈不是數(shù)據(jù)轉(zhuǎn)發(fā)就有問題。就算沒有透明設(shè)備,一般與運營商之間鏈路接口的UP和down也很難通過接口本身去感知,所以我們需要IP SLA協(xié)議去探測鏈路接口的UP和down,更多的說明,還請百度。在模擬器環(huán)境下IP SLA好像只對S串口生效,就是我上圖環(huán)境,以太網(wǎng)接口模擬器它模擬不到對端存活,我有嘗試以太網(wǎng)接口沒用。。。。。。
多出口NAT:我們希望VLAN10的用戶走ISP-1,VLAN20的用戶走ISP-2
并且在兩邊任何鏈路故障都能夠切換,像上邊的三個場景,都沒有部署NAT只是單純的為了實驗PBR工具的使用方式,在一些現(xiàn)網(wǎng)有可能顧客就有這種需求,一臺出口路由器上聯(lián)兩家ISP運營商,然后不同的VLAN用戶走不同的ISP運營商
NAT我們做PAT,就是端口擴展的NAT模式,不做動態(tài)和靜態(tài)的。
PBR:通過PBR實現(xiàn)VLAN10走ISP-1,VLAN20走ISP-2進行數(shù)據(jù)分流
我們要結(jié)合Route-map和NAT去最終實現(xiàn)上述要求,不過現(xiàn)網(wǎng)一般有負載均衡的設(shè)備,也可以更簡單的達到這種需求,我們可以看下在cisco的IOS平臺如何通過Route-map+NAT的結(jié)合實現(xiàn)
路由部分:出口路由器必須有默認路由,我們寫一個靜態(tài)和一個浮動默認路由
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.12.2靜態(tài)默認路由指電信運營商
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.13.3 5浮動的指教育網(wǎng)
R1(config)#ip route 192.168.1.0 255.255.255.0 192.168.14.4回城路由,要能回到VLAN10
R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.14.4回城路由,要能回到VLAN20
PBR部分:就不再贅述,上邊已經(jīng)舉例3個場景了,PBR實現(xiàn)數(shù)據(jù)分流
R1(config-route-map)#match ip address vlan10
R1(config-route-map)#set ip next-hop 192.168.12.2
R1(config-route-map)#exit
R1(config)#route-map PBR permit 20
R1(config-route-map)#match ip address vlan20
R1(config-route-map)#set ip next-hop 192.168.13.3
R1(config-route-map)#exit
R1(config)#interface fastEthernet 0/0最后一定在接口或者全局進行調(diào)用PBR
R1(config-if)#ip policy route-map PBR
NAT部分:結(jié)合Route-map去實現(xiàn)
R1(config)#interface serial 2/0定義接口的outside和inside模式
R1(config-if)#ip nat outside外是outside模式
R1(config-route-map)#exit
R1(congig)#interface serial 2/1
R1(config-if)#ip nat outside
R1(config)#interface range fastEthernet 1/0
R1(config-if-range)#ip nat inside內(nèi)是inside模式
R1(config-route-map)#exit
定義4個Route-map,定義4給nat的實例,一一相互對應(yīng)進行調(diào)用,我用序號進行標識,屬于一個序列就是一組配置,一組配置指:Router-map+NAT的一組
①R1(config)#route-map nat1 permit 10定義第一個nat
R1(config-route-map)#match ip address vlan10匹配VLAN10的數(shù)據(jù)
R1(config-route-map)#match interface serial 2/0匹配從該接口經(jīng)過的數(shù)據(jù),在最前邊Route-map中有提到,多條match語句時,使用邏輯and運算(且運算)
R1(config-route-map)#exit
②R1(config)#route-map nat2 permit 10
R1(config-route-map)#match ip address vlan10
R1(config-route-map)#match interface serial 2/1
R1(config-route-map)#exit
③R1(config)#route-map nat3 permit 10
R1(config-route-map)#match ip address vlan20
R1(config-route-map)#match interface serial 2/1
R1(config-route-map)#exit
④R1(config)#route-map nat4 permit 10
R1(config-route-map)#match ip address vlan20
R1(config-route-map)#match interface serial 2/0
R1(config-route-map)#exit
①R1(config)#ip nat inside source route-map nat1 interface serial 2/0 overload? ????配置NAT調(diào)用Route-map所匹配的數(shù)據(jù),這個和最上邊的Route-map nat1所對應(yīng) ?? 下邊的同理一 一對應(yīng)
②R1(config)#ip nat inside source route-map nat2 interface serial 2/1 overload
③R1(config)#ip nat inside source route-map nat3 interface serial 2/1 overload
④R1(config)#ip nat inside source route-map nat4 interface serial 2/0 overload
總結(jié):
首先這里出口寫了兩條默認路由,首選默認路由是ISP-2,浮動默認路由是ISP-3,所以沒有被PBR命中的數(shù)據(jù)都會查找路由表進行轉(zhuǎn)發(fā),也就是走默認路由出去,也就是從ISP-2出去。
假設(shè)VLAN10用戶出去,首先會被PBR直接丟到192.168.12.2這個下一跳地址,如果這個下一跳可達(同時說明首選的默認路由條目是存在的),那么nat1這個route-map就是有效的,nat1這個route-map有效那么對應(yīng)的NAT條目就是有效的,對應(yīng)的NAT條目有效,就會從這個條目所指定的接口轉(zhuǎn)換出去。
如果這個下一跳不可達了,數(shù)據(jù)不會被丟棄,而是查找路由表,既然這個下一跳不可達了,那么先前的默認路由也就不可達了,對應(yīng)的就會從路由表中消失,然后浮動默認路由出現(xiàn),下一跳是ISP-3,數(shù)據(jù)就會根據(jù)這個默認路由的下一跳從S2/1接口轉(zhuǎn)發(fā)出去,然后被nat2這個NAT條目匹配中,用這個NAT條目的S2/1接口進行轉(zhuǎn)換。
那么如果是VLAN20用戶出去,首選默認路由是ISP-2,因為我們有PBR的存在,路由器是先調(diào)用PBR的,我門丟的下一跳地址是直連,所以正常情況下VLAN20的數(shù)據(jù)是一定能夠丟給ISP-3的,既然能夠丟給ISP-3,那就是說明VLAN20數(shù)據(jù)一定是從S2/1接口轉(zhuǎn)發(fā)的,那么又是VLAN20的數(shù)據(jù),又是S2/1轉(zhuǎn)發(fā)的,那么就會被 nat3這個route-map命中,既然這個route-map nat3命中了,那么對應(yīng)的 nat3這個NAT條目就會生效,那就會使用這個NAT條目的接口進行轉(zhuǎn)換。
假設(shè)ISP-3這個下一跳不可達了,數(shù)據(jù)不會被丟棄,而是查找路由表,因為我們有默認路由,此時默認路由是ISP-2這個下一跳,ISP-2對應(yīng)的出接口是S2/0。此時又是VLAN20的數(shù)據(jù),又是從S2/0接口轉(zhuǎn)發(fā)的,那么nat3這個route-map就是有效的,nat3這個route-map有效那么對應(yīng)的nat3 的NAT條目就是有效的,對應(yīng)的NAT條目有效,就會從這個條目所指定的接口S2/0轉(zhuǎn)換出去。
Sla部分:關(guān)于sla命令,百度百科的不準確,它們的命令有些多出的,甚至命令都打不上去,應(yīng)該是和IOS版本有關(guān)系,你們按照這個模板就可以了,我把我的IOS版本號寫上:C3660-JK9O3S-M, Version 12.4(15)T5
現(xiàn)在都EVE模擬器,12.4版本是老版本,EVE模擬器的IOS版本都是最新的15.0以后的,15.0的sla的配置我沒嘗試,但是只有一條命令和12.4版本的不一樣我寫出來:
R1(config)#track 10 ip route 192.168.12.2 192.168.12.1 reachability ?GNS3模擬器的12.4版本用這條命令進行關(guān)聯(lián)track實例
R1 (config)#track 10 ip sla 10 reachability ? 15.0版本用這條命令關(guān)聯(lián)track實例
R1 (config)#ip sla 10創(chuàng)建sla 10,檢測ISP-2運營商現(xiàn)路
Switch(config-ip-sla)#icmp-echo 192.168.12.2 source-ip 192.168.12.1用源192.168.12.1檢測對端192.168.12.2地址
R1 (config-ip-sla-echo)#frequency 5檢測超時時間5S
R1 (config-ip-sla-echo)#exit
R1(config)#ip sla schedule 10 life forever start-time now設(shè)置立即生效sla命令
R1(config)#track 10 ip route 192.168.12.2 192.168.12.1 reachability關(guān)聯(lián)到一個Track實例,
R1 (config)#route-map PBR permit 10
R1(config-route-map)#set ip next-hop verify-availability 192.168.12.2 10 track 10
在PBR中調(diào)用,下邊一共兩個10,第一個10是sla的10,第二個10是track實例的10
R1 (config)#ip sla 20創(chuàng)建sla 20,檢測ISP-3運營商線路
R1 (config-ip-sla)#icmp-echo 192.168.13.3 source-ip 192.168.13.1用源192.168.13.1檢測對端192.168.13.3地址
R1 (config-ip-sla-echo)#frequency 5檢測超時時間5S
R1 (config-ip-sla-echo)#exit
R1 (config)#ip sla schedule 20 life forever start-time now設(shè)置立即生效sla命令
R1 (config)#track 20 ip route 192.168.13.3 192.168.13.1 reachability關(guān)聯(lián)到一個Track實例
R1(config-track)#exit
R1 (config)#route-map PBR permit 20
R1(config-route-map)#set ip next-hop verify-availability 192.168.13.3 20 track 20
在PBR中調(diào)用,下邊一共兩個20,第一個20是sla的20,第二個20是track實例的20
總結(jié):這里的LSA就是上邊的總結(jié),怎么知道下一跳是不是可達的檢測。
把整個PBR寫完,發(fā)現(xiàn)還是漏了一個點就是PBR的set動作,我上邊提到它是優(yōu)于傳統(tǒng)路由表的,通過整篇文章應(yīng)該也能理解這句話。
漏講的就是我們可以通過在set動作后加上default關(guān)鍵字,讓set動作它不優(yōu)于路由表。就是先查詢路由表,看有沒有去往目的的明細,有走路由表,沒有執(zhí)行set動作
比如接場景一的實驗吧,其實配置大同小異只是結(jié)果稍微有點不同,我把配置還是全部粘貼一遍吧~
需求:VLAN10用戶去往100.100.100.100/24目的強制丟給R2,VLAN20強制丟給R3路由器
具體配置命令:
R1(config)#ip access-list standard vlan10
R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255
R1(config)#ip access-list standard vlan20
R1(config-std-nacl)#permit 192.168.2.0 0.0.0.255
首先用ACL匹配感興趣數(shù)據(jù)流,上邊命令分別用兩個ACL去匹配VLAN10和VLAN20的數(shù)據(jù)
R1(config)#route-map PBR permit 10??????????????? 創(chuàng)建Route-map,配置PBR
R1(config-route-map)#match ip address vlan10????? match VLAN10的ACL
R1(config-route-map)#set ip defaultnext-hop 192.168.12.2 ?? 執(zhí)行set動作將數(shù)據(jù)丟給下一跳,需要注意這個下一跳一定是我直連的下一跳。注意加上了default關(guān)鍵字
R1(config-route-map)#exit
R1(config)#route-map PBR permit 20??????????????? 在 PBR 的Route-map里邊創(chuàng)建第二個序列號
R1(config-route-map)#match ip address vlan20????? match VLAN20的ACL
R1(config-route-map)#set ip next-hop 192.168.13.3 ?? 執(zhí)行set動作將數(shù)據(jù)丟給下一跳,需要注意這個下一跳一定是我直連的下一跳
R1(config-route-map)#exit
R1(config)#interface fastEthernet 1/0????????????? 在R1路由器的f1/0接口進行調(diào)用
R1(config-if)#ip policy route-map PBR????? ????????這條命令是調(diào)用PBR,接口調(diào)用PBR,使得剛配置的PBR生效
R1#show ip route
C??? 192.168.15.0/24 is directly connected, FastEthernet2/0
C??? 192.168.16.0/24 is directly connected, FastEthernet1/0
S??? 192.168.1.0/24 [1/0] via 192.168.16.6
S??? 192.168.2.0/24 [1/0] via 192.168.16.6
S100.100.100.0/24[1/0] via 192.168.13.3???????????????????有去往100.100.100.100/24的明細路由,下一跳是R3路由器
S*?? 0.0.0.0/0 [1/0] via 192.168.12.2
PC-4#traceroute 100.100.100.100???????????????????? VLAN10用戶
Type escape sequence to abort.
Tracing the route to 100.100.100.100
1 192.168.1.254 80 msec 52 msec 16 msec
2 192.168.16.1 76 msec 48 msec 44 msec
3 192.168.13.3 108 msec 72 msec 44 msec最后一跳路由是192.168.13.3剛好是R3
PC-5#traceroute 100.100.100.100????????????????????????????? VLAN20用戶
Type escape sequence to abort.
Tracing the route to 100.100.100.100
1 192.168.2.254 88 msec 60 msec 20 msec
2 192.168.16.1 60 msec 48 msec 44 msec
3 192.168.13.3 84 msec 64 msec 72 msec最后一跳路由是192.168.13.3剛好是R3
總結(jié):VLAN10用戶的數(shù)據(jù)包到了路由器接口,被match匹配住,執(zhí)行set動作,但是我們加了default關(guān)鍵字,default關(guān)鍵字能夠讓set動作次優(yōu)于路由表。這個時候R2先去查找路由表,發(fā)現(xiàn)去往100.100.100.100/24有一條明細路由,這個時候R2就會按照這個明細路由進行轉(zhuǎn)發(fā),數(shù)據(jù)包到了R3路由器
仝越~
總結(jié)
以上是生活随笔為你收集整理的pbr 多出口_PBR+多出口NAT+IP SLA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 父子组建传值_父子组件及兄弟组件传值de
- 下一篇: 拷贝依赖_还不懂零拷贝(Zero-Cop