雙向多點路由重分布--如何防止路由環路以及次優路徑
實驗要求:
- R1上有一個環回口,1.1.1.0/24,通告在ISIS中。 R5上有一條引入的外部路由5.5.5.0/24.
- 在R2和R3上進行雙向重分布
- 要求采用防環和防次優路徑的措施,以保障在網絡不出現環路和次優路徑。
實驗步驟:
分別在五臺路由器上配置好IGP,並在R5上引入直連的5.5.5.0的路由,cost類型為2,metric值為5。 在R2 和 R3上進行重分布。
一、 解決環路問題:通過路由標記來完成。
現在查看2.2.2.0的路由表。R4上顯示下一跳為R3,R3顯示下一跳為R1,R1指向R2,R2指向R4,這樣就產生了環路。為什麽會產生環路:
站在R4的立場,首先它從R5學習到了ASE的路由,類型為E2,Cost為5,外部路由的優先級是150. 這條路由經過R2和R3會傳遞到ISIS區域,再從ISIS傳遞回到OSPF區域,從ISIS傳遞回來的路由,優先級150,類型為E2,Cost為1。所以它會優選從ISIS傳遞過來的5.5.5.0的路由。
- 一個是使用route-policy匹配對應協議產生的路由,當OSPF重分發到ISIS時,只允許將始發為OSPF的路由發布到OSPF。當ISIS重分發到OSPF時,只允許將始發為ISIS的路由。
- 另一個方法是使用TAG,在R2和R3上進行重分發時,對路由做上TAG。具體做法:A. 在R2上將OSPF重分發到ISIS時,打上TAG10 B.在R3上將ISIS重分布到OSPF時,打上TAG15 ,並且拒絕TAG為10的流量回流。 C. 在R2上拒絕將TAG為15的流量重分發到ISIS中。 接著反向再來一圈TAG。 TAG的最終做為:在R2和R3上,將OSPF引入到ISIS時,拒絕TAG為15的流量;允許其它流量,並將流量打上TAG10. 將ISIS引入OSPF時,拒絕TAG為10的流量;允許其它流量 ,將將流量打上TAG15。 這樣,為流量打上TAG就可以防止環路的產生了。
============================================================================ R2和R3上的TAG配置: ospf 110 router-id 2.2.2.2 import-route isis 1 route-policy isistoospf //在引入ISIS路由到OSPF中時調用Policy
route-policy isistoospf deny node 10
if-match tag 10 //將打上了TAG10的路由拒絕,不能重分布到OSPF中
route-policy isistoospf permit node 20
apply tag 15 //重分布到OSPF中的路由,打上TAG15
=============================================================================
isis 1
cost-style wide // 使用Wide類型的度量值,才能識別TAG
network-entity 49.0123.0000.0000.2222.00
import-route ospf 110 route-policy ospftoisis
route-policy ospftoisis deny node 10 // 將OSPF重分布到ISIS時,拒絕TAG為15的路由
if-match tag 15
route-policy ospftoisis permit node 20
apply tag 10 //OSPF重分布到ISIS時,將路由打上TAG10
=============================================================================
在R2和R3上做了TAG以後,現在就沒有環路了。 R3到5.5.5.0指向R1, R1指向R2,R2指向R4,R4指向R5. 現在沒有環路了。
<R3>display ip routing-table 5.5.5.0
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
5.5.5.0/24 ISIS-L2 15 20 D 13.1.1.1 GigabitEthernet0/0/1
<R1>display ip routing-table 5.5.5.0
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
5.5.5.0/24 ISIS-L2 15 10 D 12.1.1.2 GigabitEthernet0/0/0
<R2>display ip routing-table 5.5.5.0
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
5.5.5.0/24 O_ASE 150 5 D 24.1.1.4 GigabitEthernet0/0/1
<R4>display ip routing-table 5.5.5.0
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
5.5.5.0/24 O_ASE 150 5 D 45.1.1.5 GigabitEthernet0/0/2
二、 這個時候,再來看看是否存在次優路由。還是5.5.5.0的路由。上面實驗中,在R3上去往5.5.5.0的路由,下一跳指向R1,按照正常情況下來看,5.5.5.0的路由是R4傳遞過來的,下一跳要指向R4才是最優的。為什麽R3上的5.5.5.0的路由指向了R1,同樣還是因為從R1的ISIS協議傳遞過來的協議優先值要低。
下一跳 管理距離 Cost 優選
下一跳 管理距離 Cost 優選
R1 15 20 √
R4 150 5
那我們怎麽來解決次優路徑的問題呢,其實也有兩種辦法:
1. 可以使用fileter-policy在入方向過濾路由,在R2和R3的協議進程下,使用fileter過濾從ISIS學習到的2.2.2.0的路由。
2. 可以針對這條路由修改其協議優先級的值大於從OSPF協議學習到的優先級的值。那麽路由器會優選從協議優先級小的路由協議學習到的路由。需要在R2和R3上都完成操作。
=============================================================================
ip ip-prefix 55 index 10 permit 5.5.5.0 24 #
route-policy pref permit node 10
if-match ip-prefix 55
apply preference 188
isis 1
preference route-policy pref
改完了協議優先級的值以後,就解決了次優路徑的問題。到此為止,問題得到解決。總結一下:
1. 多點雙向重分布,可能產生環路問題,環路可以通過對路由打標記來實現路由過濾,這種方法可以解決環路問題。
2. 對於因為協議優先級而帶來的次優路徑問題,可以手動針對特定的路由修改優先級。
3. 對於因為Cost而導致的問題,也可以修改Cost。
4. 路由器選路,如果有多條路徑,不同路由協議之間通過比較協議優先級,協議優先級值小的協議優先;對於從同種路由協議學習到的路由,比較Cost值,值小的優先
5. 對於ISIS路由協議,如果需識別TAG,它的cost樣式需要為wide。
雙向多點路由重分布--如何防止路由環路以及次優路徑