OSPFv3是OSPF(Open Shortest Path First,開放式最短路徑優先)版本3的簡稱,主要提供對IPv6的支持,遵循的標準為RFC 2740(OSPF for IPv6)。
OSPFv3和OSPFv2在很多方麵是相同的:
l Router ID,Area ID仍然是32位的。
l 相同類型的報文:Hello報文,DD(Database Description,數據庫描述)報文,LSR(Link State Request,鏈路狀態請求)報文,LSU(Link State Update,鏈路狀態更新)報文和LSAck(Link State Acknowledgment,鏈路狀態確認)報文。
l 相同的鄰居發現機製和鄰接形成機製。
l 相同的LSA擴散機製和老化機製。
OSPFv3和OSPFv2的不同主要有:
l OSPFv3是基於鏈路(Link)運行,OSPFv2是基於網段(Network)運行。
l OSPFv3在同一條鏈路上可以運行多個實例。
l OSPFv3是通過Router ID來標識鄰接的鄰居。OSPFv2則是通過IP地址來標識鄰接的鄰居。
和OSPFv2一樣,OSPFv3也有五種報文類型,分別是Hello報文、DD報文、LSR報文、LSU報文和LSAck報文。
這五種報文有相同的報文頭,但是它和OSPFv2的報文頭有一些區別,其長度隻有16字節,且沒有認證字段。另外就是多了一個Instance ID字段,用來支持在同一條鏈路上運行多個實例。
OSPFv3的報文頭如圖1所示。
圖1 OSPFv3報文頭示意圖
l Version #:OSPF的版本號。對於OSPFv3來說,其值為3。
l Type:OSPF報文的類型。數值從1到5,分別對應Hello報文、DD報文、LSR報文、LSU報文和LSAck報文。
l Packet Length:OSPF報文的總長度,包括報文頭在內,單位為字節。
l Instance ID:同一條鏈路上的實例標識。
l 0:保留位,必須為0。
LSA(Link State Advertisement,鏈路狀態通告)是OSPFv3協議計算和維護路由信息的主要來源。在RFC2740中定義了七類LSA,描述如下:
l Router-LSA:由每個路由器生成,描述本路由器的鏈路狀態和開銷,隻在路由器所處區域內傳播。
l Network-LSA:由廣播網絡和NBMA(Non-Broadcast Multi-Access)網絡的DR(Designated Router,指定路由器)生成,描述本網段接口的鏈路狀態,隻在DR所處區域內傳播。
l Inter-Area-Prefix-LSA:和OSPFv2中的Type-3 LSA類似,該LSA由ABR(Area Border Router,區域邊界路由器)生成,在與該LSA相關的區域內傳播。每一條Inter-Area-Prefix-LSA描述了一條到達本自治係統內其他區域的IPv6地址前綴(IPv6 Address Prefix)的路由。
l Inter-Area-Router-LSA:和OSPFv2中的Type-4 LSA類似,該LSA由ABR生成,在與該LSA相關的區域內傳播。每一條Inter-Area-Router-LSA描述了一條到達本自治係統內的ASBR(Autonomous System Border Router,自治係統邊界路由器)的路由。
l AS-external-LSA:由ASBR生成,描述到達其它AS(Autonomous System,自治係統)的路由,傳播到整個AS(Stub區域除外)。缺省路由也可以用AS-external-LSA來描述。
l Link-LSA:路由器為每一條鏈路生成一個Link-LSA,在本地鏈路範圍內傳播。每一個Link-LSA描述了該鏈路上所連接的IPv6地址前綴及路由器的Link-local地址。
l Intra-Area-Prefix-LSA:每個Intra-Area-Prefix-LSA包含路由器上的IPv6前綴信息,Stub區域信息或穿越區域(Transit Area)的網段信息,該LSA在區域內傳播。由於Router-LSA和Network-LSA不再包含地址信息,導致了Intra-Area-Prefix-LSA的引入。
OSPFv3的定時器包括:
l OSPFv3的報文定時器。
l LSA的延遲時間。
l SPF定時器。
Hello報文周期性地被發送至鄰居路由器,用於發現與維持鄰居關係、選舉DR與BDR。需要注意的是,網絡鄰居間的Hello時間間隔必須一致,並且Hello時鍾的值與路由收斂速度、網絡負荷大小成反比。
在一定時間間隔內,如果路由器未收到對方的Hello報文,則認為對端路由器失效,這個時間間隔被稱為相鄰路由器間的失效時間。
當一台路由器向它的鄰接發送一條LSA後,需要等到對方的確認報文。若在設定的重傳間隔時間內沒有收到對方的確認報文,就會向鄰接重傳這條LSA。重傳間隔的值必須大於一個報文在兩台路由器之間傳送一個來回的時間。
由於LSA在本路由器的LSDB(Link State Database,鏈路狀態數據庫)中會隨時間老化(每秒加1),但在網絡的傳輸過程中卻不會隨時間老化,所以有必要在發送之前就將LSA的老化時間增加上傳送延遲時間。對於低速網絡,該項配置尤為重要。
當OSPFv3的LSDB發生改變時,需要重新計算最短路徑,如果每次改變都立即計算最短路徑,將占用大量資源,並會影響路由器的效率,通過調節SPF(Shortest Path First,最短路徑優先)的計算延遲時間和間隔時間,可以避免在網絡頻繁變化時過多的占用資源。