OSPF路由匯總


轉載自紅茶三杯博客:http://blog.sina.com.cn/s/blog_5ec353710102vtfy.html

1. 關於路由匯總
  路由匯總,又被稱為路由聚合(Route Aggregation or Route Summarization),指的是把一組明細路由匯聚成一條匯總路由的操作。
  路由匯總是一種重要的思想,在大型的項目中是必須考慮的一個重點事項。隨着網絡的規模越來越大,網絡中的設備所需維護的路由表項也就會越來越多,路由表的規模也就會逐漸變大,而路由表是需要占用設備的內存空間的,路由的查詢也是需要占用設備的資源的。因此我們需要考慮(尤其在一些大型的網絡中)在保證網絡中路由暢通的同時,減小路由表的規模。在不使用路由匯總的情況下,每個鏈路的LSA會發送到OSPF骨干一級其他區域中,這就造成了不必要的網絡流量和路由開銷。但假如使用路由匯總,只有匯總的路由會傳播到骨干區域,避免了大量LSA占用帶寬,CPU以及內存資源。即便鏈路出現了故障,這種變化也不會傳播到骨干網絡中,使得骨干網絡更加穩定。
  幾乎所有的路由協議都支持路由匯總。RIP、EIGRP等協議支持自動及手工路由匯總,而 OSPF只支持手工路由匯總
   OSPF有兩種情形的手工自動匯總:域間匯總在ABR上進行,域外匯總需在ASBR上進行。

 

OSPF匯總的使用場景
  當OSPF域內某台ASBR(自治域邊界路由器)設備重分布了大量的路由進入OSPF域內,而這些路由條目又是連續的,可以匯總成幾條子網掩碼更大的路由條目的時候,就可以考慮在ASBR設備上做路由匯總,以便向OSPF域內傳遞的時候只通告這些匯總的路由,減少OSPF域內的路由數量,節約設備資源。
       當OSPF域內某台ABR(區域邊界路由器)設備學習到了普通區域傳遞過來的大量的路由,而這些路由條目又是連續的,可以匯總成幾條子網掩碼更大的路由條目的時候,就可以考慮在這台ABR設備上做路由匯總,以便這些路由條目經過骨干區域(area 0)傳遞到其他普通區域的時候只通告這些匯總的路由,減少OSPF域內的路由數量,節約設備資源。

2. OSPF路由匯總案例(一)

   

  網絡拓撲如上圖所示。R1、R2、R3、R4及R5運行OSPF,OSPF區域的規划如圖。

  R5將三個直連網段(172.16.1.0/24、172.16.2.0/24及172.16.3.0/24)都network到OSPF。
  R1將三個直連網段(10.1.1.0/24、10.1.2.0/24及10.1.3.0/24)都重發布到OSPF。
  完成上述配置后,所有的路由器應該都能學習到全網的路由。
  2.1 在ABR上執行路由匯總

   

   在R3(ABR)上對Area2內的路由執行匯總:

  R3(config)# router ospf 1
  R3(config-router)# area 2 range 172.16.0.0 255.255.0.0 cost ?
  注意,這種匯總方式(area range)只能在ABR上配置,而且只能對ABR直接連接的區域中的Intra-Area路由(區域內部路由)執行匯總。R3執行匯總后,R1及R2的路由表中將出現172.16.0.0/16的匯總路由,而不會再學習到明細路由。如此一來,R1及R2的路由表就精簡了,而且當它們需要訪問R5下掛的那三個網段時,可以通過這條匯總路由到達。
 
  要強點的是,如果不是在R3,而是在R2上對R5下掛的網段進行匯總,則無法實現。因此此時R3作為ABR,已經將描述這些網段的3類LSA注入到了Area0,而在R2上,是無法對這些3類LSA進行路由匯總的。

 

  2.2 在ASBR上執行路由匯總

   

   在R1上對其自己重發布進OSPF的路由執行匯總:

  router ospf 1
    summary-address 10.1.0.0 255.255.0.0
  完成上述配置后,R2、R3、R4及R5都會學習到一條10.1.0.0/16的匯總路由(使用Type-5 LSA描述),而不會再學習到10.1.1.0/24、10.1.2.0/24以及10.1.3.0/24這三條明細路由。

  2.3 在NSSA的ABR上執行路由匯總

   

   將網絡做一點小小的變更,Area1被配置為NSSA。R1將三條直連路由引入NSSA,R2會學習到這三條外部路由(Type-7 LSA),並執行Type-7 LSA轉Type-5 LSA的動作,因此其實R2既是ABR又是ASBR,這些Type-5 LSA是由其產生的,那么R2也能執行路由匯總:

  router ospf 1
    summary-address 10.1.0.0 255.255.0.0

3. OSPF匯總路由的防環設計

   

   在上圖所示的場景中,R3將R5下掛的三個子網匯總成172.16.0.0/16並向R2通告這條匯總路由。R1則下發一條OSPF默認路由到整個OSPF域。此時R5下掛的某個子網里有PC中毒,瘋狂掃描一個並不存在的子網的IP地址(如172.16.222.0/24子網),這些數據包被發給網關R5,R5通過路由表查詢,最終將這些報文依照默認路由進行轉發,也就是發送給R4,而R4也一樣,將報文依照默認路由轉發給R3,R3再轉給R2,而R2由於已經收到R3傳遞過來的匯總路由(172.16.0.0/16),因此經過路由表查詢后,數據包的目的地址匹配上了這條匯總路由,於是它又把這些數據包丟回去給R3,數據包的目的地址在R3處匹配了默認路由,又被丟回R2,如此反復,直到報文的TTL遞減為0。這就出現了環路。

  OSPF為了解決這個問題,在執行路由匯總時,會在本地自動產生一條指向Null0的路由。例如在R3處執行了路由匯總,則它會自動產生一條指向Null0的路由:
  O       172.16.0.0/16 is a summary, 00:00:02, Null0
  這樣一來當再有類似事件發生,數據包將在R3這就被丟棄(匹配Null0路由)。
  實際上,當執行路由匯總時,自動在本地路由表產生一條指向Null0的路由是一種非常常規的防環手段,許多動態路由協議都具備這個特征。

 4. OSPF路由匯總案例(二)

  域間匯總,在ABR上進行

   

  

  R1配置

  router ospf 100

    router-id 1.1.1.1

    network 1.1.1.1 0.0.0.0 area 0

    network 12.1.1.0 .0.0.0.255 area 0

  R2配置

  router ospf 100

    router-id 2.2.2.2

    network 2.2.2.2 0.0.0.0 area 0

    network 12.1.1.0 0.0.0.255 area 0

    network 23.1.1.0 0.0.0.255 area 1

    network 24.1.1.0 0.0.0.255 area 2

  R3配置

  router ospf 100

    router-id 3.3.3.3

    network 3.3.3.3 0.0.0.0 area 1

    network 192.168.20.1 0.0.0.255 area 1

    network 192.168.21.1 0.0.0.255 area 1

    network 192.168.22.1 0.0.0.255 area 1

    network 192.168.23.1 0.0.0.255 area 1

    network 23.1.1.0 0.0.0.255 area 1

  R4配置

  router ospf 100

    router-id 4.4.4.4

    network 4.4.4.4 0.0.0.0 area 2

    network 192.168.32.0 0.0.0.255 area 2

    network 192.168.33.0 0.0.0.255 area 2

    network 192.168.34.0 0.0.0.255 area 2

    network 192.168.35.0 0.0.0.255 area 2

    network 192.168.36.0 0.0.0.255 area 2

    network 192.168.37.0 0.0.0.255 area 2

    network 192.168.38.0 0.0.0.255 area 2

    network 192.168.39.0 0.0.0.255 area 2

    network 24.1.1.0 0.0.0.255 area 2

  show ip route 查看路由表可以看見,由於域間路由的傳播,R1上多達進20條路由,有R3宣告的4個。R4宣告的8個192.68網段的路由如果不進行匯總,會泛洪到全網,所以我們應該在Area 1和Area 2的ABR,也就是R2上進行匯總操作,具體操作如下:  

  R2(config)#router ospf 100 

    R2(config-router)#area 1 range 192.168.20.0 255.255.252.0
    R2(config-router)#area 2 range 192.168.32.0 255.255.248.0

  此時查看R1的路由表,發現

  O IA 192.168.20.0/22 [110/21] via 12.1.1.2

  O IA 192.168.32.0/21 [110/12] via 12.1.1.2

  可以看見,Area 1和Area 2上的192.168網段已經完成了匯總。這樣會節省很多資源,拓撲發生變化也不會影響Area 0的路由表。

  域外匯總,在ASBR上進行

  拓撲圖不變,但將Area 2變為EIGRP 

  R2更改配置

  router ospf 100

    no network 24.1.1.0 0.0.0.255 area 2

  router eigrp 90

    no auto-summary

    network 24.1.1.0 0.0.0.255

  R4更改配置

  no router ospf 100

  router eigrp 90

    no auto-summary

    network 24.1.1.0 0.0.0.255

    network 4.4.4.4 0.0.0.0

    network 192.168.32.0 0.0.0.255

    network 192.168.33.0 0.0.0.255

    network 192.168.34.0 0.0.0.255

    network 192.168.35.0 0.0.0.255

    network 192.168.36.0 0.0.0.255

    network 192.168.37.0 0.0.0.255

    network 192.168.38.0 0.0.0.255

    network 192.168.39.0 0.0.0.255

  之后在R2上進行雙向重分發

  router ospf 100

    redistribute eigrp 90 subnets

  router eigrp 90

    redistribute ospf 100 metric 1000 1 255 1 1500

  可以看見O E2標記的為外部的EIGRP路由,並沒有匯總。

  在R2上進行域間路由匯總

  router ospf 100

    summary-address 192.168.32.0 255.255.248.0

  然后查看R1的路由表

  O IA 192.168.20.0/22 [110/21] via 12.1.1.2

  O E2 192.168.32.0/21 [110/20] via 12.1.1.2

  已經完成匯總。

 5. 默認路由下放

  假如有一條通往Internet的默認路由,但如何將它下放到ospf域內的所有路由器呢,以免一台一台的配置?接下來還是按照上一個含EIGRP的拓撲圖來演示一下: 

  假定R2去往R4的就是默認路由,那么先在R2上面進行配置:

  R2

  ip route 0.0.0.0 0.0.0.0 f1/0

  在Area 0和Area 1進行下放默認路由.

  router ospf 100

     default-information originate

  R1的路由表:

  O*E2 0.0.0.0/0 [110/1] via 12.1.1.2

  O IA 192.168.20.0/22 [110/21] via 12.1.1.2

  O E2 192.168.32.0/21 [110/20] via 12.1.1.2

  R3的路由表:

  O*E2 0.0.0.0/0 [110/1] via 23.1.1.2

  O E2 192.168.32.0/21 [110/20] via 23.1.1.2

  我們都看到了O*E2的這條默認路由標記,因為下方的路由屬於靜態的路由,自然屬於OSPF域外路由,所以標記為O E2,單又是默認路由,所以就是O*E2。

  那如果我們沒有在R2上配置默認路由,但我們想讓其他設備將通往R2的路由設置為默認路由該如何進行配置呢? 
  首先我們將R2還原。此時R1的路由表的默認路由消失。

  然后我們在OSPF進程下進行下放默認路由:

  default-information originate always

  此時查看R1的路由表:

  O*E2 0.0.0.0/0 [110/1] via 12.1.1.2  

  綜上,共有兩種方式下放默認路由:

  在本地有默認路由的情況下
  R2(config-router)#default-information originate
  本地沒有默認路由的情況下,強行下放默認路由
  R2(config-router)#default-information originate always
  默認cost=1並且是一個由LSA-5下放的

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM