前言:
本篇文檔針對一些對OSPF路由協議有一定的感性熟悉的技術人員,提供一些基于OSPF報文格式的介紹,來達到了解OSPF路由協議的特性和特有的一些概念的了解。
一.OSPF的特性:
快速收斂;
能夠適應大型網絡;
能夠正確處理錯誤路由信息;
使用區域,能夠減少單個路由器的CPU負擔,構成結構化的網絡;
支持無類路由,完全支持超網,可變長子網等無類特性;
支持多條路徑負載均衡;
使用組播地址來進行信息互通,減少了非OSPF路由器的負載;
使用路由標簽來表示來自外部區域的路由。
二.Neighbor和Adjacency的定義:
Neighbor:
在網絡中,OSPF路由器可以發送Hello報文來進行鄰居尋找,當Hello報文中的幾個字段的內容是互相一致的時候,相鄰的OSPF路由器就會形成Neighbor關系。
Neighbor是保存在Neighbor表里,需要有Router ID和IP地址信息。
Router ID的確定:
1. 選擇IP地址最大的Loopback接口的IP地址為Router ID;假如只有一個Loopback接口,那么Router ID就是這個Loopback的地址。
2. 假如沒有Loopback接口,就選擇IP地址最大的物理接口的IP地址為Router ID,但是作為Router ID的物理接口,就不能運行OSPF,也就是說這個接口無法發送接受OSPF報文。
使用Loopback的IP地址作為Router ID的好處:
a. Loopback接口是邏輯接口,永遠不會down,有利于OSPF的穩定運行;
b. 便于控制OSPF路由器的Router ID。
Hello協議的特點:
1. 目的:
a. 用來發現OSPF Neighbor;
b. Hello報文包含了多個需要OSPF路由器協商的參數,以形成Neighbor的關系;
c. 他可以用來維持鄰居之間鏈接的存活;
d. 用來確定DR,BDR路由器的選擇。
2. 報文內容:
a. Router ID
b. Area ID
c. IP地址和掩碼
d. 認證方式和認證信息
e. Hello Interval和Dead Interval
f. Router優先權
g. DR和BDR的Router ID
h. 五個字節的特性控制信息
i. 距上次Hello報文后,在Dead Interval中,路由器的Neighbor的Router ID列表
每個OSPF路由器收到收到hello報文,將會協商上述信息,是否符合,假如不符合,Hello報文會遭到丟棄。
并且當一個路由器收到一個Hello報文,其中Neighbor Router ID List里有它的Router ID時,就會進入2-way模式,一旦進入2-way模式,就會建立Adjacency。
3. DR和BDR使用224.0.0.5(ALLSPFRouter Address)發送Hello Packet,而收到報文的路由器以224.0.0.6(ALLDRRouter Address)發送確認報文,表示收到了Hello Packet。
4. Point-to-Multipoint:相當與多個點對點網絡的集合,但是不會產生DR,BDR的選舉,通過組播報文發送路由信息報文。
5. 只有NBMA網絡和采用虛擬鏈路的網絡發送的是單播報文。
6. Stub Network:只有一個出口連接到路由器的網絡,通常產生的報文的原地址和目的地址都是本網絡中。
DR和BDR的選擇,特性:
1. DR和BDR是接口的特性,和路由器本身無關。
2. DR和BDR和multiAccess網絡中其他的路由器形成adjancency,但他們之間沒有形成adjancency。
3. 每個接口上都會有優先級,假如優先級為0時,表示不參加選擇DR,BDR。
Adjacency:
是在OSPF Neighbor之間形成的虛擬的連接,這些連接有不同的性質,根據路由器連接的不同網絡類型。
形成Adjacency的步驟:
1. 鄰居發現
2. 雙向通信
3. 數據庫同步
為了使路由器能夠實現數據庫的一致和同步,通過交換DD,LSR,LSU報文來達到數據庫同步的目的。
4. 完全形成連接
Master和Slave的關系和選擇
在ExStart狀態下,鄰居之間進行協商,以決定由哪個路由器來控制Database sychronization。
Neighbor表項的數據結構:
Neighbor表項中的信息是通過路由器從Hello報文中學到的,關于鄰居的一些信息。
1. Neighbor ID
2. Neighbor IP Address
3. Area ID
4. Interface
5. Neighbor Priority
6. State
7. PollInterval
這是用于NBMA網絡的一個概念,由于NBMA網絡無法用組播來發送報文,也就是說無法自動發現鄰居,假如當Neighbor處于down的狀態時候,Hello報文每隔一個PollInterval時間就會發送一次,來發現和維護鄰居關系。
8. Neighbor Option
9. Inactivity Time
10. DR
11. BDR
12. Master/Slave
13. DD Sequence Number
14. Last Received Database Description Packet
15. Lik State Retransmission List
是指已經發送出去的LSA,但是還沒有收到Acknowledge的報文,假如超過RxmtInterval還沒有收到,就會進行重傳。
16. Database Summary List
在database synchronization時,所發送的LSA的表單。
17. Link State Request List
是指最新收到的在Database Description報文中所帶的LSA清單,
路由器會發送LSR到Neighbor要最新的LSA,收到LSU后,會把list里的相應條目刪掉。
新聞熱點
疑難解答