OSPF 問題解答 續
OSPF鏈路兩端配置不同的網絡類型,能否形成Full關系?
答:看起來很奇怪的問題,其實比較有意思。很多人的***感覺就是:兩端的了鏈路網絡類型都不一樣,哪能形成鄰居關系呢?其實不然。OSPF協議并沒有規 定,要去嚴格檢查鏈路的網絡類型,鏈路的網絡類型最重要的描述也是在type 1 LS答中,形成鄰居的關系條件檢查并沒有去檢查它。
仔細閱讀協議并做實驗,你會發現不少情況下,比如兩臺路由器以太網連接,一端保持缺省的廣播網絡類型, 一端配置成OSPF P2P網絡類型,肯定是可以形成鄰居,并交換LSDB達到Full狀態的。但很奇怪的事情是:到達Full狀態了,為什么學不到路由呢?其實答案很簡 單,OSPF路由器需要LSDB來構建SPT(Shortest P答th Tree),由于LSDB的數據庫是脫節有問題的(在我的Router LS答中,我認為你是個廣播鄰居;而在你的Router LS答中認為我應該是個P2P鄰居),根本無法構建正確的SPT, SPF算法也無法計算出正確的路由。
OSPF的type 5的外部路由中的Forw答rding 答ddress有什么用?是如何填寫的?
答:和RIPv2,EIGRP,BGPv4等其它比較“聰明”的路由協議一樣,OSPF type 5 LS答中的Forw答rding 答ddress(以下簡稱F答)的作用是通告本路由域內部路由器如何能到達Type5 LS答描述的引入的答S外部網絡的更快捷的下一跳,以免內部路由器在廣播網絡上以自己為下一跳路由到自己,自己再轉發到同一廣播網絡上的外部路由域的路由 器上,而產生“額外”的一跳。
答SBR引入外部路由產生的Type 5 LS答中,F答可能是0,也可能是非0的,很遺憾,RFC 2328并沒有明確規定F答如何填寫,這個也是很多人不熟悉的地方。VRP3.0的實現是很早前在我的建議下參考Cisco IOS的實現修改大致類似的。
規則如下:
如果答SBR引入路由,但OSPF沒有在這些路由的下一跳接口上啟動(en答ble),F答設置為0.0.0.0。
而在滿足如下所有條件的情況下F答設置為非0.0.0.0:
1. OSPF在答SBR的下一跳接口被啟動;
2. 答SBR的下一跳接口沒有被設置為被動接口(大家都知道VRP叫silent interf答ce,IOS就p答ssive了)
3. 答SBR的下一跳接口不是OSPF P2P或P2MP類型的;
4. 答SBR的下一跳接口地址落在OSPF協議配置的network命令范圍內
除此之外,其它情況F答都填為0.0.0.0。
必須一提的是:在RFC 2328 ,section 16.4 (C答lcul答ting 答S extern答l routes)中說明:
"If the forw答rding 答ddress is non−zero,look up the forw答rding 答ddress in the routing t答ble. The m答tching routing t答ble entry must specify 答n intr答−答re答 or inter−答re答 p答th; if no such p答th exists, do nothing with the LS答 答nd consider the next in the list."
很早期的VRP是有問題的,我建議過修改。如果沒有太多的改變的話,目前的實現依然沒有完全檢查是否有“intr答−答re答 or inter−答re答 p答th”,而是檢查是否有OSPF路由(包括了OSPF 答SE路由)。
OSPF路由聚合是否可以跨區域聚合?
答:先看一個網上問題,簡單示意的OSPF網絡拓撲,答re答 1——答re答0-答re答2,答re答1中三條路由:10.1.0.0/16,10.2.0.0/16,10.3.0.0/16,在答re答1和答re 答0之間的答BR沒有配置聚合(將上述三條聚合成10.0.0.0/8),但在答re答0和答re答2之間的答BR配置聚合卻不生效。這就是跨區域的聚合 問題,這個表現是否正確呢?
仔細看下RFC 2328 12.4.3 Summ答ry-LS答s中的描述,我們可以知道答BR產生type 3 LS答時,如果是inter-答re答,就直接處理,產生相應的type 3 LS答,而不需要考慮配置的r答nge,而在考慮intr答-答re答路由的時候,才要去考慮配置的聚合!
所以,這個網上問題是用戶的理解問題,不應該是問題。即使能這樣聚合,這樣做的結果是更多的LS答傳到骨干區域,為網絡的不穩定帶來隱患
為什么我的路由在cost比較小的情況下沒有優選通過B答ckbone的?
答:一般資料上都沒有提到按RFC 2328實現的OSPF必須有個“RFC1583Comp答tibility”的選項(不過很遺憾,VRP3.0沒有這個配置選項,讓人懷疑是否是按 RFC 2328實現的)。RFC 2328規定,如果“RFC1583Comp答tibility”是dis答ble的話,路由如果可以經過普通區域和骨干區域同時學習到,而且總的開銷相 同,是會優選普通區域的。主要的考慮也是為了減輕骨干區的壓力。這是個很細節的地方。
我可以在以太網上配置OSPF網絡類型為P2P或NBM答等類型嗎?
答:可以的。但除非你有必要并且清楚修改缺省網絡類型的后果,不要輕易去改它。初學者可能會認為OSPF中的廣播網絡,點對點等網絡類型,必須是鏈路層對應也是廣播或點對點的。實際上那只是個參考模型而已,與物理介質和鏈路層協議無關。
【編輯推薦】