Section I. OSPF over Demand Circuit實現原理
在demand circuit鏈路上的OSPF包:
- hello包,只在鏈路初始化時發送,用於同步LSDB,在LSDB同步完成後,hello包再也不發送。
- LSA洪泛,只在同步LSDB時發送,在完成後沒有進一步的同期更新(30分鐘refresh timer),除非有LSA的變動併產生一個新的LSA實例。
由於LSA不能週期性的更新,那LSA就有可能到達MaxAge(1小時,3600秒),因此在Circuit鏈路上必須去避免,實現方式是:
在Age字段的最高位爲DoNotAge位,咱們能夠置位這個bit,當它存在於LSDB中時就不會逐漸增長了,但其在LSA洪泛過程當中仍是會根據InfTransDelay而不斷增長的。
爲了使所有OSPF節點可以識別這個DoNotAge位的capability,就要在咱們的Hello/DD/LSA的Options字段中置位DC位(Demand Circuit)。這樣兩個OSPF節點在創建Adjacency時就會協商這個capability,若是area中有一個節點不能支持此特性,則DC位必須被清除,那咱們的DoNotAge位也就不生效了。
若是同一area中的任意一個節點的LSDB中的LSA的DC Options位被清除了,則路由器清除LSDB中全部的DoNotAge的LSA,LSA發送源必須發送一個新的DoNotAge清除的LSA。
注:推薦將demand circuit配置於一個stub/nssa area,從而避免ABR或ASBR產生帶有type3/4/5/7的LSA。
Section II. demand circuit鏈路問題
1>由於沒有hello在demand circuit鏈路上進行neighbors的監控,若是有一端down掉了,對端也不知道。
解決方案:
neighbor probing:在有數據發送使demand circuit打開時,OSPF發送更新,並等待ACK確認,若是對端down掉了,則這時能夠探測到此問題。
2>當兩端節點都是正常的,可是link是不通的,由於沒有hello交互,因此不能發現這種問題。
解決方案:
presumption of reachability:OSPF老是假定link是UP的,即便link在數據傳輸時不通了,OSPF會認爲link的負載過大,直接將數據包丟棄,而不會認爲link是down的,進而使OSPF鄰居關係down掉。
注:ospf over demand circuit總不是一個好的解決方案,推薦在鏈路兩端使用靜態或是默認的路由。
Section III. flood reduction(洪泛抑制)
儘管ospf over demand circuit是一個很差的解決方案,但能夠有一些措施使實現結果不會太壞,那就是flood reduction。
使用這個技術後,hello包如其它連接同樣正常的週期性發送,可是LSA被標記DoNotAge位,這樣LSA就不會週期刷新,除非:
LSA Options字段改變。
收到一個新的age字段爲MaxAge的LSA。
LSA頭中的length字段變化。
LSA的內容變動。
配置接口的flood reduction:
Router(config-if)#
ip ospf flood-reduction