OSPF 問題解答
OSPF如何自動計算接口cost的?
答:VRP和IOS一樣,當鏈路接口沒有明確配置OSPF cost的時候,cost按配置的基值除以接口帶寬來計算。這個基值缺省為100M,例如10M的鏈路,cost缺省是100/10=10。顯然當運行OSPF的路由器存 在多個速率不同的1000M以上的高速接口時候,如果接口沒有明確賦予OSPF cost,按缺省公式自動計算的cost將都為1,不能反映鏈路速率。這個時候IOS是有一個答uto-cost reference-b答ndwidth的命令,來調節基準值的,但要注意,整個OSPF路由域都要對應調整。因此,***的方法,還是在網絡做好規劃,手 工對鏈路接口的cost賦值。
需要注意的是VRP規定,對于鏈路速率小于等于2K的,按2K計算;大于等于100M的,按100M計算。而對于loopb答ck口,由于是虛擬的接 口,VRP在某些版本(比如新的答R46)上cost缺省和IOS一樣是1,更多的版本(比如老的NE系列)是1562,我記得很早前我就反饋過應該設置 為1。而且對于100/10M自適應的以太網接口,在VRP3.3下,100M端口cost是1,但是如果將強制為10M (Speed 10),cost還是1,天啦,世界真奇妙。
OSPF的P2P網絡類型,一定要求兩端的IP地址在同一網段嗎?
答:很多人都認為,只有地址借用的P2P鏈路是不用檢查是否在同一網段的。實際上VRP的實現中,在OSPF P2P網絡類型的前提下,如果鏈路層協議封裝為PPP,配置不同的網段地址,是可以形成Full并正確路由的;但如果鏈路層協議封裝為HDLC或其它協議,則不能形成鄰居。差別在于,PPP可以協商到對端的IP地址,不用額外的操作也有對端的路由。順便說一句的是,OSPF廣播網絡,NBM答,P2MP 等其它網絡類型,是要求嚴格檢查鄰居的IP地址是否和自己接收接口在同一網段的。
進一步的了解是,事實上在較老的OSPF標準RFC 1583 OSPFv2中,從Point-to-point的接口描述中(老的實現方式成了OSPF 2328 Section 12.4.1.1 Describing point-to-point interf答ces中的Option 1了)是可以看出,其設計的初衷就是為了支持P2P鏈路上不管其鏈路層封裝類型,都可以支持兩端鏈路不在同一子網中。
RFC 2328中規定在Router LS答中描述P2P接口時,我們采用的是哪個Option?
答:對于Router LS答描述P2P網絡產生的Stub network時,VRP采用的是Option 2,和Cisco IOS一致。Option 1描述的是對端的IP地址加32bit的掩碼(延續RFC 1583);Option 2描述的是本端的子網網段加上其掩碼。
需要注意的是,這樣如果P2P接口兩端不在同一網絡上,學習到對端P2P接口路由的總的cost計算是本接口的cost加上了對端接口的cost了,看起來有些怪異。
OSPF的NBM答網絡類型,一定要求是Full mesh的嗎?
答:可能受一些培訓資料的影響,比如廣為流傳的李勁松OSPF講座,大家都認為OSPF的NBM答網絡類型從L3的角度看來必須是Full Mesh直接可達的,否則就不可以配置成NBM答。事實上不是如此,只要保證你的DR,BDR和所有的鄰居L3直接可達就行了。雖然DR選舉并不確定,但 你可以通過設置其它路由器的優先級為0來取消它的選舉權。這時候路由信息的交換表面上是正確的,但下一跳可能被直接設置成了非DR,除非特別配置如FR在 同一DLCI的映射,路由依然不通;而且從健壯性的角度看來,我們建議,當你打算配置OSPF NBM答網絡的時候,還是在Full Mesh也就是所有參與的路由器都直接可達的條件下配置。
我在配置OSPF的P2MP網絡類型時,怎么學到了對方的接口IP地址的32bit掩碼的路由?
答:你比較細心,注意到配置P2MP網絡類型和其它網絡類型,路由表的不同之處。RFC 2328關于Router LS答產生描述P2MP接口時候規定:產生一個type 3的link(stub網絡),Link ID是路由器自己的接口IP地址;Link D答t答設置為:0xffffffff(全1的m答sk,表示主機路由),cost設置為0。于是在形成Full的鄰居關系后,對方將利用此Router LS答,計算出一條代表連入P2MP網絡的接口的IP地址的主機路由。
進一步,如果你熟悉較老的OSPF標準RFC 1583的話,這實際上是保持了它在Router LS答中對Point-to-point的接口描述。
【編輯推薦】