Route-map
什么是route-map,
怎么說呢?你說它屬於什么呢?屬於路由策略?還是屬於策略路由?
其實都不算,我個人理解,它只算是一個工具,上面兩者都能用到
但是這個工具吧,用着還挺爽,所涉及到的范圍還挺多的呢?~
IGP協議,BGP協議,....
Distribute,redistribute,等等,都能看到它的身影
初識route-map
1、Route-map中的語句相當於acl的各行
2、route-map的序列號默認為10,不會自動遞增,所以需要手動的寫序號
3、route-map的行為默認是permit
4、match——匹配條件,set——執行動作
在match語句中,會有不同的表現形式
1 match X1,X2,寫在一行,用,隔開時,是邏輯上的“或”關系
2 match X1
Match X2 寫在兩行時,用回車隔開,是邏輯上的“且”關系
“或”“且”想必不用多說了,很好理解 ,或,多個條件滿足一個則OK
且,就是都得滿足.
Route-map的運行方式
PS:在route-map中,和ACL是一樣的,最后都有一條deny 的動作,
所以,我們在部署route-map時,也要分情況的來配置一條permit
當然,是分情況哦~什么情況呢?
比如說你在做路由重分布時,只想提取某些條目,那勢必要拒絕其它的
而如果在后期的BGP中,針對某些條目去施加特定屬性時,就要去話茬其它沒有被策略的,以保證路由條目的正常傳遞,
這一點在后期的各個小實驗中會有明顯的體現,先要清楚這個事兒~
實例1
如圖所示,R1-R2運行RIP,R2-R3運行OSPF,在R2上進行雙向重發布,
可以先來分析一下,
OSPF重分布到RIP ,需要寫跳數,那請問這兩個條目到達R1時的跳數是否一致?
RIP進到OSPF時,可以去修改metric-type,R3上看到的類型是否一致?
答案是肯定的,因為在重分布的時候並沒有進行任何的修改,況且單獨的重分布也沒有辦法進行設置。
而我現在的需求就是這樣,OSPF進入RIP的兩條,192.168.1.0為2跳,192.168.2.0為5跳
RIP進入OSPF,172.16.1.0為OE1,172.16.2.0為OE2
這時候就要請出我們的主角route-map了,
思路
1 使用ACL來匹配路由條目,(使用permit)
2 定義route-map條目,匹配/不匹配
3 定義match條件
4 定義動作
5 是否考慮允許其它(最后一條有deny)
6 調用route-map
PS:還記得之前的distribute-list嗎?
Distribute-list + acl,是ACL起到決策作用(deny/permit)
Route-map+ ACL 是route-map起到了決策作用,(所以通常使用route-map時,ACL都是permit去匹配)這一點千萬要記住
在哪里做呢?肯定是在中間那台執行了重分布設備上
OSPF注入到RIP中,設置不同的metric跳數
先查看一下在路由表中的具體前綴,必須按照這里的格式寫才OK
由於OSPF的網絡中,默認會將 loopback接口顯示為一個終端,即32位的。
以及在沒有配置策略之前,R1上看到的兩個條目的metric值
可以看到,都是一樣的。
具體部署
R2(config)#access-list 3 per 192.168.1.1 0.0.0.0 //匹配網段
R2(config)#access-list 4 per 192.168.2.1 0.0.0.0
R2(config)#route-map ospf 10 //定義名字ospf的route-map,序號10
R2(config-route-map)#match ip add 3 //匹配地址3(即ACL3)
R2(config-route-map)#set metric 2 //執行動作,metric為2
R2(config-route-map)#exit
R2(config)#route-map ospf 20
R2(config-route-map)#ma ip add 4
R2(config-route-map)#set me 5
R2(config-route-map)#exit
R2(config)#route-map ospf 30 //最后的route-map,匹配所有,即放行
R2(config-route-map)#exit
R2(config)#router rip
R2(config-router)#redistribute ospf 1 route-map ospf //重分布時調用route-map
最后再來看一下R1上的變化吧
一個變成了2跳,一個變成了5跳,成功
再來看另外一側,RIP注入OSPF后顯示不同metric-type
默認情況下都會是OE2,可以手動調整為OE1
但我們要求一樣一個,
現在在R3上看是都一樣的
到R2上設置route-map
R2(config)#access-list 1 per 172.16.1.0 0.0.0.255
R2(config)#access-list 2 per 172.16.2.0 0.0.0.255
R2(config-router)#route-map rip 10
R2(config-route-map)#ma ip add 1
R2(config-route-map)#set metric-type type-1
R2(config-route-map)#exit
R2(config)#route-map rip 20
R2(config-route-map)#ma ip add 2
R2(config-route-map)#set metric-type type-2
R2(config)#route-map rip 30
R2(config-router)#redistribute rip subnets route-map rip
OK
再到R3上去看一下
看到了嗎?這就是效果。
那有可能你會問,這么改的意義何在呢?兩條路由本來就不一樣,何必要這么改?
通過部署route-map路由策略,可以使收到相同路徑的路由(負載均衡)時,進行策略部署,實現干預選路。從而達到我們的預期效果。
以上是一個簡單的實例,可以很直觀的看到route-map的原理以及部署過程,
在route-map中可以匹配和設置的項很多
Match匹配項
set動作
你會發現里面有好多都是關於BGP的,是的,沒錯,當到了后面的BGP時,會瘋狂的使用route-map來部署策略。
所以,如果route-map學不好,那后面的BGP你也就學的那么回事兒吧!
---------------------------------------
CCIE成長之路 --- 梅利