範文齋

位置:首頁 > 職場範文 > 面試

面試的時候被問了個問題OSPF鄰居關係如何建立

面試2.46W

找了些資料,竊取別人的勞動成果,得出以下結論:

面試的時候被問了個問題OSPF鄰居關係如何建立

OSPF:OpenShortestPathFirst

OSPF路由協議是由IETF組織開發,作爲RIP路由協議的替代協議,解決RIP路由協議的固有問題。是IETF組織推薦使用的IGP協議。OSPF路由協議是一種鏈路狀態協議,使用SPF算法進行最佳路由計算。

作爲鏈路狀態協議,OSPF協議的主要優點在於路由表的快速收斂,對大型網絡的支持以及不易受到錯誤路由信息的影響。OSPF路由協議其他的的特點如下:

使用area的概念,降低協議對CPU和內存的影響,減少路由協議產生的流量,可以構築分層的網絡拓撲結構。

完全支持無類別路由處理,消除了有類別路由協議的一些問題,例如不連續子網的問題。

支持無類別路由表的檢索,支持VLSM,支持Supernetting可以更有效的進行地址管理。

支持無大小限制的,任意的metric值。

等價負載均衡,可以更有效的利用多路徑進行數據傳輸。

使用預留的組播地址,減小對非OSPF設備的影響。

支持認證,提供更安全的路由

可以對路由進行標記,跟蹤外部的路由。

OSPF的操作介紹

第一步:OSPF路由器從啓動了OSPF協議的接口向外發送Hello數據包,如果兩臺路由器共享公共的數據鏈路,並且Hello數據包中指定的數據參數協商一致,這兩個路由器將建立鄰居關係成爲鄰居(Neighbors)。

第二步:建立鄰接(Adjacencies)關係。鄰接關係是在兩個建立了鄰居關係的OSPF路由器之間建立的,類似於一條點到點的虛擬鏈路。兩個OSPF路由器必須先建立鄰居關係然後才能建立鄰接關係。因此在故障排除時可以依次檢查相應的數據庫列表。OSPF定義了幾種網絡類型和路由器類型,網絡類型和路由器類型也在Hello數據包中傳輸。鄰接關係的.建立也需要依據網絡類型和路由器類型來建立。

第三步:所有的路由器向所有的建立了鄰接關係的路由器上發送LSA(Link State Advertisement)數據包。在LSA數據包中,描述了路由器的接口、鏈路和鏈路的狀態。這些鏈路可以是到stub網絡的鏈路,可以是到其他OSPF路由器的鏈路,可以是到位於其他區域的網絡的鏈路,或者是到外部網絡的鏈路。由於網絡中存在着多種類型的鏈路,因此也就存在着多種類型的鏈路狀態信息,因此OSPF也就定義了多種的LSA類型。

第四步:每個路由器從鄰居路由器接收到後,將會在鏈路狀態數據庫中記錄下LSA的內容,並且將LSA的一個拷貝發送給他的其他鄰居路由器。

第五步:通過在一個區域內擴散LSA,所有的路由器將會建立統一的鏈路狀態數據庫。

第六步:當鏈路狀態數據庫建立完成後,每個路由器使用SPF算法計算出一個無環路的圖表,這個圖表可以用來描述從這個路由器到任意一個已知目的地的最短的路徑也就是最小鏈路開銷的路徑。這個圖表就是SPF樹。

第七步:每個路由器利用SPF樹來建立自己的路由表。

在一個區域內,當所有的鏈路狀態信息已經被擴散到所有的路由器上以後,我們就可以說鏈路狀態數據庫已經被同步了。同時,路由表也已經建立了。Hello數據包在鄰居路由器之間進行交換,提供存活(keepalive)數據包的作用。當一臺OSPF路由器出現問題時,他的鄰居路由器可以通過Hello數據包的交換情況來獲知情況。LSA數據包每30分鐘會被重新傳遞一次。

鄰居和鄰接關係

發送LSA數據包之前,OSPF路由器必須能夠發現鄰居路由器並且與鄰居路由器建立鄰接關係。鄰居路由器信息會被建立在鄰居列表中,同時還記錄每個鄰居路由器位於的鏈路或接口信息,以及記錄其他維護鄰居關係所需的必要信息。

針對OSPF路由器,我們需要一個標記來唯一的標識一個路由器,這個標記就是RouterID。RouterID就是路由器上的一個IP地址。Cisco路由器通過以下的原則來自行確定路由器的RouterID:

路由器選擇數值最大的Loopback接口的IP地址作爲RouterID。

如果路由器上沒有配置Loopback接口,路由器就選擇配置在物理接口上的數值最大的IP地址作爲RouterID。這個接口可以不運行OSPF路由協議。

使用與Loopback接口的IP地址具有以下的好處:

Loopback接口比物理接口更穩定,當路由器啓動後Loopback接口就被啓動,只有路由器失敗了,Loopback接口才會失敗。

使用Loopback接口的ip地址作爲路由器的RouterID,可以使網絡管理員在給OSPF路由器分配一個可預測的或是可確認的RouterID方面,具有更大的自由度。

如果CiscoOSPF路由器使用一個物理接口的IP地址作爲路由器的RouterID,那麼,即使這個物理接口後來失效了或是被刪除了,OSPF路由協議仍然會使用這個物理接口的IP地址作爲RouterID來使用。因此,Loopback接口的ip地址作爲RouterID所帶來的穩定性只是一個附屬的優點,使用Loopback接口地址的最大好處是可以控制RouterID。

OSPF路由器通過在Hello數據包中廣播自己的RouterID,來啓動鄰居關係的建立。

Hello協議

Hello協議主要是爲了實現以下的目的:

Hello協議是OSPF路由協議用來發現鄰居路由器的手段和方法。

Hello數據包重保護了一些參數,兩臺路由器如果要形成鄰居關係,這些參數必須能夠協商成功。

在具有鄰居關係的路由器之間傳輸Hello數據包,可以起到傳遞Keepalives信號的作用。

通過Hello數據包的交換,可以用來確認鄰居之間雙向通訊的情況是否正常沒有故障。

在廣播網絡和非廣播多點訪問網絡中,利用Hello數據包進行DesignatedRouter和BackupDesignatedRouter的選舉操作。

OSPF路由器從啓動了OSPF協議的接口上週期性的發送Hello數據包,這個時鐘週期稱爲“HelloInterval”。“HelloInterval”是基於接口進行配置的,兩個接口的“HelloInterval”參數可以不同。

Cisco路由器缺省的HelloInterval值被設置爲10秒,可以通過執行ipospfhello-interval命令來修改這個缺省的參數值。如果一個路由器在一段時間內沒有從它的一個鄰居路由器處接收到Hello數據包,它就會認爲這個鄰居路由器已經失效。這個時間段稱爲RouterDeadInterval。Cisco路由器缺省的RouterDeadInterval值被設置爲HelloInterval值的四倍,也就是缺省值爲40秒。這個值也可以通過執行ipospfdead-interval命令來改變。

OSPF路由協議的Hello數據包包含以下信息:

生成這個Hello數據包的OSPF路由器的RouterID;

生成併發送出這個Hello數據包的OSPF路由器的接口的AreaID、地址掩碼、認證類型、認證信息、HelloInterval、RouterDeadInterval;

路由器的優先級

DR和BDR

五個標識重要功能的標誌位

生成這個Hello數據包的OSPF路由器的所有鄰居的RouterID。這個RouterID的列表中只包括從發出這個Hello數據包的路由器接口在RouterDeadInterval時鐘到時之前通過Hello數據包中監聽到的鄰居的RouterID。這一步是鄰居路由器建立鄰接關係的手段。

路由器在接收到從一個鄰居路由器發送過來的Hello數據包後,會查看Hello數據包中承載的一部分信息,包括:AreaID、認證的相關信息、網絡掩碼、HelloInterval、RouterDeadInterval和選項值。並且會將這些信息與配置在接收到這個Hello數據包的接口上的參數進行比較,如果兩者不一致,就會將接收到的Hello數據包丟棄,鄰接關係也就不會被建立。如果兩者一致,那麼這個Hello數據包就是有效的。同時,如果發送這個Hello數據包的鄰居路由器的RouterID也已經在這個鄰居列表中,並且鄰居列表中記錄的接口和接收這個Hello數據包的接口相同,那麼這個接口的RouterDeadInterval時鐘就會被重置,如果鄰居列表中沒有這個鄰居路由器的RouterID,就會增加這個鄰居路由器的RouterID記錄。

無論何時,路由器在發送Hello數據包時都會將傳輸這個Hello數據包的鏈路上的所有的鄰居路由器的RouterID的信息包含在這個Hello數據包裏。如果一個鄰居路由器接收到這個Hello數據包後發現自己的RouterID信息也包含在這個Hello數據包中,那麼這個路由器就可以確定一條雙向通信鏈路已經被建立了。一旦雙向通信被建立,鄰接關係也就可以被建立了。當然並不是所有的鄰居路由器之間都可以形成鄰接關係。鄰居路由器之間是否能夠形成鄰接關係,也要根據連接這兩個鄰居路由器的網絡的類型來確定。網絡類型也會影響OSPF數據包的傳輸方式。

NetworkTypes

OSPF定義了五種網絡類型,分別是:

1、點到點網絡(Point-to-pointnetworks)

2、廣播網絡(Broadcastnetworks)

3、非廣播多點訪問網絡(Non-broadcastMulti-accessnetworksNBMA)

4、點到多點網絡(Point-to-multipointnetworks)

5、虛擬鏈路(Virtuallinks)

點到點網絡連接一對路由器。在點到點網絡上,有效的OSPF鄰居路由器之間總會形成鄰接關係。在點到點網絡上,OSPF數據包的目的地址始終是。這個地址稱爲AllSPFRouters,是一個預留的D類IP地址。

廣播網絡是一個多點訪問的網絡,在廣播網絡中可以連接兩臺以上的設備。並且在這個網絡上可以傳輸廣播數據包。一個廣播數據包被髮送到這個網絡後,所有設備都可以接收到。連接到廣播網絡上的OSPF路由器會推選出一個路由器作爲DR和一個路由器作爲BDR。由DR和BDR以組播方式發送目的地址爲的Hello數據包到廣播網絡上,承載這個數據包的幀的目的MAC地址爲0100.5E00.0005。廣播網絡上的其它OSPF路由器會以組播方式發送鏈路狀態更新(LSU:LinkStateUpdate)和鏈路狀態回執(LSA:LinkStateAcknowledgment)數據包,組播數據包的目的IP地址是,這個地址稱爲AllDRouter。承載這個組播數據包的幀的目的MAC地址是0100.5E00.0006。

非廣播多點訪問網絡可以連接兩個以上的路由器,但是不支持廣播功能。一個數據包發送出去後,不能夠被所有的路由器接收到。因此需要對非廣播多點訪問網絡上的路由器進行額外的配置,以便他們能夠發現鄰居路由器。連接到NBMA網絡上的OSPF路由器也會推舉DR和BDR,但是OSPF數據包是以單播數據包的形式發送的。