為響應OSPF RFC 1793 ,在Cisco IOS®軟體版本11.2中引入了開放最短路徑優先(OSPF)的需求電路選項。OSPF每10秒傳送一次hello,並每30分鐘刷新其鏈路狀態通告(LSA)。這些功能可維護鄰居關係,並確保鏈路狀態資料庫準確無誤,並且使用的頻寬遠遠少於路由資訊協定(RIP)和內部網關路由協定(IGRP)中的類似功能。 然而,即使這種流量量也不需要按需電路。使用OSPF需求電路選項會抑制hello和LSA刷新功能。OSPF可以建立請求鏈路以形成鄰接關係並執行初始資料庫同步,即使在請求電路的第2層關閉後,鄰接關係仍保持活動狀態。
Cisco IOS版本12.1(2)T為OSPF引入了泛洪減少功能。此功能旨在將具有大量LSA的OSPF域中定期刷新LSA所建立的流量降至最低。與OSPF需求電路功能不同,泛洪減少通常在租用線路上配置。泛洪減少使用與需求電路相同的技術來抑制週期性LSA刷新。此功能提交到IETF OSPF工作組進行標準化。
本文檔的讀者應瞭解以下主題:
OSPF
IGRP
RIP
本文中的資訊係根據以下軟體和硬體版本:
Cisco IOS版本12.1(2)T及更高版本
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
OSPF按需電路有兩個主要特徵,使其不同於常規電路。
抑制的週期hello
禁止定期LSA刷新
在鏈路上配置OSPF請求電路時,會抑制週期性的OSPF hello。僅在點對點和點對多點網路型別上抑制週期hello。在任何其它網路型別上,OSPF hello仍然通過介面傳送。
OSPF需求電路不會每30分鐘定期刷新LSA。當需求電路鏈路建立時,相鄰路由器之間會交換唯一的選項位(DC位)。如果兩個路由器成功協商DC位,它們會記下該位,並在LSA年齡中設定一個稱為DoNotAge位(DNA)的特定位。 DNA位是LS Age欄位中最重要的位。通過設定此位,LSA將停止老化,並且不會傳送定期更新。
在使用OSPF需求電路功能時,只有兩種情況會發生定期LSA刷新:
如果網路拓撲發生變化
如果OSPF域中有一個路由器無法瞭解需求電路
首先,停止LSA刷新沒有太多工作,因為路由器必須傳送新的LSA資訊來更新鄰居關於拓撲更改的資訊。
然而,有一種特殊的方法來處理第二種情況。區域邊界路由器(ABR)(下面網路圖中的路由器D)知道路由器C無法理解DNA LSA,因為它看到由路由器C發起的LSA的選項欄位中的DC位已清除。在這種情況下,路由器D(ABR)會通知有能力要求電路的路由器不要使用設定的DNA位發起LSA,因為有一個路由器不理解DNA位。
此網路圖表顯示一種情況,其中定期LSA刷新透過需求電路傳送:
ABR(路由器D)在骨幹中生成指示LSA,告知骨幹中的所有路由器不生成任何DNA LSA。當路由器A(另一個ABR)看到此指示LSA時,它會將指示LSA建立到其他區域,不包括主幹和任何末節或非末節區域(NSSA)區域。路由器D的此指示LSA如下所示。指示LSA是第4類彙總LSA,其中鏈路狀態ID是ABR本身,而不是自治系統邊界路由器(ASBR)。 換句話說,鏈路狀態ID和通告路由器欄位相同,如下所示:
RouterD# show ip ospf database asbr-summary Adv Router is not-reachable LS age: 971 Options: (No TOS-capability, No DC) LS Type: Summary Links(AS Boundary Router) Link State ID: 141.108.1.129 (AS Boundary Router address) Advertising Router: 141.108.1.129 LS Seq Number: 80000004 Checksum: 0xA287 Length: 28 Network Mask: /0 TOS: 0 Metric: 16777215
指示LSA的度量設定為無窮大。鏈路狀態ID和通告路由器欄位始終是發出指示LSA的ABR的路由器ID。在上面的網路圖中,路由器A和B之間的鏈路配置為請求電路,但由於區域1中存在無法理解DNA LSA的路由器,因此區域1中將沒有任何DNA LSA。因此,在區域1中發起的LSA定期刷新將通過請求電路傳送。
只有兩種情況會導致OSPF ABR生成指示LSA:
網路中有一個運行IOS 11.2或更低版本的路由器。
網路中有一個不支援需求電路的非Cisco路由器。
將區域2配置為末節或NSSA區域。這可防止路由器A將路由器D發起的指示LSA傳送到區域2,因為區域2是末節區域,而作為第4類彙總LSA的指示LSA無法泛洪到末節區域。現在,由於區域2沒有看到任何指示LSA,它將繼續在區域2內生成DNA LSA,並且路由器A和B之間的鏈路不會啟動,因為定期的LSA刷新被抑制。
Cisco建議在非主幹區域中配置OSPF需求電路,並將這些區域設定為NSSA、末節或完全末節(最好選擇後者)。 這是為了最小化從其它區域注入到包含需求電路的區域中的資訊。這樣,您就可以將更改範圍降至最低,從而啟動OSPF需求電路。請參閱為什麼OSPF需求電路不斷啟動鏈路,瞭解涉及OSPF需求電路功能的故障排除場景。
如果您有類似於上述情況的情況,且需求電路也是主幹的一部分,則無法使用此解決方案,因為主幹區域不能配置為末節或NSSA。
本節中的配置任務示例顯示了建立需求電路所需的配置。只有一方需要將demand circuit命令置於介面之下,因為如果另一方能夠理解需求電路,它將在hello資料包中自動協商此功能。如果不能理解需求電路,則忽略此選項。
RouterA# show run interface Serial0 interface Serial 0 encapsulation frame-relay ip address 141.108.1.1 255.255.255.0 ip ospf network-type point-to-mutipoint ip ospf demand-circuit !
注意:可以在任何網路型別上使用需求電路,儘管僅在抑制呼叫的點對點或點對多點網路型別上使用。
OSPF泛洪減少功能對需求電路進行了輕微修改,旨在減少鏈路上因定期LSA刷新而產生的額外流量。它使用相同的機制來消除定期LSA刷新的需要。一般情況下,路由器不會立即連線到鏈路,並且無法識別它是否配置為需求電路或泛洪減少鏈路 — 這兩類鏈路的資料庫表示是相同的。
洪泛減少電路與需求電路的主要區別在於,前者僅抑制定期LSA刷新;它不會抑制週期性的hello資料包。因此,泛洪減少功能不會影響相鄰路由器關閉的檢測。
泛洪減少鏈路的限制與需求電路相同。特別是,該區域中的所有路由器都必須支援需求電路功能,才能有效減少泛洪。需求電路和泛洪減少鏈路的故障排除技術也很常見。
此示例顯示OSPF泛洪減少功能配置:
interface POS 0/0 ip address 192.168.122.1 255.255.255.0 ip ospf flood-reduction
如上所述,路由器的介面POS 0/0配置為減少OSPF泛洪。鏈路上不會定期傳送LSA刷新,但會傳送hello消息。