1. 程式人生 > >雙向多點路由重分布--如何防止路由環路以及次優路徑

雙向多點路由重分布--如何防止路由環路以及次優路徑

efi 2.0 有環 bit 怎麽 大於 進行 pro 5.5

拓撲圖
技術分享圖片

實驗要求:

  1. R1上有一個環回口,1.1.1.0/24,通告在ISIS中。 R5上有一條引入的外部路由5.5.5.0/24.
  2. 在R2和R3上進行雙向重分布
  3. 要求采用防環和防次優路徑的措施,以保障在網絡不出現環路和次優路徑。

實驗步驟:
分別在五臺路由器上配置好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的路由。

怎麽解決這個問題呢?有兩個思路:

  1. 一個是使用route-policy匹配對應協議產生的路由,當OSPF重分發到ISIS時,只允許將始發為OSPF的路由發布到OSPF。當ISIS重分發到OSPF時,只允許將始發為ISIS的路由。
  2. 另一個方法是使用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

is-level level-2
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。

雙向多點路由重分布--如何防止路由環路以及次優路徑