OSPF理論

OSPF簡介

    OSPF(Open Shortest Path First 開放式最短路徑優先)協議是IETF爲IP網絡開發的IGP路由選擇協議。它是一種典型的鏈路狀態(link-state)路由協議。在同一個OSPF自制系統內每一臺運行OSPF協議的路由器總是將本地網絡的連接狀態用LSA描述,並廣播到整個自制系統中去。這樣,每臺路由器都收到了自制系統中所有路由器生成的LSA,這些LSA的集合組成了LSDB,這樣所有的OSPF路由器都維護一個相同的描述自治系統內部結構的數據庫。

     說明:一個路由器在理論上支持65535個OSPF進程,在實際環境中一個路由器可支持的OSPF進程數量與其接口數量相等(包括物理與環回接口)。


多區域OSPF

    OSPF是一種分層次的路由協議,在每個AS中,將網絡劃分爲不同的區域。每個區域都有自己特定的標識號。對於主幹區域(backbone),負責在區域之間分發鏈路狀態信息。一個大型的網絡,如果不分區域,那麼路由器的LSA報文和鏈路狀態數據庫會很大。一方面容易造成數據庫溢出;另一方面當網絡中某一鏈路狀態發生變化時,會引起整個網絡中每個節點都重新計算一遍自己的路由表,既浪費資源與時間,又會影響路由協議的性能(如聚合速度、穩定性和靈活性)。每個區域內部維持本域一張唯一的拓撲圖,且各域根據自己的拓撲圖各自計算路由。多區域的OSPF必須存在一個主幹區域,主幹區域負責收集非主幹區域發出的彙總路由信息,域邊界路由器把各個域的內部路由總結後將這些信息在域間擴散。這樣當網絡中的某條鏈路狀態發生變化時,信息只會在那個域以內的鄰居之間傳遞,那個區域以外的路由器不會收到該信息。那麼只需要此鏈路所在域中的每個路由器重新計算本域路由表,而其他域中路由器只需修改其路由表中的相應條目,而無需重新計算整個路由表,節省了就算路由表的時間。OSPF區域不能隨意劃分,應該合理地選擇區域邊界,使不同區域之間的通信量最小。但在實際應用中區域的劃分往往並不是根據通信模式,而是根據地理或政治因素來完成的。


OSPF劃分區域的原因:

LSA數據過大,造成帶寬負載過大;

計算全網拓撲,對CPU要求過高;

數據庫過大對內存要求過高。


OSPF的特點

1.可適應大規模網絡;

2.收斂速度快,無路由環路;

3.支持VLSM和CIDR;

4.支持等價負載均衡;

5.支持區域劃分,構成結構化的網絡,提供路由分級管理;

6.支持簡單口令和MD5認證;

7.以組播方式(224.0.0.5或224.0.0.6)傳送協議數據包;

8.OSPF路由協議的管理距離是110;

9.OSPF路由協議採用cost作爲度量標準;

10.OSPF維護鄰居表、拓撲表和路由表。


名詞解釋

LSA:Link State Advertisement 鏈路狀態通告。

LSR:Link State Request 鏈路狀態請求。

LSU:Link State Update 鏈路狀態更新。

LSDB:Link State Database 鏈路狀態數據庫。

DD:Database Description 鏈路狀態數據庫描述。

DR:Designated Router 指定路由器。

BDR:Backup Designate Router 備份指定路由器。

RID:Router ID 路由標識。

ABR:Area Border Router 區域邊界路由器。

ASBR:Autonomous System Boundary Rotuer 自治域系統邊界路由器。

Stub:末梢區域。

Totally Stubby:完全末梢區域。

NSSA:Not-So-Stubby Area 非純末梢區域。

Totally NSSA:完全非純末梢區域。

鏈路:路由器上的一個接口。

鏈路狀態:有關各條鏈路狀態的信息,用來描述路由器接口及其與鄰居路由器的關係,信息包括接口的IP地址

     和子網掩碼、網絡類型、鏈路開銷及鏈路上的所有相鄰路由器。所有鏈路狀態信息構成鏈路狀態數據庫。

區域:共享鏈路狀態信息的一組路由器。在同一個區域內的路由器有相同的鏈路狀態數據庫。

鏈路狀態通告(LSA):用來表述路由器的本地狀態,信息包括路由器接口的狀態和所形成的鄰接狀態。

最短路徑優先(SPF)算法:是OSPF路由協議的基礎。SPF算法有時也被稱爲Dijkstra算法,這是因爲SPF算法是

     Dijkstra發明的。OSPF路由器利用SPF獨立地計算出到達任意目的地的最佳路由。

鄰居:如果兩臺路由器共享一條公共數據鏈路,並且能協商Hello包中所指定的某些參數,他們就形成鄰居。

鄰接關係:相互交換LSA的OSPF的鄰居建立的關係,一般說,在點到點、點到多點的網絡上鄰居路由器都能形成

     鄰接關係,而在廣播多路訪問和NBMA網絡上,要選舉DR和BDR,DR和BDR路由器與所有的鄰居路由器形成鄰

     接關係,但是DRother路由器之間不能形成鄰接關係,只能形成鄰居關係。

 

OSPF的工作原理

OSPF路由器的狀態:

Down:這是OSPF建立交互關係的初始化狀態,OSPF進程沒有與任何鄰居交換信息,等待進入Init狀態。

Init:Initialization 初始化狀態,路由器的各個接口通過224.0.0.5發送Hello數據報文到其他運行OSPF的路

     由器,當鄰居路由器收到第一個Hello數據報文,這時就進入Init狀態。在該狀態時,OSPF路由器已經接收

     到相鄰路由器發來的Hello數據報文,但自身的ID並沒有出現在該Hello報文內,也就是說,雙方的雙向信

     還沒有建立起來。

2-Way:雙向狀態,這個狀態可以說是建立交互方式真正的開始步驟。在這個狀態,路由器接收到一個Hello回

     應報文,這個Hello含有自己和鄰居信息,路由器看到自身已經處於相鄰路由器的Hello數據報內,雙向通

     信已經建立。指定路由器及備份指定路由器的選擇正是在這個狀態完成的。在這個狀態,OSPF路由器還可

     以根據其中的一個路由器是否指定路由器或是根據鏈路是否點對點或虛擬鏈路來決定是否建立交互關係。

ExStart:啓動狀態,這個狀態路由器之間的關係成爲毗鄰關係,路由器和它的鄰居通過相互交換DD報文(該報

     文稱爲空DD報文,它並不包含實際內容,只包含一些標誌位),來決定路由器之間的主從關係,且具有最高

     ID的路由將成爲主設備,是唯一能夠增加序號的路由器。

Exchange:交換狀態,在這個狀態,路由器向相鄰的OSPF路由器發送DD報文來交換鏈路狀態信息(主路由器先

     發)。DD報文包含了出現在LSDB中的LSA條目頭部信息,條目信息可以爲一條鏈路(link)或者一個網絡。從

     這個狀態起,OSPF進入Flooding狀態。

Loading:在Loading狀態,OSPF路由器會就其發現的相鄰路由器的新的鏈路狀態數據,發送LSR給相鄰路由器。

     相鄰路由器收到LSR以後,一LSU作爲應答,其中包含了LSR所需要的完整信息。路由器收到LSU後,發送

     LSAck再次做出確認。

Full:這是兩個OSPF路由器建立交互關係的最後一個狀態,在這時,建立起交互關係的路由器之間已經完成了

     數據庫同步的工作,他們的鏈路狀態數據庫已經一致,這個狀態稱爲“全毗鄰狀態”,每臺路由器保存着

     一張毗鄰路由器列表稱爲“毗鄰數據庫”。兩個OSPF路由數據庫同步時所有鏈路狀態路由協議的最大共

     性。 在OSPF路由協議中,數據庫同步關係僅僅在建立交互關係的路由器之間保持。


DR和BDR

點對點類型的網絡只存在兩個節點,所以不需要DR/BDR,它們彼此間完全相鄰。在多路訪問網絡上,比如以太網,可能存在多個路由器。爲了避免路由器之間建立完全相鄰關係而引起的大量開銷,OSPF要求在區域中選舉一個DR,每個路由器都與之建立完全相鄰關係。DR負責收集所有的鏈路狀態信息,併發布給其他路由器。選舉DR的同時也選舉出一個BDR,在DR失效的時候BDR擔負起DR的職責。一旦選完成,即使新加一個優先級更高的設備也不會進行重新的選擇,只有在DR或者BDR出問題的時候纔會發生重選。如果DR出問題,BDR會變成DR,然後進行BDR重選。如果BDR出問題,則進行BDR的重選。

以多路訪問網絡爲例說明DR/BDR的選舉過程:首先,OSPF路由器也是通過Hello數據報文來發現鄰居,然後進入2-Way狀態,在這個狀態下選舉DR和BDR。選舉是利用Hello報文內的ID和Priority(優先權)字段值來確定。優先權值大小爲0-255(默認值爲1,0代表不參加選舉),優先權值最高的路由器成爲DR;如果優先權值大小一樣,則ID最高的路由器選舉爲DR,優先權值次高的路由器成爲BDR。優先權值和ID值都可以直接設置。然後,DR與BDR互換信息,並同時與本子網內其他路由器交換鏈路狀態信息,之後就是形成統一的鏈路狀態數據庫,DR和BDR可保證網絡上的其他路由器都有關於網絡的相同鏈路狀態信息。最終路由器根據統一的鏈路狀態數據庫通過SPF算法,形成路由表。


    說明:先啓動OSPF進程的路由器會等待一段時間,如果在這個時間內你沒有啓動其它路由的OSPF進程,第一臺路由器就認爲自己是DR,之後有路由器再加進來也不能再選舉了。這個等待時間叫做Wait Timer計時器,Cisco規定的Wait Timer是40秒,這個時間內你啓動的路由是參與選舉的。在真實工作環境中,你在40秒內大概只能啓動兩臺路由器,DR會在前兩臺啓動的路由器中產生,工作一段時間後,存活時間最久的路由器最後可能成爲DR。


注意:DR與BDR的選舉僅存在於廣播和非廣播多路訪問網絡中,選舉DR和BDR後,毗鄰關係僅存在於路由器與其DR和BDR之間。即:(full狀態能交換所有的數據包,2-way狀態只能交換hello包)

DR和BDR之間是full;

DR和DRother之間是full;

BDR和DRother之間是full;

DRother之間是2-way。

DR和BDR的選舉過程:

OSPF理論

說明:動態路由協議OSPF、BGP在運行過程中需要爲該協議指定一個Router ID,作爲此路由器的唯一標識,並要求在整個自制系統內唯一。由於Router ID是一個32位的無符號整數,這一點與IP地址十分相像,而且IP地址是不會出現重複現象的,所以通常將路由器的Router ID指定爲與該設備上的某個接口的地址相同。由於默認路由器的優先值爲1,所以OSPF路由器在選舉DR和BDR時,用最高IP地址作爲路由器的ID來決定DR和BDR。在實際應用中,路由器的接口如果不穩定,那麼這臺路由器的ID也會隨着不斷變化,這樣就影響了整個網絡的穩定性。於是,通過設置一個迴環接口,路由器一旦配置了迴環接口,那麼它將把這個接口的IP地址作爲路由器的ID。loopback接口的地址通常指定爲32位掩碼,如210.83.130.1 255.255.255.255。


路由表的維護

當鏈路狀態沒有發生變化時,OSPF路由器週期性地產生與其相連的所有鏈路的狀態信息。每個LSA都有個生存期,這個生存期的最大期限是1小時,事發路由器在發送LSA的時候會把LSA的生存期設爲0,隨着時間的推移,這個LSA的生存期到達1小時後就會被接收路由器從LSDB中刪除。通常,路由器每30分鐘就發送鏈路相關的LSU來刷新舊的LSA。每個LSA都有個序列號,一臺路由器始發一個LSA,之後每產生一個LSA其序列號就加1,序列號是32位長,以0x80000001開頭,0x7FFFFFFF結束。默認情況下,OSPF路由器還週期性地(在點到點和廣播多路訪問型網絡中爲10秒,點到多點和非廣播多路訪問型網絡中爲30秒)向鄰居路由器發送一個Hello報文,如果一個路由器在Hello協議的Down機判定間隔時間(一般爲Hello間隔時間的4倍)後還沒收到鄰居路由器的消息,那麼它就會認爲鄰居出故障了。然後該路由器發送一個含有更新的鏈路狀態信息的LSU,這個過程使用Flooding方式發送給網絡中的其他路由器。


OSPF的Metric值:Cost=10^8/帶寬(簡便記做100Mb/帶寬)。Metric值是由Cost值逐跳累加的。


Flooding在點到點和多路訪問型網絡中有所不同:

1.在一個點對點型網絡中,使用多播地址224.0.0.5向鄰居發送LSU;

2.在一個多路訪問型網絡中,DRothers使用多播地址224.0.0.6向DR和BDR發送更新數據包。當DR接收到該數據報

  文並確認後,它使用多播地址224.0.0.5泛洪擴散更新的數據包到網絡上的DRothers。

如果OSPF數據包被封裝在以太網幀內,目的MAC組播地址分別爲:0100.5E00.0005,0100.5E00.0006。

說明:OSPF的關鍵是通過Flooding方式發送LSA來實現數據庫同步。


OSPF多區域中路由器可分爲以下4種類型:

內部路由器:所有接口在同一區域的路由器,維護一個鏈路狀態數據庫。

主幹路由器:連接到OSPF網絡主幹區域的路由器。也就是說,路由器至少有一個接口連接到區域0。

區域邊界路由器(ABR):具有連接多區域接口的路由器,一般作爲一個區域的出口。ABR爲每一個所連接的區域

     建立鏈路狀態數據庫,負責將所連接區域的路由摘要信息發送到主幹區域,而主幹區域,而主幹區域上的

     ABR則負責將這些信息發送到各個區域。生成LSA3。

自治域系統邊界路由器(ASBR):連接不同AS的路由器,它可以引入外部路由。生成LSA5、LSA7。

說明:路由彙總可以減少LSA條目,可以使網絡更穩定。區域間路由彙總必須在ABR上配置:area 1 range 1.1.4.0 255.255.252.0;外部路由彙總必須在ASBR上配置:summary-address 2.2.4.0 255.255.252.0。


OSPF的區域類型

標準區域:一個標準區域可以接收鏈路更新信息和路由總結,泛洪LSA1,LSA2,LSA3,LSA4,LSA5。

主幹區域:主幹區域是連接各個區域的中心實體。主幹區域始終是“區域 0”,所有其他的區域都要連接到這

     個區域上交換路由信息。主幹區域擁有標準區域的所有性質,泛洪LSA1,LSA2,LSA3,LSA4,LSA5。

末梢區域/末節區域:末梢區域是不接受自治系統以外的路由信息的區域。如果需要自治系統以外的路由,它

     使用默認路由0.0.0.0,泛洪LSA1、LSA2、LSA3。

完全末梢區域:不接收外部自治系統的路由及自治系統內其他區域的路由總結。需要發送到區域外的報文則使

     用默認路由0.0.0.0,泛洪LSA1、LSA2、(LSA3 default)。

非純末梢區域(NSSA):類似於末梢區域,但是允許接收以LSA7發送的外部路由信息,並且把LSA7轉成LSA5。

     泛洪LSA1、LSA2、LSA3、LSA7、(LSA7 default)。

完非純全末梢區域:類似於末梢區域,但是允許接收以LSA7發送的外部路由信息,並且把LSA7轉成LSA5。泛

     洪LSA1、LSA2、LSA7、(LSA3 default)。


OSPF支持的網絡類型

根據路由器連接的物理網絡不同,OSPF將網絡劃分爲4種類型:

BMA(廣播多路訪問型 Broadcast MultiAccess):如Ethernet、Token Ring和FDDI等,需要選舉DR/BDR。

NBMA(非廣播多路訪問型 None Broadcast MultiAccess):如Frame Relay、X.25和SMDS等,多爲全網狀,

     所有接口屬於同一子網,因爲非共享介質,需要手動指定鄰居,需要選舉DR/BDR。

P-to-P(點到點型 Point-to-Point):如PPP、HDLC。

P-to-MP(點到多點型 Ponit-to-MultiPoint):部分網狀或星型網絡拓撲,所有接口屬於同一子網,不需要

     選舉DR/BDR,鄰居可以動態發現。

虛電路:虛電路的網絡類型是點到點型。


OSPF的LSA類型 R1#show ip ospf database   //查看鏈路狀態數據庫


OSPF理論 - 朝鮮程序員 - 朝鮮程序員的博客LS1 路由器LSA(Router LSA):R1#show ip ospf database router

域內路由,僅在本區域內傳播,不會穿越ABR;每臺路由器都會產生;包含本路由器的直連的鄰居,以及直連網絡的信息。一個邊界路由器可能產生多個LSA類型1,路由表中用O表示。

Link ID:Router ID     Advertising Router:Router ID


OSPF理論 - 朝鮮程序員 - 朝鮮程序員的博客
 LS age:489 //LSA的年齡,即LSA從生成到查看此LSA時所經過的時間,以秒爲單位。

Options:(No TOS-capability,DC) //用於通知對端到端是否具有處理按需撥號鏈路的功能。

LS Type:Router Lins //標識LSA類型,這裏是Router Links類型,即類型1LSA,用來描述路由器周圍的鏈

路狀態。

Link State ID:10.10.2.1 //標識LSA所描述的網絡環境,其取值和LSA的類型有關,在Router Links類型的

LSA中,取值爲發出此LSA的路由器的Router ID。

Advertising Router:10.10.2.1 //始發此LSA的路由器的Router ID。

LS Seq Number:80000002 //LSA的序列號,用於檢測舊的或者重複的LSA。

Checksum:0x7B29 //除LS age字段以外的整個LSA的校驗和。

Length:36 //LSA的長度,包括20個字節的LSA報頭部分。

Area Border Router //描述路由器類型

Number of Links:1 //表示有1條鏈路狀態信息

------以上爲LSA的報頭信息------

Link connected to:a Transit Network //表示路由器周圍存在的鏈路類型,這裏是Transit Network。一臺OSPF路由器周圍可能存在的鏈路狀態分爲以下4類,到另一臺路由器的點對點的連接(Router);連接到transit網絡(如以太網);連接到stub網絡(StubNet);虛連接(Virtual Link)。

(Link ID)Designated Router address:210.83.131.1 //Link ID用於標識周圍存在的鏈路,取值和連接的鏈路類型有關。如果是到另一臺路由器的點對點連接,取值爲鄰居路由器的Router ID;如果連接到transit網絡,其取值爲DR的IP地址。這裏連的是Transit Network,所以取值爲DR的IP地址。如果連接到stub網絡,取值爲相應子網的網絡地址。如果是虛連接,取值是鄰居路由器的Router ID。

(Link Data)Router Interface address:210.83.131.2 //Link Data取值和連接的鏈路類型有關,如果是到另一臺路由器的點對點的連接或連接transit網絡(如以太網),取值爲與對端直連的接口IP;如果連接到stub網絡(StubNet),取值是相應子網的子網掩碼(子網網絡地址在Link ID中表示)。

TOS 0 Metrics:10 //引入外部路由的花費值。

TOS:服務類型,該數據包所需要提供的服務,即最小時延、最大吞吐量、最高可靠性、最小費用等。OSPF和IS-IS都能根據這些字段值進行路由決策。

LSA2 網絡LSA(Network LSA):R1#show ip ospf database network

僅在本區域內傳播;只有BMA網絡纔會產生LSA2,由DR發出;標識出BMA網絡中有哪些路由器以及本網的掩碼信息。路由表中用O表示。

Link ID:DR的接口IP     Advertising Router:DR的Router ID

LSA3 網絡彙總LSA(Network Summary LSA):R1#show ip ospf database summary

彙總鏈路域間路由,能泛洪到整個AS;由ABR產生併發出,穿越一個ABR其Advertising Router就會變成此ABR的RID;包含本區域中的所有路由信息,包括網絡號和掩碼。路由表中用IA表示。

Link ID:路由(網絡號)     Advertising Router:ABR的RID(經過一個ABR,就會變爲這個ABR的RID)

LSA4 ASBR彙總LSA(ASBR Summary LSA):R1#show ip ospf database asbr-summary

把ASBR的RID傳播到其它區域,讓其它區域的路由器得知ASBR的位置;由ABR產生併發出,穿越一個ABR其Advertising Router就會變成此ABR的RID。在ASBR直連的區域內不會產生LAS4,因爲ASBR會發出LSA1,其中會指明自己是ASBR。與類型3的區別在於類型4描述到OSPF網絡的外部路由,而類型3描述區域內路由,這些鏈路信息不被擴散到完全末梢區域,路由表中用IA表示。

Link ID:ASBR的RID     Advertising Router:ABR的RID(經過一個ABR,就會變爲這個ABR的RID)

LSA5 自治系統外部LSA(Autonomous system external LSA):R1#show ip ospf database external

域外路由,不屬於某個區域;由ASBR產生並泛洪到整個AS,不會改變Advertising Router;包含域外的路由信息。除了末梢區域、完全末梢區域和次節末梢區域外,LSA5在整個AS中發送,路由表中用E1或E2表示。

Link ID:路由(網絡號)     Advertising Router:ASBR的RID(不改變)

metric-type:OSPF引入外部路由時,其路由器需要計算到達外部路由的花費。metric-type分爲type1和type2,默認爲type2。type1,計算的花費值就是到達ASBR的花費+LSA所攜帶的metric值,即度量值=數據報文所經過的各內部鏈路成本+被分配的外部路徑成本(type2的度量值);type2,計算的花費就是LSA所攜帶的metric值,即度量值=被分配的外部路徑成本。所以type1優於type2,推薦使用type1。

LSA6 組成員LSA(Group membership LSA):多播OSPF(MOSPF),MOSPF可以讓路由器利用鏈路狀態數據庫的信息構造用於多播報文的多播發布樹,目前不支持。

LSA7 NSSA外部LSA(NSSA External LSA):R1#show ip ospf database nssa-external

特殊的域外路由,只存在於NSSA區域中;由一個連接NSSA的ASBR產生的關於NSSA的信息,在NSSA內擴散,並且可以被ABR轉換爲LSA5。路由表中用N1或N2表示。

Link ID:路由(網絡號)     Advertising Router:ASBR的RID(只在NSSA區域中)

LSA8 BGP的外部屬性LSA(External attributes LSA for BGP)

LSA9 不透明LSA(本地鏈路範圍) (opaque LSA):目前主要用於MPLS多協議標籤交換協議

LSA10 不透明LSA(本地區域範圍) (opaque LSA):目前主要用於MPLS多協議標籤交換協議。

LSA11 不透明LSA(AS範圍) (opaque LSA):目前主要用於MPLS多協議標籤交換協議。

說明:重發布進OSPF的路由默認爲E2,Cost=20,且傳遞中不改變Cost值。如果改爲E1,則在傳遞過程中會累加每個入接口的Cost值。

總結:

OSPF理論

路由器收到LSA後的處理過程

1.如果有該LSA信息,查看序列號;如果序列號相同,忽略這條LSA;如果序列號大於本地的序列號,將其加到數

  據庫,並進行SPF,更新路由表;如果序列號小於本地的序列號,將一個包含自己的LSA新信息發送給發送方。

2.如果數據庫沒有該LSA信息,將其加到數據庫表,併發送一個ACK返回,並運行SPF,更新路由表。

 

OSPF裏的幾個特殊區域(stub、Totally stubby、NSSA、Totally NSSA)

首先:不論什麼特殊區域,其區域內的所有路由器都要設置成對應的末梢區域,否則鄰居down,因爲配置末梢區域的路由器上所有接口發出的Hello包中都會有末梢標籤。其次:對於所有末梢區域,ABR總是過濾掉LSA5。Totally區域裏ABR還將LSA3過濾掉,普通stub區域和NSSA區域會正常通行LSA3。

stub area

命令:區域內所有路由器上配置 R1(config-router)#area area_id stub

要求:不是主幹區域,本區域只有一個出口,無ASBR(除了ABR可能是ASBR),無虛鏈路經過,最好只有一個ABR

       (多個ABR可能導致次優路由)。

優點:減小拓撲表和路由表的大小。

特點:泛洪LSA1、LSA2、LSA3。沒有O E1、O E2、O N1、O N2類型的路由條目,ABR會自動向本區域發送一條指向

       自己的默認路由(O * IA)。如有需要可以在ABR上彙總一下本區域內的路由。

說明:當使用area 0 stub命令時,返回OSPF:backbone can not be configured as a stub area.說明Area 0不可配置爲末梢區域。

Totally stubby area

命令:區域內所有路由器上配置 R1(config-router)#area area_id stub;

       ABR上再配置 R1(config-router)#area area_id stub no-summary

要求:不是主幹區域,本區域只有一個出口,無ASBR(除了ABR可能是ASBR),無虛鏈路經過,最好只有一個ABR

       (多個ABR可能導致次優路由)。

優點:比stub更進一步減小拓撲表和路由表的大小。

特點:泛洪LSA1、LSA2。沒有O E1、O E2、O N1、O N2、O IA類型的路由條目(除了O * IA)。ABR會自動向區域

       內發送一條指向自己的默認路由。

末梢區域與完全末梢區域的區別:末梢區域允許AS外部的路由進入,而完全末梢區域卻不可以。也就是說完全末梢區域只是比末梢區域多隔離了LSA3,其它還是一樣的。

說明:只有Cisco支持完全末梢區域,其他產品不支持。

NSSA

命令:區域內所有路由器上配置 R1(config-router)#area area_id nssa

要求:不是主幹區域,無虛鏈路經過,最好只有一個ABR(多個ABR可能導致次優路由)。

優點:和stub一樣減小拓撲表和路由表的大小,還具備靈活性,ASBR可以接收外部路由。

特點:泛洪LSA1、LSA2、LSA3、LSA7。有所有類型的路由條目。即阻止LSA5發送進來的外部路由,但允許接收以

       LSA7發送進來的外部路由信息,並且ABR要負責把LSA7轉換爲LSA5。

說明:由於自身可以將外部網絡的路由重發布進OSPF進程,所以ABR不會自動向NSSA區域發送一條指向自己的默認路由。但可以手工在ABR上配置,向NSSA區域內發送默認路由,配置後會在ABR上產生一條LSA7的默認路由。

 R1(config-router)#default-information originate [always]。

Totally NSSA

命令:區域內所有路由器上配置 R1(config-router)#area area_id nssa;

       ABR上再配置 R1(config-router)#area area_id nssa no-summary

要求:不是主幹區域,無虛鏈路經過,最好只有一個ABR(多個ABR可能導致次優路由)。

優點:比NSSA更進一步減小拓撲表和路由表的大小。

特點:泛洪LSA1、LSA2、LSA7。沒有O E1、O E2、O IA類型的路由條目(除了O * IA)。ABR會過濾掉AS外部的路

       由LSA5和其他區域的路由LSA3進入本區域,但ASBR可以將外部路由LSA7從發佈進本區域。由於沒有去往

       其它區域的路由,ABR會自動向區域內發送一條指向自己的默認路由。

非純末梢區域與完全非純末梢區域的區別:非純末梢區域允許其它區域的路由進入,而完全非純末梢區域卻不可以。但完全非純末梢區域的ABR會自動向本區域內發送一條指向自己的默認路由。


OSPF理論 - 朝鮮程序員 - 朝鮮程序員的博客
 虛鏈路

虛鏈路是對於不連續區域提供到主幹區域的邏輯連續。所有OSPF區域必須和主幹區域直接相連,來交換區域間路由信息,但是有些區域無法與主幹直接相連,可以通過虛連接來實現這些區域和主幹區域的連接。如果配置了虛鏈路,應該僅僅把它用來作爲修復無法避免的網絡拓撲問題的臨時手段,不能作爲主要解決方法。虛鏈路可以看作是一個標明OSPF域的某個部分是否需要重新設計的標誌,要消除虛鏈路就要重新設計OSPF域的某個部分。值得注意的是虛電路傳送的LSA爲DNA,時間抑制、永不老化。

命令:R1(config-router)#area area_id virtual router_id   //router_id爲對端ABR的RID

說明:虛電路的Metric等同於所經過的全部鏈路開銷之和。

孤立區域的解決方法:

虛電路(虛電路穿過的區域一定是標準區域,標準區域一定是全路由的);

隧道(如果中間間隔區域爲末梢區域,只能用隧道解決);

多進程再發布。

配置虛鏈路的目的:

通過一個非主幹區域連接一個非主幹區域到主幹區域;

通過一個非主幹區域連接兩個分開的主幹區域部分。

配置虛鏈路規則:

虛鏈路必須配置在要穿過區域的兩臺ABR之間;

虛鏈路所經過的區域作爲傳送區域(Transit Area),必須擁有完整的路由信息,即不能是末梢區域。

配置虛鏈路的弊端:

建立虛鏈路使得連接虛鏈路的區域和Area 0之間的信息交換都要通過虛鏈路進行,要佔用大量帶寬;

建立虛鏈路後,在虛鏈路通過的區域中做策略時很容易出現問題,造成網絡不通;

虛鏈路通過的區域有很多限制,例如不能使用存根區域等。

說明:虛鏈路必須連接Area 0,Area 0不能配置爲末梢區域,所以在OSPF末梢區域中不能設置虛鏈路。當使用虛鏈路配置在一個末梢區域Area 1時,返回:area 1 is a stub or nssa so virtual link is are not allowed.因爲虛鏈路傳輸的LSA類型和標準區域是一樣的,假如在末梢區域配置虛鏈路,某些LSA就不能傳輸,所以不能配置虛鏈路。

 

OSPF報文

OSPF報頭:

OSPF Version,版本:OSPF的版本號。

Message Type,類型:OSPF數據包類型。

Packet Length,數據包長度:OSPF數據包的長度,包括數據包頭部的長度。

Source OSPF Router,路由器ID:,始發路由器的ID。

Area ID,區域ID:數據包的始發區域。

Packet Checksum,校驗和:對整個數據包的標準IP校驗和。

Auth Type,認證類型:認證模式,“0”表示不認證、“1”表示明文認證、“2”表示MD5認證。

Auth Date,身份認證:數據包認證的必要信息。

說明:OSPF在IP層上傳輸,協議號89,每個OSPF報文都有一個相同的OSPF頭部,然後是不同類型的OSPF報文。

Hello報文:通過多播地址224.0.0.5週期性地發送,來發現和維護鄰接關係。


Network Mask,網絡掩碼:發送Hello報文接口的子網掩碼。

Hello Interval,Hello間隔:發送方路由器連續兩次發送Hello數據包之間的秒數。

Options,可選項:表明本路由器支持哪些功能。

Router Priority,路由器優先級:選舉DR/DR時使用,是一串8位長的數字,默認值爲1。

Router Dead Interval,路由器Dead間隔:宣告鄰居路由器無效之前等待的最長時間。4倍於Hello報文間

     隔,鄰居之間的這些計時器必須設置一樣。

Designated Router/Backup Designated Router,DR/BDR:DR/BDR的RID(如果有的話)。

Active Neighbor,鄰居列表:列出相鄰OSPF路由器的RID。

Hello報文發送間隔:在點到點和廣播多路訪問型網絡中爲10秒,點到多點和非廣播多路訪問型網絡中爲30秒。

Hello報文所包含的內容:

OSPF理論
說明:“*”區域全部匹配才能建立鄰居關係;鄰居關係是full狀態,而鄰接關係是處於2-way狀態。

Hello報文的處理過程:

DD報文 (Database Description,數據庫描述):

只包含LSA頭部信息,描述本路由器保存的LSDB。且只在初始化時產生,僅在形成鄰接關係的路由器間傳遞。

空DD報文:

I=1:這是第一個DD報文。

M=1:後邊還有DD報文,說明這不是最後一個DD報文。

MS=1:宣稱自己是Master。 /MS=0:自己是Slave。

包含有LSA頭部信息的DD報文:

包含發送方路由器的鏈路狀態數據庫的簡略列表,接收方路由器使用本數據包與其本地鏈路狀態數據庫對比。

OSPF理論
說明:DD報文有兩種,一種是空DD報文,用來確定Master/Slave關係(避免DD報文的無序發送)。另一種是包含有LSA頭部信息的DD報文(確定M/S關係後,才發送有路由信息的DD報文),收到有路由信息的DD報文後,比較自己的數據庫,發現對方的數據庫中有自己需要的數據,則向對方發送LSR報文,請求對方給自己發送數據。

LSR報文 (Link-State Request,鏈路狀態請求):

向鄰居請求DD數據包中的或者本地已經過時的部分或全部LSA。

OSPF理論

LSU報文 (Link-State Update,鏈路狀態更新):

向鄰居發送其請求或更新的LSA。LSU包含7種類型的LSA。

LSAck報文 (Link-State Acknowledgement,鏈路狀態確認):

收到鄰居發送的LSA後發送的確認報文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章