轉載自紅茶三杯博客:http://blog.sina.com.cn/s/blog_5ec353710102vtfy.html
當OSPF域內某台ABR(區域邊界路由器)設備學習到了普通區域傳遞過來的大量的路由,而這些路由條目又是連續的,可以匯總成幾條子網掩碼更大的路由條目的時候,就可以考慮在這台ABR設備上做路由匯總,以便這些路由條目經過骨干區域(area 0)傳遞到其他普通區域的時候只通告這些匯總的路由,減少OSPF域內的路由數量,節約設備資源。
2. OSPF路由匯總案例(一)
網絡拓撲如上圖所示。R1、R2、R3、R4及R5運行OSPF,OSPF區域的規划如圖。

在R3(ABR)上對Area2內的路由執行匯總:
2.2 在ASBR上執行路由匯總
在R1上對其自己重發布進OSPF的路由執行匯總:
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也能執行路由匯總:
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。這就出現了環路。
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下放的
