OSPF 學習筆記

OSPF

clip_image003

 

路由優先級缺省:

OSPF內部:10

靜態:60

OSPF外部(O_ASE):150

BGP255

OSPF基本概念與特點

Open Shortest Path First,基於SPF算法的鏈路狀態的內部網關協議

clip_image001[82]  適應範圍廣:支持各種規模的網絡,最多可支持幾百臺路由器。

clip_image001[83]  快速收斂:在網絡的拓撲結構發生變化後立即發送更新報文,使這一變化在自治系統中同步。

clip_image001[84]  無自環:由於OSPF根據收集到的鏈路狀態用最短路徑樹算法計算路由,從算法本身保證了不會生成自環路由。

clip_image001[85]  區域劃分:允許自治系統的網絡被劃分成區域來管理。路由器鏈路狀態數據庫的減小降低了內存的消耗和CPU的負擔;區域間傳送路由信息的減少降低了網絡帶寬的佔用。

clip_image001[86]  等價路由:支持到同一目的地址的多條等價路由。

clip_image001[87]  路由分級:使用4類不同的路由,按優先順序來說分別是:區域內路由、區域間路由、第一類外部路由、第二類外部路由。

clip_image001[88]  支持驗證:支持基於區域和接口的報文驗證,以保證報文交互和路由計算的安全性。

clip_image001[89]  組播發送:在某些類型的鏈路上以組播地址發送協議報文,減少對其他設備的干擾。

OSPF報文類型(IP協議,89

OSPF報文頭部信息,所有的OSPF報文使用相同的OSPF報文頭部

Version :OSPF協議號,應當被設置成2

Type:OSPF報文類型,OSPF共有五種報文。

Packet length:OSPF報文總長度,包括報文頭部。單位是字節。

Router ID:生成此報文的路由器的Router ID。

Area ID:此報文需要被通告到的區域。

Checksum:是指一個對整個數據包(包括包頭)的標準IP校驗和。

AuType:驗證此報文所應當使用的驗證方法。

Authentication:驗證此報文時所需要的密碼等信息。

clip_image011

1.    Hello報文

週期性發送,用來發現和維持OSPF鄰居關係,以及進行DR(Designated Router,指定路由器)/BDR(Backup Designated Router,備份指定路由器)的選舉。

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

²  HelloInterval:發送Hello報文的時間間隔。單位爲秒(缺省P2PBroadcast類型接口發送Hello報文的時間間隔爲10秒,P2MPNBMA類型接口發送Hello報文的時間間隔爲30)。

²  Options:標識發送此報文的OSPF路由器所支持的可選功能。主要爲E,是否洪泛AS-external-LSAN/P,處理7LSA(詳見RFC 2382附錄A.2

clip_image013

²  Rtr Pri:發送Hello報文的接口的Router Priority,用於選舉DRBDR

²  RouterDeadInterval:宣告鄰居路由器不繼續在該網段上運行OSPF的時間間隔,單位爲秒,通常爲四倍HelloInterval

²  Designated Router:發送Hello報文的路由器所選舉出的DRIP地址。如果設置爲0.0.0.0,表示未選舉DR

²  Backup Designated Router:發送Hello報文的路由器所選舉出的BDRIP地址。如果設置爲0.0.0.0,表示未選舉BDR路由器。

²  Neighbor:鄰居路由器的Router ID列表。表示本路由器已經從該鄰居收到合法的Hello報文。

NBMA或廣播網絡纔有DR/BDR字段,其餘類型該字段值爲0

clip_image015

2.    DDDatabase Description,數據庫描述)報文

描述了本地LSDB(Link State DataBase,鏈路狀態數據庫)中每一條LSA(Link State Advertisement,鏈路狀態通告)的摘要信息,用於兩臺路由器進行數據庫同步。

²  接口MTU:是指在數據包不分段的情況下,始發路由器接口可以發送的最大IP數據包大小。當在虛連接時,該在段爲0x0000

²  Option:同hello報文。

clip_image017

²  I:當發送的是一系列DD報文中的第一個數據包時,該爲置位爲1。後續的DD報文將該位置位0

²  M:當發送的數據包還不是一個系列DD報文中的最後一個數據包時,該爲置爲1。如果是最後一個DD報文,則將該爲置爲0

²  MS:在數據庫同步中,主要用來確認協商過程中的序列號。

²  DD Sequence Number:DD的序列號報文。

²  LSA頭部信息

DD初始交互時(exstart)沒有攜帶LSA頭部信息

clip_image019

clip_image021

3.    LSRLink State Request,鏈路狀態請求)報文

向對方請求所需的LSA。兩臺路由器互相交換DD報文之後,得知對端的路由器有哪些LSA是本地的LSDB所缺少的,這時需要發送LSR報文向對方請求所需的LSA。

²  Link State Type:用來指明LSA標識是一個路由器LSA、一個網絡LSA還是其他類型的LSA

²  Link State ID:不同類型LSA該字段意義不同。

²  Advertising Router:始發LSA通告的路由器的路由器ID

請求的LSALSA類型、鏈路狀態標識和通告路由器組成。

LSR的目的IPP2P類型爲224.0.0.5,廣播網絡/NBMA類型是單播IP

clip_image023

clip_image025

此時,OSPF剛建立,只請求DD階段交互的LSAOSPF FULL後還會update路由信息,但不會有新的LSR

4.    LSULink State Update,鏈路狀態更新)報文

向對方發送其所需要的LSA。LSU必須被LSAck確認,可以一個ack包確認多個或者隱式確認(發送相同的LSU,如廣播鏈路DRother發送LSU給DR,DR需要把這個洪泛給其他DRother,該DRother收到LSU後即算確認)

²  Number of LSA:指出這個數據包中包含的LSA的數量。

²  LSA:明細LSA信息

clip_image027

5.    LSAckLink State Acknowledgment,鏈路狀態確認)報文

用來對收到的LSA進行確認。

²  Header of LSALSA頭部信息。

LSAck包可能發送到多播地址AllSPFRoutersAllDRouters或者使用單播

clip_image029

LSA類型

LSA頭部信息,除Hello報文外,其它的OSPF報文都攜帶LSA信息。(DD 初始報文(exstart主從協商)也沒有攜帶)

l  LS age:此字段表示LSA已經生存的時間,單位是秒。

l  Option:該字段指出了部分OSPF域中LSA能夠支持的可選性能

l  LS type:此字段標識了LSA的格式和功能。常用的LSA類型有五種。

l  Link State ID:根據LSA的不同而不同。

l  Advertising Router:始發LSA的路由器的ID

l  Sequence Number:當LSA每次新的實例產生時,這個序列號就會增加。這個更新可以幫助其他路由器識別最新的LSA實例。

l  Checksum:關於LSA的全部信息的校驗和。因爲Age字段,所以校驗和會隨着老化時間的增大而每次都需要重新進行計算。

l  Length:是一個包含LSA頭部在內的LSA的長度。

clip_image031

DD報文只有LSA頭部(除初始報文外(exstart主從協商),初始報文沒有LSA信息)

1.    Router-LSAType1

路由器產生,描述了路由器的鏈路狀態和開銷,本區域內傳播,Router-LSA必須描述始發路由器所有接口或鏈路。

l  Link State ID:是指始發路由器的路由器ID

l  V:設置爲1時,說明始發路由器是一條或者多條具有完全鄰接關係的虛鏈路的一個端點。

l  E:當始發路由器是一個ASBR路由器時,該爲置爲1

l  B:當始發路由器是一個ABR路由器時,該爲置爲1

l  Number of links:表明一個LSA所描述的路由器鏈路數量。

l  Link Type:置爲1表示點到點連接一臺設備;置爲2表示連接一個transit網絡,可以理解爲廣播網絡;置爲3表示連接subnet網絡,一般該地址爲環回口地址;置爲4表示虛鏈路。

l  Link IDLink Type置爲1表示鄰居路由器的路由器IDLink Type置爲2表示DR路由器的接口的IP地址;Link Type置爲3表示IP網絡或子網地址;Link Type置爲4鄰居路由器的路由器ID

l  Link DataLink Type置爲1表示和網絡相連的始發路由器接口的IP地址;Link Type置爲2表示和網絡相連的始發路由器接口的IP地址;Link Type置爲3網絡的IP地址或子網掩碼。

l  ToS,暫不支持。

l  Metric:是指一條鏈路或接口的代價。

clip_image033

2.    Network-LSAType2

DR產生,描述本網段的鏈路狀態,本區域內傳播

l  Link State ID:是指DR路由器接口上的地址。(LSA頭部)

l  Network Mask:指定這個網絡上使用的地址或者子網的掩碼。

l  Attached router:列出該多路訪問網絡上與DR形成完全鄰接關係且包括DR本身的所有路由器的路由器ID

clip_image035

3.    Network-summary-LSAType3

ABR產生,描述區域內某個網段的路由,區域間傳播(除特殊區域)

l  Link State ID:對於3LSA來說,表示所通告的網絡或子網的IP地址。對於4LSA來說表示所通告的ASBR路由器的路由器ID。(LSA頭部)

l  Network Mask:對於3LSA來說,表示所通告的網絡的子網掩碼或者地址。對於4LSA來說,該字段沒有實際意義,一般置爲0.0.0.0

l  Metric:直到目的地址的路由的代價。

clip_image037

4.    ASBR-summary-LSAType4

ABR產生,描述到ASBR的路由,OSPF域內傳播(除特殊區域)

l  Link State ID:對於3LSA來說,表示所通告的網絡或子網的IP地址。對於4LSA來說表示所通告的ASBR路由器的路由器ID

l  Network Mask:對於3LSA來說,表示所通告的網絡的子網掩碼或者地址。對於4LSA來說,該字段沒有實際意義,一般置爲0.0.0.0

l  Metric:直到目的地址的路由的代價。

clip_image039

5.    AS-external-LSAType5

ASBR產生,描述到AS外部的路由,OSPF域內傳播(除特殊區域)

l  Link State ID:目的地的IP地址。

l  Network Mask:指所通告的目的地的子網掩碼或地址。

l  E:用來指定這條路由使用的外部度量的類型。如果該E bit設置爲1,那麼度量類型就是E2;如果該E bit設置爲0,那麼度量類型就是E1

l  Metric:指路由的代價。由ASBR設定。

l  Forwarding Address:是指到達所通告的目的地的數據包應該被轉發到的地址。如果轉發地址是0.0.0.0,那麼數據包將被轉發到始發ASBR上。

l  External Route Tag:標記外部路由。

clip_image041

clip_image043

根據RFC2382,需要在區域內或區域間有下一跳的路由!

clip_image045

clip_image047

6.    NSSA LSAType7

由ASBR產生,描述到AS外部的路由,僅在NSSA區域內傳播。

Forwarding Address:如果網絡一臺NSSA ASBR路由器和鄰接的自治系統之間是作爲一條內部路由通告的,那麼這個FA就是這個網絡的下一跳地址。如果網絡不是作爲一個條內部路由通告的,那麼這個FA地址將是NSSA ASBR路由器的路由器ID。

l  7LSA是爲了支持NSSA區域而新增的一種LSA類型,用於描述引入的外部路由信息。

l  7LSANSSA區域的自治域邊界路由器(ASBR)產生,其擴散範圍僅限於邊界路由器所在的NSSA區域。

l  NSSA區域的區域邊界路由器(ABR)收到7LSA時,會有選擇地將其轉化爲5LSA,以便將外部路由信息通告到OSPF網絡的其它區域。

l  缺省路由也可以通過7LSA來表示,用於指導流量流向其它自治域。

clip_image049

 

clip_image051

7.    Opaque LSA Type9/Type10/Type11

Opaque LSA提供用於OSPF的擴展的通用機制。其中:

l  Type9 LSA 僅在接口所在網段範圍內傳播。用於支持 GR Grace LSA 就是 Type9 LSA 的一種。

l  Type10 LSA 在區域內傳播。用於支持 TE LSA 就是 Type10LSA 的一種。

l  Type11 LSA 在自治域內傳播,目前還沒有實際應用的例子

區域類型

所有其他區域必須與區域0相連

拓撲所體現的IS-IS與OSPF不同點:

l  OSPF中,每個鏈路只屬於一個區域;而在IS-IS中,每個鏈路可以屬於不同的區域;

l  IS-IS中,單個區域沒有骨幹與非骨幹區域的概念;而在OSPF中,Area0被定義爲骨幹區域;

l  IS-IS中,Level-1Level-2級別的路由都採用SPF算法,分別生成最短路徑樹SPT而在OSPF中,只有在同一個區域內才使用SPF算法,區域之間的路由需要通過骨幹區域來轉發。

1.    普通區域

缺省情況下, OSPF區域被定義爲普通區域。普通區域包括標準區域和骨幹區域。

l  標準區域是最通用的區域,它傳輸區域內路由,區域間路由和外部路由。

l  骨幹區域是連接所有其他 OSPF 區域的中央區域。骨幹區域通常用Area 0 表示。

2.    STUB區域

不允許發佈自治系統外部路由,只允許發佈區域內路由和區域間的路由。在STUB區域中,路由器的路由表規模和路由信息傳遞的數量都會大大減少。爲了保證到自治系統外的路由可達,由該區域的ABR發佈Type3缺省路由傳播到區域內,所有到自治系統外部的路由都必須通過ABR才能發佈。

l  骨幹區域不能配置成Stub區域。

l  如果要將一個區域配置成Stub區域,則該區域中的所有路由器都要配置Stub區域屬性。

l  Stub區域內不能存在ASBR,即自治系統外部的路由不能在本區域內傳播。

l  虛連接不能穿過Stub區域。

l  Stub區域不允許自治系統外部的路由(Type5 LSA)在區域內傳播。

l  區域內的路由器必須通過ABR學到自治系統外部的路由。實現方法是ABR會自動產生一條缺省的Summary LSAType3 LSA)通告到整個Stub區域內。這樣,到達自治系統的外部路由就可以通過ABR到達。

3.    Totally STUB區域

不允許發佈自治系統外部路由和區域間的路由,只允許發佈區域內路由。在Totally STUB區域中,路由器的路由表規模和路由信息傳遞的數量都會大大減少。爲了保證到自治系統外的路由可達,由該區域的ABR發佈Type3缺省路由傳播到區域內,所有到自治系統外部的路由都必須通過ABR才能發佈。

l  Totally Stub區域既不允許自治系統外部的路由(Type5 LSA)在區域內傳播,也不允許區域間路由(Type3 LSA)在區域內傳播。

l  區域內的路由器必須通過ABR學到自治系統外部和其他區域的路由。

l  ABR會自動產生一條缺省的Summary LSA(Type3 LSA)通告到整個Stub區域內。

4.    NSSA區域

NSSA區域允許引入自治系統外部路由,由ASBR發佈Type7 LSA通告給本區域,這些Type7 LSA在ABR上轉換成Type5 LSA,並且泛洪到整個OSPF域中NSSA區域同時保留自治系統內的STUB區域的特徵。該區域的ABR發佈Type3缺省路由傳播到區域內,所有域間路由都必須通過ABR才能發佈

爲了將NSSA區域引入的外部路由發佈到其它區域,需要把Type-7 LSA轉化爲Type-5 LSA以便在整個OSPF網絡中通告。

l  option字段P用於告知轉化路由器該條7類LSA是否需要轉化。

l  進行轉化的是NSSA區域中Router ID最大的區域邊界路由器(ABR)。

l  只有P置位並且Forwarding Address不爲0的Type-7 LSA才能轉化爲Type-5 LSA。Forwarding Address用來表示發送的某個目的地址的報文將被轉發到Forwarding Address所指定的地址。

l  滿足以上條件的缺省7類LSA也可以被轉化。

l  區域邊界路由器產生的7類LSA不會置位P-bit。

注意事項

Ø  NSSA區域中,可能同時存在多個邊界路由器。爲了防止路由環路產生,邊界路由器之間不計算對方發佈的缺省路由。

5.    Totally NSSA區域

Totally NSSA區域允許引入自治系統外部路由,由ASBR發佈Type7 LSA通告給本區域,這些Type7 LSA在ABR上轉換成Type5 LSA,並且泛洪到整個OSPF域中。Totally NSSA區域同時保留自治系統內的Totally STUB Area區域的特徵。該區域的ABR發佈Type3缺省路由傳播到區域內,所有域間路由都必須通過ABR才能發佈。

NSSATotally NSSA

l  NSSA區域允許引入少量通過本區域的ASBR到達的外部路由,但不允許其他區域的外部路由ASE LSAType5 LSA)在區域內傳播。即到達自治系統外部的路由只能通過本區域的ASBR到達。

l  Totally NSSA區域既不允許其他區域的外部路由ASE LSAType5 LSA)在區域內傳播,也不允許區域間路由(Type3 LSA)在區域內傳播。

6.    OSPF NSSA缺省路由

NSSA區域內存在兩種缺省路由,由ASBR產生的第七類缺省路由和ABR產生的第三類缺省路由(完全NSSA區域)。

 

路由器類型

1.        區域內路由器(Internal Router:該類設備的所有接口都屬於同一個OSPF區域。

2.        區域邊界路由器ABRArea Border Router:該類路由器可以同時屬於兩個以上的區域,但其中一個接口必須在骨幹區域。ABR用來連接骨幹區域和非骨幹區域,它與骨幹區域之間既可以是物理連接,也可以是邏輯上的連接。

3.        骨幹路由器(Backbone Router:該類路由器至少有一個接口屬於骨幹區域。所有的ABR和位於Area0的內部路由器都是骨幹路由器。

4.        自治系統邊界路由器ASBRAS Boundary Router:與其他AS交換路由信息的路由器稱爲ASBRASBR並不一定位於AS的邊界,它可能是區域內路由器,也可能是ABR只要一臺OSPF路由器引入了外部路由的信息,它就成爲ASBR(外部路由只能由ASBR彙總)

網絡類型

1.    廣播類型( Broadcast

當鏈路層協議是Ethernet、 FDDI時,缺省情況下, OSPF認爲網絡類型是Broadcast

在該類型的網絡中:

l  通常以組播形式發送 Hello 報文、LSU 報文和 LSAck 報文。其中,224.0.0.5 的組播地址爲 OSPF 設備的預留 IP 組播地址; 224.0.0.6的組播地址爲 OSPF DR/BDR 的預留 IP 組播地址。

l  以單播形式發送 DD 報文和 LSR 報文。

2.    NBMA類型( Non-Broadcast Multi-Acess

當鏈路層協議是幀中繼、 X.25時,缺省情況下, OSPF認爲網絡類型是NBMA。在該類型的網絡中,以單播形式發送協議報文( Hello報文、 DD報文、LSR報文、 LSU報文、 LSAck報文)。

3.    點到多點P2MP類型( Point-to-Multipoint

沒有一種鏈路層協議會被缺省的認爲是Point-to-Multipoint類型。點到多點必須是由其他的網絡類型強制更改的。常用做法是將非全連通的NBMA改爲點到多點的網絡

在該類型的網絡中:

l  以組播形式( 224.0.0.5)發送 Hello 報文。

l  以單播形式發送其他協議報文( DD 報文、 LSR 報文、 LSU 報文、LSAck 報文)。

4.    點到點P2P類型( point-to-point

當鏈路層協議是PPP、 HDLC和LAPB時,缺省情況下, OSPF認爲網絡類型是P2P

在該類型的網絡中,以組播形式( 224.0.0.5)發送協議報文( Hello報文、 DD報文、 LSR報文、 LSU報文、 LSAck報文)。

5.    DR/BDRNBMA或廣播網絡)

l  減少鄰居關係的數量,從而減少鏈路狀態信息和路由信息的次數。Drother只與DR/BDR建立完全鄰接關係。DRBDR之間建立完全鄰接關係。

l  DR產生網絡LSA來描述NBMA網段或者廣播網段信息。

DR/BDR選舉規則

DR/BDR由OSPF的Hello協議選舉,選舉是根據端口的路由器優先級(Router Priority)進行的。

1.        如果Router Priority被設置爲0,那麼該路由器將不允許被選舉成DR或者BDR

2.        Router Priority越大越優先。如果相同,Router ID大者優先。

3.        DR/BDR不能搶佔。

4.        如果當前DR故障,當前BDR自動成爲新的DR,網絡中重新選舉BDR;如果當前BDR故障,則DR不變,重新選舉BDR

路由類型

1.    Intra Area

區域內路由

2.    Inter Area

區域間路由

3.    第一類外部路由( Type1 External

這類路由的可信程度高一些,所以計算出的外部路由的開銷與自治系統內部的路由開銷是相當的,並且和OSPF自身路由的開銷具有可比性。

到第一類外部路由的開銷=本設備到相應的ASBR的開銷+ASBR到該路由目的地址的開銷

4.    第二類外部路由( Type2 External

      這類路由的可信度比較低,所以OSPF協議認爲從ASBR到自治系統之外的開銷遠遠大於在自治系統之內到達ASBR的開銷。所以, OSPF計算路由開銷時只考慮ASBR到自治系統之外的開銷,即到第二類外部路由的開銷=ASBR到該路由目的地址的開銷。

Option字段

l  Option可選字段出現在每一個Hello數據包、DD和每個LSA中的。

l  Option字段允許路由器和其他路由器進行一些可選性能的通信。

Option字段包含信息

clip_image053

Option字段解釋:

l  DN:用來避免在MPLS ***中出現環路。當3類、5類和7LSA中設置了DN位之後,接收路由器就不能夠在它的OSPF路由計算中使用該LSA

l  O:該字段指出始發路由器支持Opaque LSA(類型9、類型10和類型11)。

l  DC位:當始發路由器支持按需鏈路上的OSPF的能力時,該位將被設置。

l  EA:當始發路由器具有接收和轉發外部屬性LSA的能力時,該位被置位。

l  N位:只在Hello數據包中。N=1表明路由器支持7LSAN=0表明該路由器將不接收和發送NSSA LSA

l  P位:只用在NSSA LSA。該位將告訴一個非純末節區域中的ABR路由器將7LSA轉換爲5LSA

l  MC位:支持MOSPF

l  E位:當始發路由器具有接收OSPF域外部LSA的能力時,該位置位。在所有5LSA和始發於骨幹區域以及非末節區域的LSA中,該位置爲1。而始發與末節區域的LSA中,該位置爲0。如果Hello報文中該位表明一個接口具有接收和發送5LSA的能力。

l  MT位:表示始發路由器支持多拓撲OSPF

缺省路由

clip_image055

普通區域可以通過default-route-advertise [always]主動生成缺省路由(5類)

R2路由與LSA:

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_ASE2  150 1           23.1.1.3        GE0/1

                 AS External Database

 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric

 External  0.0.0.0         6.6.6.6         106  36    80000001  1

Stub區域與完全stub區域,該區域的ABR生成一條缺省路由0.0.0.0 傳播到區域內(3類).

R4路由與LSA:

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_INTER 10  3           34.1.1.3        GE0/0

Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric

Router    4.4.4.4         4.4.4.4         474  60    80000002  0

Sum-Net   0.0.0.0         2.2.2.2         502  28    80000001  1

NSSA區域,ABR不會生成缺省路由0.0.0.0,可以手動在ABRnssa default-route-advertise將在整個NSSA區域內通告缺省路由0.0.0.07類),設備上不需要有缺省路由,如需通過ASBR生成缺省路由,命令相同,但需要設備上有缺省路由。缺省路由只是在本NSSA區域內泛洪。因此NSSA不能作爲整個OSPF的缺省出口

在ABR(R2)上的nssa區域(Area2)配置nssa default-route-advertise

R3上路由與LSA:

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_NSSA2 150 1           23.1.1.2        GE0/0

Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric

NSSA      0.0.0.0         2.2.2.2         272  36    80000001  1

在ASBR(R4)上的nssa區域(Area2)配置nssa default-route-advertise

R3上路由與LSA:

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_NSSA2 150 1           34.1.1.4        GE0/1

Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric

NSSA      0.0.0.0         4.4.4.4         57   36    80000002  1

如果ABR(R2)ASBRR4)同時配置nssa default-route-advertiseR3上將會有全0的等價路由。

R3路由與LSA:

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_NSSA2 150 1           23.1.1.2        GE0/0

                                           34.1.1.4        GE0/1

Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric

NSSA      0.0.0.0         2.2.2.2         137  36    80000001  1

 NSSA      0.0.0.0         4.4.4.4         319  36    80000002  1

完全NSSA區域,區域ABR上會產生一條缺省路由0.0.0.0,通告給整個完全NSSA區域3類),

R3路由與LSA:

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_INTER 10  2           23.1.1.2        GE0/0

Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric

Sum-Net   0.0.0.0         2.2.2.2         160  28    80000001  1

如果在ABR上配置了nssa default-route-advertise ,將會同時產生一條第七類缺省路由LSA和一條第三類缺省路由LSA。對於NSSA中的其他路由器來說,將會優選第三類的缺省路由。

R3路由與LSA:

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          O_INTER 10  2           23.1.1.2        GE0/0

Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric

Sum-Net   0.0.0.0         2.2.2.2         24   28    80000001  1

 NSSA      0.0.0.0         2.2.2.2         14   36    80000001  1

如果在完全NSSA區域的ASBR配置了nssa default-route-advertise,將有可能引起NSSA區域內路由環路,R3的缺省路由指向R2,R2的缺省路由指向R3

對於R2,它會同時收到ABR發佈的第三類缺省路由和ASBR發佈的第七類缺省路由,因此它會選擇第三類缺省路由加入它的路由表,所以RTB的路由表中缺省路由0.0.0.0的下一跳指向ABR

對於ABR來說,由於ABR會接收ASBR發佈的第七類缺省路由,所以它會把第七類的缺省路由加入自己的路由表中,ABR到ASBR的下一跳是R3,因此ABR的路由表中缺省路由0.0.0.0的下一跳指向RTB;

這樣在ABR和RTB之間就存在一條由缺省路由0.0.0.0產生的環路,導致ABR和RTB到外部區域的數據均不能正確轉發。

總結:

傳播區域

l  在普通區域ASBR上配置產生的是第五類缺省路由,傳播的區域是整個的ospf域;

l  NSSA區域配置產生的是第七類或第三類缺省路由,傳播的區域是整個NSSA區域。

發佈缺省路由條件:

l  普通區域:不論是在ABR或是ASBR上配置default-route-advertise命令時,都需要在本路由器上已存在一條其他路由協議產生或靜態配置的缺省路由時,纔會發佈第五類缺省路由。如果使用always關鍵字,則無論ABRASBR上是否有缺省路由都會向整個ospf域發佈缺省路由。

l  Stub區域與完全stub區域,該區域的ABR生成一條缺省路由0.0.0.0 傳播到區域內(3類)。

l  NSSA區域:如果在ASBR上使用nssa default-route-advertise命令,則同樣需要在本路由器上已存在一條其他路由協議產生或靜態配置的缺省路由時,纔會發佈第七類缺省路由;如果在ABR上使用nssa default-route-advertise命令,則不論是否存在其他路由協議產生或靜態配置的缺省路由,都會發布第七類缺省路由。

l  完全NSSA區域的ABR要發佈第三類缺省路由,首先必須存在至少一個骨幹區域的full鄰居。滿足存在骨幹區域full鄰居的條件之後,完全NSSA區域的ABR會自動產生一條第三類的缺省路由。

路由器對於兩類缺省路由的處理

l  普通區域:如果ABRASBR自己發佈了第五類缺省路由,則它就不會再接受別的路由器發佈的第五類缺省路由。在區域的lsdb中,可以存在多個第五類缺省路由LSA。如果普通區域中的路由器自己沒有發佈第五類缺省路由,則它會從其他路由器發佈的多個第五類缺省路由中選擇一個最優的加入路由表。

l  NSSA區域:在NSSA區域中的普通路由器(非ABRASBR)如果同時收到第三類缺省路由和第七類缺省路由,將會優選第三類缺省路由加入路由表。

l  NSSA區域:當ABR發佈第三類缺省路由,同時ASBR發佈第七類缺省路由時,ABR也會學習ASBR發佈的缺省路由。這種情況下NSSA區域有可能出現路由環路。

l  另外如果NSSA區域中多臺非ABRASBR同時配置nssa default-route-advertise,它們是否會發布第七類缺省路由則依賴於原來路由表中其他路由協議或靜態配置的缺省路由的preference值。如果所有ASBR的路由表中缺省路由的preference值都大於150,這時只會有一個ASBR會發布第七類缺省路由,其它的ASBR都學習該ASBR發佈的第七類缺省路由,區域的lsdb中只會有一條七類缺省路由的LSA;如果有一部分ASBR的路由表中preference值小於150,那麼這些ASBR都會發布第七類缺省路由,並且自己的路由表中的缺省路由不會被其他的ASBR發佈的第七類缺省路由更新(路由表優選preference值小的路由加入),其它那些路由表中原來缺省路由preference值大於150ASBR都不會發布第七類缺省路由,它們只接受其它ASBR發佈的缺省路由,並且將該路由加入路由表,此時區域的lsdb中可以有多條七類缺省路由的LSA

完全NSSA區域路由環路

如果在完全NSSA區域的ASBR配置了nssa default-route-advertise,將有可能引起NSSA區域內路由環路,區域內的路由器會選擇ABR的三類缺省路由,ABR會選擇ASBR的7類缺省路由,導致ABR與區域內路由器環路。

clip_image057

Forwarding Address

ASBR以5了或7類LSA引入外部路由時,設定FA來標明正確的AS出口位置。

RFC規定的操作:

l  如果LSA描述的目標網絡爲NN的地址通過LSALS IDLSA體中的網絡掩碼計算而來。在路由表中查找生成該LSAASBR。如果不存在該ASBR的表項(比如ASBR不可達),那麼對該LSA不做操作。

l  否則,該LSA就描述了到達AS外部網絡N的路徑。檢查AS-external-LSA中的‘轉發地址’,這個地址就是發往該目標網絡N的數據包應該被送達的地址。

l  如果轉發地址被設爲0.0.0.0,包應當被轉發到ASBR。……..

l  如果轉發地址不是零,那麼在路由表中查找FA匹配FA的路由表項必須是區域內或區域間路徑,如果沒有符合條件的表項存在,那麼對該LSA不做操作。

l  RFC中規定,當收到5LSA並做路由計算時,要求首先看引入該5LSAASBR是否路由可達,否則就不對該LSA做處理。FA0時,存在類似的問題,需要查找覆蓋FA的區域內或者區域間路由,如果存在才進行處理。

CMW是H3C網絡產品使用的操作系統,CMW對FA的填寫作了如下規定:

l  OSPFASBR的下一跳接口啓用;

l  ASBR的下一跳接口沒有被設置爲被動接口;

l  ASBR的下一跳接口不是OSPF P2PP2MP類型的;

l  ASBR的下一跳接口地址是落在OSPF協議中發佈的網絡範圍之內;

l  除此之外,其它情況FA都填爲0.0.0.0

思科參考The Effects of the FOrwarding Address on Type 5 LSA Path Selection(轉發地址對類型 5 LSA 路徑選擇的影響)及Common ROuting Problem with OSPF Forwarding Address(與 OSPF 轉發地址有關的常見路由問題).

l  如果 ASBR 重分配路由且在這些路由的下一跳接口上未啓用 OSPF,則轉發地址設置爲 0.0.0.0

l  在下列條件下,轉發地址字段將設置爲非零地址:

n  ASBR 的下一跳接口上啓用了 OSPF,並且

n  ASBR 的下一跳接口在 OSPF 下是非被動的,並且

n  ASBR 的下一跳接口並非 是點對點的,並且

n  ASBR 的下一跳接口並非 是點到多點的,並且

n  ASBR 的下一跳接口地址屬於在 router ospf 命令中指定的網絡範圍。

n  在除以上條件之外的任何其他條件下,轉發地址均設置爲 0.0.0.0

Router ID

1.      如果有Loopback接口配置了,就選IP地址數值最大的Loopback地址;

2.      如果沒有配置Loopback接口地址,就選IP地址數值最大的物理接口地址.

3.      如果當前OSPF進程正在運行,Router ID即使是重新手工配置或計算都不會馬上生效,而需要OSPF進程重新啓動纔會生效

4.      爲什麼新路由器啓動後我不能配置OSPF? 因爲OSPF運行是需要一個確定的Router ID作爲路由器標誌的,這個東西對於OSPF來說非常重要,OSPF的各類協議報文中都要用到.所以,要麼你在OSPF中明確指定Router ID

路由彙總

外部 OSPF 路由只能由 ASBR 進行彙總

路由優選

OSPF路由的優先級從高到低的次序是:Intra-Area>Inter-Area>Type 5 AS-External>Type 7 AS-External.在這種情況下,應該優先的是Type 5路由.注意,對代表同一子網的路由來說,首先比較的是路由優先級纔是總的cost.

RFC 1583 compatible

RFC2328在選路時,不是最優先考慮COST的,是要考慮路由的類型及區域的類型的,比如它認爲經過經過普通區域的路由好於經過骨幹區域的路由。

(1)當RFC 2328兼容RFC 1583時,所有到達ASBR的路由優先級相同(引入的路由按開銷大小比較)。當RFC 2328不兼容RFC 1583時,非骨幹區的區域內路由優先級最高,區域間路由與骨幹區區域內路由優先級相同,優選非骨幹區的區域內路由,儘量減少骨幹區的負擔;

(2)若存在多條優先級相同的路由時,按開銷值優選,優選開銷值小的路由;

(3)若存在多條開銷值相同路由時,按路由來源區域的區域ID選擇,優選區域ID大的路由。

OSPF基本原理

鄰居狀態機

OSPF 共有 8 種狀態機,分別是: Down、 Attempt、 Init、 2-way、 Exstart、 Exchange、 Loading、 Full。

l  Down:鄰居會話的初始階段,表明沒有在鄰居失效時間間隔內收到來自鄰居路由器的 Hello數據包。

l  Attempt:該狀態僅發生在 NBMA 網絡中,表明對端在鄰居失效時間間隔( dead interval)超時後仍然沒有回覆 Hello 報文。此時路由器依然每發送輪詢 Hello 報文的時間間隔( poll interval)向對端發送 Hello 報文。

l  Init:收到 Hello 報文後狀態爲 Init

l  2-way:收到的 Hello 報文中包含有自己的 Router ID,則狀態爲 2-way;如果不形成鄰接關係則鄰居狀態機就停留在此狀態,否則進入 Exstart 狀態。

l  Exstart:如果形成鄰居關係,則從 Init 狀態轉到 Exstart 狀態,開始協商主從關係,並確定 DD的序列號。

l  Exchange:主從關係協商完畢後開始交換 DD 報文,此時狀態爲 Exchange

l  Loading DD 報文交換完成即 Exchange done,此時狀態爲 Loading

l  Full LSR 重傳列表爲空,此時狀態爲 Full

鄰居關係建立

clip_image059

l  Down:這是鄰居的初始狀態,表示沒有從鄰居收到任何信息。

l  Init:在此狀態下,路由器已經從鄰居收到了Hello報文,但是自己不在所收到的Hello報文的鄰居列表中,表示尚未與鄰居建立雙向通信關係。在此狀態下的鄰居要被包含在自己所發送的Hello報文的鄰居列表中。

l  2-Way:在此狀態下,雙向通信已經建立,但是沒有與鄰居建立鄰接關係。這是建立鄰接關係以前的最高級狀態。如果網絡爲廣播網絡或者NBMA網絡則選舉DR/BDR

在形成鄰居關係過程中,需要對Hello報文攜帶的參數進行協商:

l  如果接收端口的網絡類型是廣播型,點到多點或者NBMA所接收的Hello報文中Network Mask字段必須和接收端口的網絡掩碼一致,如果接收端口的網絡類型爲點到點類型或者是虛連接,則不檢查Network Mask字段

l  所接收的Hello報文中的HelloDead字段必須和接收端口的配置保持一致;

l  所接收的Hello報文中的認證字段需要一致;

l  所接收的Hello報文中的Options字段中的E-bit(表示是否接收外部路由信息)必須和相關區域的配置保持一致。

l  所接收的Hello報文中的區域字段必須一致。

鄰接關係建立

clip_image061

1.        鄰居狀態機變爲ExStart以後,R1R2發送第一個DD報文,在這個報文中,DD序列號被設置爲552A(假設),Initial比特爲1表示這是第一個DD報文,More比特爲1表示後續還有DD報文要發送,Master比特爲1表示R1宣告自己爲主路由器。

2.        鄰居狀態機變爲ExStart以後,R2R1發送第一個DD報文,在這個報文中,DD序列號被設置爲5528(假設)。由於R2Router IDR1的大,所以R2應當爲主路由器,Router ID的比較結束後,R1會產生一個NegotiationDone的事件,所以R1將狀態機從ExStart改變爲Exchange

3.        鄰居狀態機變爲Exchange以後,R1發送一個新的DD報文,在這個新的報文中包含LSDB的摘要信息,序列號設置爲R2在第二步裏使用的序列號,More比特爲0表示不需要另外的DD報文描述LSDBMaster比特爲0表示R1宣告自己爲從路由器。收到這樣一個報文以後,R2會產生一個NegotiationDone的事件,因此R2將鄰居狀態改變爲Exchange

4.        鄰居狀態變爲Exchange以後,R2發送一個新的DD報文,該報文中包含LSDB的描述信息,DD序列號設爲5529(上次使用的序列號加1)。

5.        即使R1不需要新的DD報文描述自己的LSDB,但是做爲從路由器,R1需要對主路由器R2發送的每一個DD報文進行確認。所以,R1R2發送一個新的DD報文,序列號爲5529該報文內容爲空

6.        鄰居狀態變爲Loading之後,R1開始向R2發送LS request報文,請求那些在Exchange狀態下通過DD報文發現的,而且在本地LSDB中沒有的鏈路狀態信息。

7.        R2收到LS Request報文之後,向R1發送LS Update報文,在LS Update報文中,包含了那些被請求的鏈路狀態的詳細信息。R1收到LS Update報文之後,將鄰居狀態從Loading改變成Full

8.        R1R2發送LS Ack報文,確保信息傳輸的可靠性。LS Ack報文用於泛洪對已接收LSA的確認。

OSPF特性

OSPF收斂特性

1.    快速收斂

增量最短路徑優先算法I-SPF

l  只對受影響的節點進行路由計算

l  只第一次計算全部節點

I-SPF改進了這個算法,除了第一次計算時需要計算全部節點外,每次只計算受到影響的節點,而最後生成的最短路徑樹SPT與原來的算法所計算的結果相同,大大降低了CPU的佔用率,提高了網絡收斂速度。

部分路由計算PRC

l  只對發生變化的路由進行重新計算

l  根據I-SPF 算出來的SPT 來更新路由

PRC的原理與I-SPF相同,都是隻對發生變化的路由進行重新計算。不同的是,PRC不需要計算節點路徑,而是根據I-SPF算出來的SPT來更新路由。在路由計算中,葉子代表路由,節點則代表路由器。SPT變化和葉子變化都會引起路由信息的變化,但兩者不存在依賴關係,PRC根據SPT或葉子的不同情況進行相應的處理:

Ø  SPT變化,PRC處理變化節點上的所有葉子的路由信息。

Ø  SPT沒有變化,PRC不會處理節點的路由信息。

Ø  葉子變化,PRC處理變化的葉子的路由信息。

Ø  葉子沒有變化,PRC不會處理葉子的路由信息。

智能定時器

l  對接口翻動等原因帶來的網絡不穩定,進行智能控制,減少LSA洪泛

l  其他作用略

智能定時器,OSPF智能定時器分別對路由計算、LSA的產生、LSA的接收進行控制,加速網絡收斂。OSPF智能定時器可以通過以下兩種方式來加速網絡收斂:

Ø  在頻繁進行路由計算的網絡中,OSPF智能定時器根據用戶的配置和指數衰減技術動態調整兩次路由計算的時間間隔,減少路由計算的次數,從而減少CPU的消耗,待網絡拓撲穩定後再進行路由計算。

Ø  在不穩定網絡中,當路由器由於拓撲的頻繁變化需要產生或接收LSA時,OSPF智能定時器可以動態調整時間間隔,在時間間隔之內不產生LSA或對接受到的LSA不進行處理,從而減少整個網絡無效LSA的產生和傳播。

智能定時器對路徑計算的作用

Ø  根據本地維護的鏈路狀態數據庫LSDB,運行OSPF協議的路由器通過SPF算法計算出以自己爲根的最短路徑樹,並根據這一最短路徑樹決定到目的網絡的下一跳。通過調節SPF的計算間隔,可以抑制網絡頻繁變化可能導致的佔用過多帶寬資源和路由器資源。

Ø  在一定組網環境下(例如對路由收斂時間要求較高的環境),可以指定以毫秒爲單位的時間間隔,用來增加路由計算的頻度,從而加快路由的收斂。

Ø  OSPF的鏈路狀態數據庫(LSDB)發生改變時,需要重新計算最短路徑。如果網絡頻繁變化,由於不斷的計算最短路徑,會佔用大量系統資源,影響路由器的效率。通過配置智能定時器,設置合理的SPF計算的間隔時間,可以避免佔用過多的路由器內存和帶寬資源。

Ø  使能智能定時器後:

n  初次計算SPF的間隔時間由start-interval參數指定。

n  nn2)次計算SPF的間隔時間爲hold-interval×2(n-1)

n  hold-interval×2(n-1)達到指定的最長間隔時間max-interval時,OSPF連續三次計算SPF的時間間隔都是最長間隔時間,之後,再次返回步驟1,按照初始間隔時間start-interval計算SPF

2.    按優先級收斂

l  能夠讓某些特定的路由優先收斂的一種技術

可以通過IP前列表等將特定路由過濾出來,通過對不同的路由配置不同的收斂優先級,達到重要的路由先收斂的目的,提高網絡的可靠性。

OSPF擴展特性—Database Overflow

通過設置路由器上非缺省外部路由數量的上限,來避免數據庫超限。OSPF網絡中所有路由器都必須配置相同的上限值。這樣,只要路由器上外部路由的數量達到該上限,路由器就進入Overflow狀態,並同時啓動超限狀態定時器(默認超時時間爲5秒),路由器在定時器超過5秒後自動退出超限狀態。

OSPF Database Overflow過程

l  進入Overflow狀態時,路由器刪除所有自己產生的非缺省外部路由。

l  處於Overflow狀態中,路由器不產生非缺省外部路由,丟棄新收到的非缺省外部路由且不回覆確認報文,當超限狀態定時器超時,檢查外部路由數量是否仍然超過上限,如果超限則重啓定時器,如果沒有則退出超限狀態。

l  退出Overflow狀態時,刪除超限狀態定時器,產生非缺省外部路由,接收新收到的非缺省外部路由,回覆確認報文,準備下一次進入超限狀態。

OSPF擴展特性—虛連接

l  是指在兩臺ABR之間通過一個非骨幹區域建立的一條邏輯上的連接通道,修復被分割的區域0

l  虛連接必須在兩端同時配置方可生效

l  爲虛連接兩端提供一條非骨幹區域內部路由的區域稱爲傳輸區域

l  傳輸區域不能是末節

Ø  在部署OSPF時,要求所有的非骨幹區域與骨幹區域相連。否則會出現有的區域不可達的問題。

Ø  通過虛連接,兩臺ABR之間直接傳遞OSPF報文信息,他們之間的OSPF路由器只是起到一個轉發報文的作用。由於OSPF協議報文的目的地址不是這些路由器,所以這些報文對於他們而言是透明的,只是當作普通的IP報文來轉發。

Ø  虛連接部署不當時有可能產生環路。

OSPF擴展特性—認證

認證分類

l  接口認證

l  區域認證

認證方式

l  Null

l  Simple

l  MD5

l  HMAC-MD5

當兩種驗證方式都存在時,優先使用接口驗證方式。

 

 

 

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