天天看點

OSPF技術連載1:OSPF基礎知識,7000字總結!

作者:wljslmz

你好,這裡是網絡技術聯盟站。

OSPF(開放最短路徑優先)是一種用于在IP網絡中選擇路由的内部網關協定(IGP)。它是一個開放标準協定,由RFC 2328定義,廣泛應用于大型企業網絡和網際網路。

OSPF技術連載1:OSPF基礎知識,7000字總結!

OSPF的基本概念

1. 路由器ID

在OSPF中,每個路由器都有一個唯一的路由器ID(Router ID),用于辨別自己。路由器ID可以是一個IPv4位址,通常是路由器的一個接口IP位址。如果沒有明确配置路由器ID,OSPF會根據一組規則自動選擇一個。

例如,假設我們有三個路由器,它們的接口IP位址分别是192.168.1.1、192.168.1.2和192.168.1.3。在這種情況下,路由器ID可以是其中任意一個IP位址。

2. 鄰居關系

OSPF使用鄰居關系(Neighbor Relationship)來交換路由資訊。當兩個OSPF路由器在它們的接口之間建立了鄰居關系後,它們就可以互相交換路由資訊。

例如,假設我們有兩個相鄰的OSPF路由器A和B,它們的接口分别是192.168.1.1和192.168.1.2。當它們通過這兩個接口建立鄰居關系後,它們就可以開始交換路由資訊。

3. OSPF區域

OSPF将網絡劃分為不同的區域(Area),并使用OSPF區域之間的區域間路由(Inter-Area Routing)和區域内路由(Intra-Area Routing)來确定最佳路徑。

OSPF技術連載1:OSPF基礎知識,7000字總結!

例如,假設我們有一個大型企業網絡,劃分為三個區域:區域0、區域1和區域2。區域0是骨幹區域(Backbone Area),連接配接了所有的OSPF區域。區域1和區域2是非骨幹區域,它們通過區域間路由與骨幹區域連接配接。

4. OSPF區域類型

OSPF定義了不同類型的區域,包括骨幹區域(Backbone Area)、标準區域(Standard Area)、NSSA區域(Not-So-Stubby Area)和Totally NSSA區域。

骨幹區域是連接配接所有區域的主要區域。标準區域是普通的OSPF區域。NSSA區域是一種特殊類型的區域,可以連接配接到其他非OSPF域。Totally NSSA區域是NSSA區域的變體,更加靈活。

OSPF工作原理

OSPF使用鍊路狀态路由(Link State Routing)算法來計算最短路徑。它通過交換鍊路狀态資料庫(Link State Database)來了解整個網絡的拓撲結構。

OSPF路由器之間通過洪泛(Flooding)方式交換鍊路狀态資訊。每個OSPF路由器都将自己的鍊路狀态資訊發送給相鄰的路由器,并将接收到的鍊路狀态資訊存儲在鍊路狀态資料庫中。然後,每個OSPF路由器都可以使用Dijkstra算法來計算最短路徑。

OSPF封包類型

OSPF技術連載1:OSPF基礎知識,7000字總結!

封包類型 描述 Hello封包 用于發現和維護OSPF鄰居關系的封包 DD封包 用于資料庫描述,交換鍊路狀态資料庫的摘要資訊 LSR封包 用于請求鄰居路由器發送缺失的鍊路狀态資料 LSU封包 用于向鄰居路由器發送鍊路狀态資料 LSAck封包 用于确認接收到的鍊路狀态資料

Hello封包

Hello封包是OSPF用于發現和維護鄰居關系的重要封包類型。它的主要目的是交換路由器的相關資訊以确定鄰居是否可達和協商OSPF參數。

Hello封包的字段包括:

  • Router ID:發送Hello封包的路由器的ID。
  • Area ID:發送Hello封包的路由器所屬的OSPF區域ID。
  • Network Mask:網絡掩碼。
  • Hello Interval:發送Hello封包的時間間隔。
  • Dead Interval:判定鄰居路由器失效的時間間隔。

DD封包

DD(Database Description)封包用于交換鍊路狀态資料庫的摘要資訊。它允許路由器之間比較彼此的資料庫,以确定需要交換的更新資訊。

DD封包的字段包括:

  • Area ID:發送DD封包的路由器所屬的OSPF區域ID。
  • Interface MTU:發送DD封包的接口的最大傳輸單元。
  • Options:用于指定OSPF的選項和功能。
  • Sequence Number:序列号,用于辨別DD封包的順序。
  • LSA Headers:鍊路狀态資料庫中每個LSA的摘要資訊。

LSR封包

LSR(Link State Request)封包用于請求鄰居路由器發送缺失的鍊路狀态資料。當一個路由器在其鍊路狀态資料庫中缺少某個LSA時,它可以發送LSR封包來請求鄰居路由器發送該LSA。

LSR封包的字段包括:

  • Area ID:發送LSR封包的路由器所屬的OSPF區域ID。
  • Link State Requests:要請求的LSA清單。

LSU封包

LSU(Link State Update)封包用于向鄰居路由器發送鍊路狀态資料。當一個路由器檢測到網絡拓撲發生變化時,它會生成LSU封包,并将更新的鍊路狀态資料發送給鄰居路由器。

LSU封包的字段包括:

  • Area ID:發送LSU封包的路由器所屬的OSPF區域ID。
  • LSA Headers:要傳輸的鍊路狀态資料的摘要資訊。

LSAck封包

LSAck(Link State Acknowledgment)封包用于确認接收到的鍊路狀态資料。當一個路由器接收到LSU封包後,會發送LSAck封包作為回應,通知發送方鍊路狀态資料已成功接收。

LSAck封包的字段包括:

  • Area ID:發送LSAck封包的路由器所屬的OSPF區域ID。
  • LSA Headers:已接收到的鍊路狀态資料的摘要資訊。

OSPF LSA類型

OSPF技術連載1:OSPF基礎知識,7000字總結!

Router-LSA(Type 1)

Router-LSA是用于描述路由器與其直連網絡之間的連接配接狀态和鍊路成本的LSA類型。每個OSPF路由器都會生成一個Router-LSA來描述自己的鍊路狀态資訊。

Router-LSA的字段包括:

  • 路由器ID:生成該LSA的路由器的唯一辨別符。
  • 連接配接類型:描述與路由器相連的網絡類型,如點對點、廣播、虛拟鍊路等。
  • 鍊路資料:描述與路由器直接相連的網絡和鍊路的資訊,包括IP位址、子網路遮罩、鍊路類型、鍊路狀态等。
  • 鍊路狀态:描述鍊路的狀态,如啟用、禁用、DR(設計者路由器)等。

Network-LSA(Type 2)

Network-LSA用于描述多個路由器連接配接的廣播網絡的狀态。當OSPF路由器連接配接到一個共享網絡時,它們會生成一個Network-LSA來描述該網絡的狀态。

Network-LSA的字段包括:

  • 路由器ID:生成該LSA的路由器的唯一辨別符。
  • 網絡位址:廣播網絡的IP位址。
  • DR(設計者路由器):指定負責該網絡的DR路由器的ID。
  • 鄰居路由器:與該網絡直接相連的OSPF鄰居路由器的ID。

Network-summary-LSA(Type 3)

Network-summary-LSA用于描述區域内部網絡和區域之間的網絡彙總資訊。它由區域邊界路由器(ABR)生成,用于在區域之間傳遞網絡彙總資訊。

Network-summary-LSA的字段包括:

  • 路由器ID:生成該LSA的ABR的唯一辨別符。
  • 彙總網絡位址:網絡彙總的IP位址。
  • 目标區域ID:接收網絡彙總資訊的目标區域的ID。
  • 路由器訓示位:訓示接收方是否應将該網絡視為區域邊界路由器。

ASBR-summary-LSA(Type 4)

ASBR-summary-LSA用于描述區域邊界路由器(ASBR)與其他區域之間的網絡彙總資訊。它由ASBR生成,用于在不同區域之間傳遞外部網絡的彙總資訊。

ASBR-summary-LSA的字段包括:

  • 路由器ID:生成該LSA的ASBR的唯一辨別符。
  • 彙總網絡位址:網絡彙總的IP位址。
  • 目标區域ID:接收網絡彙總資訊的目标區域的ID。
  • 路由器訓示位:訓示接收方是否應将該網絡視為區域邊界路由器。

AS-external-LSA(Type 5)

AS-external-LSA用于描述來自其他自治系統(AS)的外部網絡的資訊。它由ASBR生成,并用于向OSPF域内部傳遞外部網絡的路由資訊。

AS-external-LSA的字段包括:

  • 路由器ID:生成該LSA的ASBR的唯一辨別符。
  • 外部網絡位址:來自其他AS的外部網絡的IP位址。
  • 路徑類型:訓示路徑類型,如Type 1(區域内路徑)或Type 2(區域間路徑)。
  • 路徑成本:訓示到達該外部網絡的成本。

NSSA LSA(Type 7)

NSSA LSA用于描述在NSSA區域中來自其他自治系統(AS)的外部網絡的資訊。它類似于AS-external-LSA,但用于在NSSA區域内部傳遞外部網絡的路由資訊。

NSSA LSA的字段和AS-external-LSA類似,但有一些特定的差別,如NSSA區域的特殊屬性和轉換機制。

Opaque LSA(Type9/Type 10/Type 11)

Opaque LSA是用于擴充OSPF協定以支援特定的擴充功能和應用的LSA類型。它具有更加靈活的結構,可以用于傳遞各種自定義的資訊。

Opaque LSA的類型包括:

  • Type 9:用于擴充OSPF以支援OSPFv2的TE(Traffic Engineering)擴充。
  • Type 10:用于擴充OSPF以支援OSPFv3的TE擴充。
  • Type 11:用于擴充OSPF以支援廣域網(WAN)連接配接的資訊交換,如多協定标簽交換(MPLS)。

每種類型的Opaque LSA具有自己特定的字段和用途,可以根據需要靈活地定義和使用。

OSPF 路由器類型

OSPF技術連載1:OSPF基礎知識,7000字總結!

區域内路由器(Internal Router)

區域内路由器是位于同一OSPF區域内的路由器,它們隻與同一區域内的其他路由器互動。區域内路由器的主要功能是轉發區域内的資料包,維護LSDB(鍊路狀态資料庫),計算并選擇最佳路徑。

區域内路由器的特點包括:

  • 在同一區域内的所有路由器都是區域内路由器。
  • 區域内路由器隻與同一區域内的其他路由器交換LSA資訊。
  • 用于區域内的内部路由選擇和轉發資料包。

區域邊界路由器(ABR)

區域邊界路由器是連接配接兩個或多個OSPF區域的路由器。它們在不同區域之間扮演着關鍵的橋梁角色,負責在區域之間轉發資料包,并進行網絡彙總和分發。

區域邊界路由器的特點包括:

  • 在連接配接多個區域的邊緣處。
  • 可以同時屬于多個區域,通常至少屬于一個區域。
  • 負責在區域之間轉發資料包。
  • 進行區域間的網絡彙總和分發。

骨幹路由器(Backbone Router)

骨幹路由器是位于OSPF中骨幹區域(Backbone Area)内的路由器。骨幹區域是連接配接所有區域的主要區域,骨幹路由器負責轉發來自其他區域的資料包。

骨幹路由器的特點包括:

  • 在骨幹區域内,連接配接所有區域。
  • 用于轉發來自其他區域的資料包。
  • 負責維護骨幹區域的拓撲資訊。

自治系統邊界路由器(ASBR)

自治系統邊界路由器是連接配接OSPF域與其他自治系統(AS)的路由器。它們負責在OSPF域與外部網絡之間交換路由資訊,并進行外部網絡的彙總和分發。

自治系統邊界路由器的特點包括:

  • 連接配接OSPF域與其他自治系統(AS)。
  • 負責在OSPF域與外部網絡之間交換路由資訊。
  • 進行外部網絡的彙總和分發。

OSPF 路由類型

OSPF技術連載1:OSPF基礎知識,7000字總結!

路由類型 描述 Intra Area 在同一OSPF區域内選擇路由,并用于在該區域内轉發資料包 Inter Area 在不同OSPF區域之間選擇路由,并用于在區域之間轉發資料包 第一類外部路由(Type 1 External) 來自其他自治系統(AS)的外部路由,在OSPF域内部傳遞并進行成本計算,用于轉發到其他區域和AS 第二類外部路由(Type 2 External) 來自其他自治系統(AS)的外部路由,在OSPF域内部傳遞,并将其成本設定為固定值,用于轉發到其他區域和AS

Intra Area

Intra Area路由用于在同一OSPF區域内選擇路由,并用于在該區域内轉發資料包。當資料包需要從源到達目的地時,Intra Area路由通過查找區域内的最短路徑來選擇下一跳。

Intra Area路由的特點包括:

  • 在同一OSPF區域内選擇路由。
  • 負責在區域内轉發資料包。
  • 使用區域内部鍊路狀态資料庫(LSDB)計算最短路徑。

Inter Area

Inter Area路由用于在不同OSPF區域之間選擇路由,并用于在區域之間轉發資料包。當資料包需要從源區域到達目的區域時,Inter Area路由通過查找區域間的最短路徑來選擇下一跳。

Inter Area路由的特點包括:

  • 在不同OSPF區域之間選擇路由。
  • 負責在區域之間轉發資料包。
  • 使用區域間鍊路狀态資料庫(LSDB)計算最短路徑。

第一類外部路由(Type 1 External)

第一類外部路由是來自其他自治系統(AS)的外部路由,在OSPF域内部傳遞并進行成本計算,用于轉發到其他區域和AS。當資料包需要到達其他AS時,第一類外部路由将起到關鍵作用。

第一類外部路由的特點包括:

  • 來自其他AS的外部路由。
  • 在OSPF域内部傳遞。
  • 通過在區域間鍊路狀态資料庫(LSDB)中計算成本來選擇下一跳。

第二類外部路由(Type 2 External)

第二類外部路由是來自其他自治系統(AS)的外部路由,在OSPF域内部傳遞,并将其成本設定為固定值,用于轉發到其他區域和AS。與第一類外部路由相比,第二類外部路由不進行成本計算。

第二類外部路由的特點包括:

  • 來自其他AS的外部路由。
  • 在OSPF域内部傳遞。
  • 将其成本設定為固定值,不進行成本計算。

OSPF 區域類型

OSPF技術連載1:OSPF基礎知識,7000字總結!

普通區域(Normal Area)

普通區域是标準的OSPF區域類型,包含所有OSPF功能,并可以與其他區域進行完全的LSA交換。普通區域内的路由器可以直接與同一區域内的其他路由器進行通信,并交換鍊路狀态資訊。

普通區域的特點包括:

  • 路由器可以與同一區域内的其他路由器進行完全的LSA交換。
  • 支援區域内部的内部路由選擇和轉發資料包。
  • 可以與其他區域之間進行區域間路由選擇和轉發資料包。

STUB區域

STUB區域通過彙總外部路由并使用預設路由減少區域内路由器的負擔,并阻止來自其他區域的LSA資訊。這樣可以簡化區域内的路由表,減少記憶體和計算資源的使用。

STUB區域的特點包括:

  • 在STUB區域中,外部路由被彙總為預設路由。
  • 區域内的路由器隻需要維護預設路由,而不需要具體的外部路由資訊。
  • STUB區域不會接收來自其他區域的LSA資訊。

Totally STUB區域

Totally STUB區域類似于STUB區域,但還阻止來自骨幹區域的LSA資訊。這樣可以進一步簡化區域内的路由表,并減少資源消耗。

Totally STUB區域的特點包括:

  • 在Totally STUB區域中,外部路由被彙總為預設路由。
  • 區域内的路由器隻需要維護預設路由,而不需要具體的外部路由資訊。
  • Totally STUB區域不會接收來自骨幹區域的LSA資訊。

NSSA區域

NSSA(Not-So-Stubby Area)區域允許将外部路由引入OSPF區域,但LSA類型被修改以相容OSPF,并提供更大的靈活性。NSSA區域允許在OSPF域内引入外部路由,同時保持區域内的資源消耗較低。

NSSA區域的特點包括:

  • 允許在NSSA區域中引入外部路由。
  • NSSA區域的ASBR(自治系統邊界路由器)将外部路由轉換為NSSA LSA類型。
  • NSSA區域内的其他路由器可以接收和轉發NSSA LSA。

Totally NSSA區域

Totally NSSA區域類似于NSSA區域,但還阻止來自骨幹區域的LSA資訊。這樣可以進一步控制區域内的資源消耗,并提供更高的靈活性。

Totally NSSA區域的特點包括:

  • 允許在Totally NSSA區域中引入外部路由。
  • Totally NSSA區域的ASBR将外部路由轉換為Totally NSSA LSA類型。
  • Totally NSSA區域内的其他路由器可以接收和轉發Totally NSSA LSA。

OSPF支援的網絡類型

OSPF技術連載1:OSPF基礎知識,7000字總結!

廣播類型(Broadcast)

廣播類型是指具有廣播能力的網絡類型,如以太網。廣播類型網絡支援多點傳播和廣播傳輸,OSPF可以直接在廣播網絡上運作。

廣播類型網絡的特點包括:

  • 支援廣播傳輸,允許多點傳播和廣播流量。
  • 路由器可以通過廣播通信,交換LSA資訊。
  • OSPF可以直接在廣播網絡上運作,無需額外的配置。

NBMA類型(Non-Broadcast Multi-Access)

NBMA類型是指非廣播多點接入類型的網絡,如幀中繼、ATM等。這些網絡不支援廣播和多點傳播傳輸,OSPF在NBMA網絡上需要特殊的配置。

NBMA類型網絡的特點包括:

  • 不支援廣播和多點傳播傳輸。
  • 路由器之間的通信需要經過專門配置。
  • OSPF在NBMA網絡上需要使用額外的配置選項,如配置鄰居清單或使用特殊的Hello封包選項。

點到多點P2MP類型(Point-to-Multipoint)

點到多點P2MP類型是一種一對多連接配接的網絡類型,允許一個OSPF路由器與多個其他路由器直接通信,無需逐個建立點到點連接配接。

點到多點P2MP類型網絡的特點包括:

  • 允許一個OSPF路由器與多個其他路由器直接通信。
  • 無需逐個建立點到點連接配接。
  • OSPF路由器可以使用單個Hello封包與所有相鄰路由器進行鄰居關系的建立。

點到點P2P類型(Point-to-Point)

點到點P2P類型是指一對一連接配接的網絡類型,僅允許兩個OSPF路由器之間建立點到點連接配接,如點到點鍊路或虛拟專用線路(VPN)。

點到點P2P類型網絡的特點包括:

  • 僅允許兩個OSPF路由器之間建立點到點連接配接。
  • 通常用于連接配接兩個路由器的專用鍊路或虛拟專用線路(VPN)。
  • 點到點連接配接通常具有較高的帶寬和可靠性。

OSPF DR和BDR

主題 描述 DR(Designated Router) 被選舉為網絡中某一段子網的代表,負責與其他路由器交換鍊路狀态資訊并彙總網絡拓撲資訊。 BDR(Backup Designated Router) 作為DR的備份,接收并轉發鍊路狀态資訊,當DR不可用時,BDR将接替其角色并成為新的DR。 DR和BDR的選舉過程 通過Hello封包交換和優先級比較來選舉DR和BDR,優先級高的路由器将成為DR,第二高的則成為BDR。 DR和BDR的特點 DR和BDR之間建立鄰居關系,DR負責向BDR和其他路由器發送鍊路狀态資訊,BDR隻向其他路由器發送鍊路狀态資訊。

OSPF技術連載1:OSPF基礎知識,7000字總結!

DR(Designated Router)

DR(Designated Router)是在OSPF網絡中被選舉為網絡中某一段子網的代表,負責與其他路由器交換鍊路狀态資訊并彙總網絡拓撲資訊。DR起到減少鍊路狀态資料庫(LSDB)更新開銷的作用,進而提高網絡性能。

DR的主要特點和作用包括:

  • 在每個多點傳播或非廣播多點接入(NBMA)網絡中,選舉一個DR。
  • DR負責與其他路由器交換Hello封包和鍊路狀态資訊(LSA)。
  • DR彙總其他路由器的鍊路狀态資訊,并将其反映在區域内的LSDB中。
  • 減少了網絡中鍊路狀态資訊的交換和更新開銷。
  • DR能夠減少鍊路狀态資訊更新的洪泛,提高網絡的收斂速度。

BDR(Backup Designated Router)

BDR(Backup Designated Router)是作為DR的備份存在的路由器。BDR接收并轉發來自其他路由器的鍊路狀态資訊,并在DR不可用時接替其角色成為新的DR。

BDR的主要特點和作用包括:

  • 在每個多點傳播或非廣播多點接入(NBMA)網絡中,選舉一個BDR。
  • BDR的功能與DR類似,但僅在DR不可用時才接替其角色。
  • BDR負責與其他路由器交換Hello封包和鍊路狀态資訊(LSA)。
  • BDR僅向其他路由器發送鍊路狀态資訊,不向其他BDR發送資訊。
  • BDR能夠快速接管DR的角色,并確定網絡中的DR角色不會出現間斷。

DR和BDR的選舉過程

在OSPF網絡中,DR和BDR的選舉過程是通過Hello封包的交換和優先級比較來實作的。以下是DR和BDR的選舉過程:

  1. 路由器在OSPF網絡中發送Hello封包,其中包含自己的優先級。
  2. 路由器接收到Hello封包後,比較對方的優先級與自己的優先級。
  3. 優先級較高的路由器将成為DR,并将其選為DR的路由器作為BDR。
  4. 如果優先級相同或未配置優先級,則使用路由器ID進行比較。
  5. 如果路由器ID也相同,則通過回環接口的IP位址來決定選舉結果。

通過以上選舉過程,OSPF網絡中的路由器将選舉出DR和BDR,并建立相應的鄰居關系。

DR和BDR的特點

DR和BDR之間建立鄰居關系,這樣可以實作更高效的鍊路狀态資訊交換和更新。以下是DR和BDR的特點:

  • DR負責向BDR和其他路由器發送鍊路狀态資訊(LSA)。
  • BDR僅向其他路由器發送鍊路狀态資訊,不向其他BDR發送資訊。
  • DR和BDR之間維護特殊的鄰居關系,確定在DR發生故障時BDR可以接替其角色。
  • DR和BDR的選舉過程通過Hello封包的交換和優先級比較來實作。

通過DR和BDR的特點和選舉過程,OSPF網絡能夠減少鍊路狀态資訊的洪泛和更新開銷,提高網絡的性能和可靠性。

OSPF簡單配置示例

我會介紹三個廠商的:

OSPF技術連載1:OSPF基礎知識,7000字總結!

華為(Huawei) 拓撲圖

OSPF技術連載1:OSPF基礎知識,7000字總結!

配置示例 [R1] ospf 1 router-id 1.1.1.1

[R1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

[R1-ospf-1-area-0.0.0.0] network 10.0.0.0 0.0.0.255

[R2] ospf 1 router-id 2.2.2.2

[R2-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0] network 20.0.0.0 0.0.0.255

思科(Cisco) 拓撲圖

OSPF技術連載1:OSPF基礎知識,7000字總結!

配置示例 Router1(config)# router ospf 1

Router1(config-router)# router-id 1.1.1.1

Router1(config-router)# network 192.168.1.0 0.0.0.255 area 0

Router1(config-router)# network 10.0.0.0 0.0.0.255 area 0

Router2(config)# router ospf 1

Router2(config-router)# router-id 2.2.2.2

Router2(config-router)# network 192.168.1.0 0.0.0.255 area 0

Router2(config-router)# network 20.0.0.0 0.0.0.255 area 0

Juniper(Juniper Networks) 拓撲圖

OSPF技術連載1:OSPF基礎知識,7000字總結!

配置示例

set protocols ospf area 0.0.0.0 interface ge-0/0/0.0
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0

set protocols ospf area 0.0.0.0 interface ge-0/0/0.0
set protocols ospf area 0.0.0.0 interface ge-0/0/2.0
           
這些示例僅為示範目的,實際的配置可能因裝置型号和作業系統版本而有所不同。在實際配置時,請參考各個廠商的官方文檔和裝置手冊進行詳細配置。

總結

OSPF是一種強大而靈活的内部網關協定,它提供了可靠的路由選擇機制。通過了解OSPF的基本概念和工作原理,您可以更好地配置和管理您的網絡。

繼續閱讀