1. 程式人生 > >OSPF報文詳解

OSPF報文詳解

ospf igp 鏈路狀態路由協議 lsa 動態路由

一、OSPF 概述

1、IGP (Interior Gateway Protocol),AS內部網關路由協議。
2、鏈路狀態動態路由協議。
3、IP 協議號89。
4、分area。area由一些network range組成。area 0 為骨幹區域。同一area內的router 鏈路狀態數據庫需要保持同步。
5、使用hello,Database Description,Link State Request,Link State Update,Link State Acknowledgment 這5中packet來發現和建立鄰接關系,並交換LSA(Link State Advertisement),同步鏈路狀態數據庫。

6、使用5中LSA來描述area 內的拓撲結構,以及AS內其他area的路由,及AS內從外部AS學到的路由:1).Router links advertisements; 2).Network links advertisements; 3).Summary link advertisements; 4).ASBR-Summary link advertisements; 5).AS external link advertisements.
7、使用鏈路狀態數據庫存儲LSA,並使用SPF(Shortest Path First)算法。以自己為根,計算出到目的網絡的無環的最短路徑樹。


二、OSPF Packet

2.1 OSPF 報文公共header

技術分享

2.1.1 作用

封裝OSPF packet,表明packet的類型,來源,來源區域。也可以進行認證。

2.1.2 字段說明

Type:表明header下面跟的packet的類型(1-Hello;2-Database Description;3-Link State Request;4-Link State Update;5-Link State Acknowledgment)

Router ID:路由器在區域內的唯一標識,可用路由器上的interface IP.
Area ID: 發送該OSPF Packet的router interface 所屬的area.


2.2 OSPF Hello Packet

技術分享

作用:發現鄰居,選舉DR/BDR(multi-access network),建立雙向通信關系。
字段說明:
Network Mask:發送接口的網絡掩碼。
HelloInt:Hello包周期發送時間間隔。
Options:可選能力字段,比如E位用來表示區域是否接收AS External link advertisement.
Rtr Pri: Router Priority在選舉DR/BDR的時候使用。
DeadInt:收到鄰居回復前的最大等待時間,超過改時間認為鄰居Dead。
Designated Router:本router認為的該multi-access network裏面的指定路由器
Backup Designated Router:本router認為的該multi-access network 裏面的備用指定路由器。
Neighbor: 最近收到的hello packet 的 Router ID(發送路由器),如果在收到的hello packet裏面看到自己的router ID 則和hello packet的發送路由器進入雙向通信(2-way)狀態。


2.3 OSPF Database Description Packet

技術分享

作用:互相交換鏈路狀態數據庫裏面的LSA信息。比較然後發現自己沒有的或者比自己存儲的LSA更新的。
字段說明:
Option:作用同Hello裏面的。
I/M/MS:I(Init bit,設置為1表示發送的第一個DBD,M(More bit,表示後面還有DBD),MS(Master/Slave,置1表示Master,只有1個master,其他的為slave,在DBD交換過程中,Master先發包含LSA頭部信息的DBD包,使用一個DD sequence number,slave 回復DBD包,使用相同的DD sequence number在傳遞LSA的同時對Master發送的DBD進行確認,以此實現可靠的信息交換)
Link State Advertisement Header: LSA數據包的header,header中包含足夠的信息以唯一的確認一個SLA的實例。LSA Header下面會介紹


2.4 OSPF Link State Request

技術分享

作用:向鄰居請求其數據庫中自己沒有的或者比自己更新的LSA。
字段說明:
LS type:LS 類型如之前介紹的5中LSA。
Link State ID:相應的LS type的LSA header裏面包含的Link State ID字段內容。其具體的值在之後介紹LSA Header時介紹。
Advertisiong Router:通告該被請求LSA的Router。
以上三個字段可以唯一的確認要請求的LSA。


2.5 OSPF Link State Update

技術分享

作用:向鄰居發送其請求的LSA(單播),在網絡上泛洪LSA(多播,當網絡有變動時,發送新的LSA),發送的Upadate packet需要neighbor使用 Ackownledged packet進行確認。如果未收到neighbor的確認,對改neighbor進行單播重傳,以確保他們的數據庫信息同步。
字段說明:
#advertisements:包含的LSA的數量。
link state advertisements:完整的LSA數據包。


2.6 OSPF Link State Acknowledgment

技術分享

作用:對收到的Update packet進行確認。字段說明:
#A Link State Advertisement Header:收到的Update packet裏面包含的LSA的header,發送回去表示具體的LSA已經收到。


三、 OSPF LSA 封裝

上面介紹的5中OSPF packet 是用來建立並維持鄰居關系並交換和保持鏈路狀態數據庫同步的。其交換和存儲的正是下面要介紹的5中LSA。
1、Router links
2、Network links
3、Summary link(IP network)
4、Summary link(ASBR)
5、AS external link
下面通過介紹不同LSA的包的內容,來介紹一下OSPF是如何通過LSA來描述area 的拓撲,及area內包含的網段。並通過LSA來學習area 外部,AS外部的路由。


3.1 OSPF LSA Common Header

技術分享

作用:通過LS type,Link State ID,Advertising Router, 來唯一的確認一個LSA,通過LS age,LS sequence number 用來唯一確認該LSA最新的實例。
字段說明:
LS age:LSA被生成以後到現在的時間。
Options:可選的能力支持,同Hello。
LS type:頭部下面跟隨的LSA的類型(1-Router links;2-Network links;3-Summary links(IP network);4-Summary link(ASBR);5-AS external link)
Link State ID:表示該LSA描述的網絡環境(internet environment),根據不同的LS type,有不同的值,Router links 其值為router‘s OSPF Router ID; Network links其值為 IP interface address
of the Designated Router;Summary link(3)其值為IP network number;Summary link(4)其值為ASBR‘s Router ID;AS external link其值為IP network number.
Advertising Router:生成改LSA的router‘s router ID。
LS sequence number:LSA 序列號用來檢測舊的或者重瞳的LSA。
LS checksum:整個LSA的一個校驗值。
length:LSA的長度,包括頭部。


3.2 Router link advertisement

技術分享

作用:描述router上屬於相應area的interface(or link)的state 和 cost。該Router的所有的屬於一個area的link必須被包含在一個Router links advertisement裏面。area裏面的每個router生成。其link State ID為生成該LSA的路由器的Router ID.
字段說明:
E/B: E表明router是否是ASBR,B表明router是否是ABR
#links:改LSA中包含的LINK的數量。
Type:link的類型 1-Point-to-piont;2-transit network;3-stub network;4-Virtual link.
Link ID:定義該link連接的對象,針對不同的link type其值不同,P-2-P其值為Neighboring router‘s ID;Transit-network其值為IP address of Designated Router;Stub-network其值為IP network/sunet number;Virtrual Link 其值為Neighboring router‘s ID.
Link Data:其值也根據鏈路類型來確定:Stub-network其值為network mask;其他類型該值為router 關聯接口的IP 地址。
TOS 0 metric: TOS(Type of Service在IP裏面定義的服務類型)0 的metric 值。也就是cost。


3.3 Network link advertisement

技術分享

作用:由transit-network(multi-access network)的Designated Router生成,描述所有連接到該multi-access network的router。其Link State ID 為DR‘s interface ip.
字段說明:
Network Mast:transit-network 的網絡掩碼。
Attached Router:附加(連接)在該multi-access network的路由器的router-id ,包括Designated Router 其自己的router ID.


3.4 Summary link advertisement

技術分享

作用:由ABR(Area Border Router)生成,一個Summary links advertisement 只能包含一條屬於本AS但是是area外的destination route。其lsa header裏的Link State ID就是其要通告的destination route(IP network number)
字段說明:
Network Mast:Link State ID 裏面IP network number 的網絡掩碼。IP network number+ Network Mask 形成該LSA傳遞的路由的具體的目標網絡。
TOS/metric:該路由針對於不同的TOS的metric值。
TYPE-4
作用:由ABR生成告訴區域內的路由器通告AS external link advertisements 的ASBR(Autonomous System Boundary Router)的位置。其LSA header 裏面Link State ID的值為 ASBR的 Router ID.
字段說明:
Network Mask: 在該類型的SLA裏,該字段沒有意義,必須置0.


3.5 AS External Link advertisement

技術分享

作用:由ASBR生成,一個AS external links advertisement 只能包含一條本AS外部的destination route。其lsa header裏的Link State ID就是其要通告的destination route(IP network number)
字段說明:
Network Mast:Link State ID 裏面IP network number 的網絡掩碼。IP network number+ Network Mask 形成該LSA傳遞的路由的具體的目標網絡。
E:externel metric 類型。置1表示Type2 external metric(只使用外部初始的cost,改路由在AS內部傳遞其metric不隨著內部路徑成本的增加而增加)。置0表示Type 1 external metric(意思是路由的metric隨著內部路徑成本的增加而增加)
TOS/metric:該路由針對於不同的TOS的metric值。
Forwarding address:第三方轉發地址。數據包應該被發送到該地址進行下一步的轉發,而不是發送到ASBR上。如果改地址為0.0.0.0,則數據包路由到ASBR上,之後再進行下一步的轉發。


四、OSPF 工作原理

OSPF是如何通過5中LSA來構建area 拓撲和學習路由的:
其實網絡就是由點(路由器以及附著在路由上的stub network)和線(link/network)組成。
OSPF Router通過Router LSA學習到一下信息:1)、標識出來一個路由器(Router ID);2)router 上的stub network比如interface vlan,loopback interface;3)、和point-to-point link 網段連接的Router的 Router ID.
OSPF Router通過Network LSA學習到multi-access network 裏面附著的Router。
在同一個區域內的所有OSPF Router的LSDB同步以後,Router 就可以計算出一張完成的區域內路由器連接拓撲圖了。到該area內的目的網絡的路由,OSPF Router 以自己為根根據不同鏈路的cost 最後計算出一條到該目的地網絡的最短路徑。
area 外部但是屬於AS內部的目的網絡路由,區域內的路由器通過ABR通告的summary LSA 來學習到(ABR就是一個AREA 的出口)
AS外部的路由,AS內部的路由器通過ASBR通告的 AS external LSA 來學習到。ASBR就是一個AS的出口。


OSPF報文詳解