一、路由過濾實現方式
1.使用distribute-list過濾特定路由
2.使用distance命令來控制路由的AD
路由過濾器的用途:把一個路由選擇域分割成多個子域,在連接不同子域的路由器上過濾建立路由防火墻過濾器是基于訪問列表的基礎上用distribute-list acl-no in/out 接口/路由協議NO.是被應用的訪問列表編號在“路由協議”關鍵字中,僅有out是有意義的由于鏈路狀態協議不從自身路由表中通告路由,所以在“接口”關鍵字中用out是沒有意義的要過濾什么進程,就把過濾器放在什么進程下例:在OSPF 1下過濾RIP,則在OSPF進程下用distribute-list 10 in rip在OSPF 1下過濾OSPF 1,這在OSPF進程中用distribute-list 10 in
要在一個本來運行一種路由協議的網絡中運用另一種路由協議時,為了防止出錯和路由黑洞,如果新協議的管理距離小于舊協議,在新路由進程中用distance增大新協議的管理距離,等到網絡中的每個路由器上新協議都配置好后再改回去,再刪除舊協議,最后用clear ip route * 清空路由表,讓其重新學習
二、Route MapS
route map和ACL很類似,它可以用于路由的再發布和策略路由,還經常使用在BGP中.策略路由(policy route)實際上是復雜的靜態路由,靜態路由是基于數據包的目標地址并轉發到指定的下一跳路由器,策略路由還利用和擴展IP ACL鏈接,這樣就可以提供更多功能的過濾和分類。
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 10.1.2.3
在這里,為了執行set語句,每個match語句中都必須進行匹配