目錄

簡介

背景資訊

OSPF 與 RIP 比較

連結狀態是什麼意思？

最短路徑優先演算法

OSPF 成本

最短路徑樹狀結構

區域與邊界路由器

鏈路狀態資料包

在路由器上啟用OSPF

OSPF 驗證

簡單密碼身份驗證

消息摘要身份驗證

骨幹與區域 0

虛擬連結

與區域 0 沒有實體連接的區域

骨幹

鄰居

相鄰關係

DR 選擇

建立相鄰

點對點介面上的鄰接關係

非廣播式多重存取 (NBMA) 網路的相鄰

避免在 NBMA 使用 DR 和芳鄰命令

點對點子介面

選取介面網路類型

OSPF 和路由摘要

區域間路由摘要

外部路由摘要

Stub 區域

將路由重新分配至 OSPF

E1 與 E2 外部路由比較

將OSPF重分佈到其他協定中

使用有效指標

VLSM

相互重新分配

將預設值插入 OSPF

OSPF 設計提示

每區域路由器數量

芳鄰數量

每 ABR 區域數量

完整網狀與部分網狀的比較

記憶體問題

摘要

附錄 A：連結狀態資料庫同步

連結狀態通告

OSPF資料庫示例

附錄 B：OSPF 和 IP 多點傳送位址

附錄C：可變長子網掩碼(VLSM)

相關資訊

介紹

本文檔介紹OSPF的工作方式，以及如何使用OSPF設計和構建大型複雜網路。

背景資訊

RFC 2328 中定義的開放最短路徑優先(OSPF)協定是內部網關協定 ，用於在單個自治系統中分發路由資訊。

OSPF 通訊協定的開發緣由，在於網際網路社群需要為 TCP/IP 通訊協定系列引進高功能性的非專屬內部閘道通訊協定 (IGP)。

這種為網際網路建立共用可互通式 IGP 的討論從 1988 年就開始了，但直到 1991 年才開始正式浮上檯面。

當時，OSPF工作組要求考慮將OSPF推進到Internet標準草案。

OSPF協定基於鏈路狀態技術，這不同於傳統的Internet路由協定（如RIP）中使用的基於Bellman-Ford向量的算法。

OSPF 引進了新的概念，例如路由更新驗證、可變長度子網路遮罩 (VLSM)、路由摘要等等。

這些章節討論當今大型複雜網路設計中的OSPF術語、演算法以及協定的優點和細微差別。

OSPF 與 RIP 比較

現代網路的快速成長與擴張，已瀕臨路由資訊通訊協定 (RIP) 的極限。RIP 本身具有某些限制，可能會在大型網路中產生問題：

- RIP的跳數限製為15跳。如果網路跨度超過15跳（15台路由器），則被視為無法到達。

- RIP無法處理可變長子網掩碼(VLSM)。鑑於IP地址的不足和VLSM在有效分配IP地址方面提供的靈活性，這被認為是主要缺陷。

完整路由表的週期性廣播會消耗大量的頻寬。對於大型網路而言，用於慢速網路和網路和 WAN 雲端問題尤其嚴重。

- RIP收斂速度比OSPF慢。在大型網路中，聚合會花費幾分鐘的時間。

- RIP路由器經過一段時間的抑制和垃圾收集，並緩慢地超時最近未收到的資訊。這在大型環境中是不適當的，可能會導致路由不一致。

- RIP 不具網路延遲和連結成本的概念。路由決策基於跳數。即使較長的路徑具有更好的聚合鏈路頻寬和更少的延遲，具有到達目的地的跳數最低的路徑也始終是優先使用路徑。

- RIP網絡是平面網路。沒有區域或邊界的概念。隨著無類路由的推出以及聚合和總結的智慧使用，RIP網路已經落後了。

新版的 RIP 在引進強化功能後，稱為 RIP2。RIP2 會處理 VLSM（可變長度子網路遮罩）、驗證及多點傳送路由更新的問題。

RIP2 相對於 RIP（如今稱為 RIP1）並未有大幅度的進步，因為它仍然有躍點數量上限及聚合遲緩的問題，這些在大型網路中都是重大問題。

另一方面，OSPF 則解決了前面所述的多數問題：

- OSPF 沒有躍點數量的上限。

- 在 IP 位址的分配中，VLSM 的智慧運用是非常實用的技術。

- OSPF 使用 IP 多點傳送來傳送連結狀態更新。這項特性會使不接聽 OSPF 封包的路由器耗用的程序資源確實減少。更新資訊只會在發生路由變更時傳送，而非週期性傳送。這也確保了頻寬的效率。

- OSPF 的聚合優於 RIP。這是因為路由變更會即時傳播，而非週期性傳播。

- OSPF允許更好的負載平衡。

- OSPF允許對路由器可劃分為區域的網路進行邏輯定義。這限制了整個網路中鏈路狀態更新的急劇增加。這也提供了一種機制來聚合路由並減少子網資訊的不必要傳播。

- OSPF 可透過各種密碼驗證方法進行路由驗證。

- OSPF允許傳輸和標籤注入自治系統的外部路由。如此一來，即可追蹤由 BGP 等外部通訊協定插入的外部路由。

這也使得 OSPF 網路的設定和疑難排解更加複雜。

習慣於RIP簡單性的管理員面臨著挑戰，他們需要學習大量新資訊才能跟上OSPF網路。

這會增加記憶體分配和CPU使用率的開銷。有些執行 RIP 的路由器因此必須升級，才能處理 OSPF 造成的負擔。

連結狀態是什麼意思？

OSPF是一種鏈路狀態協定。將鏈路視為路由器上的介面。鏈路的狀態描述該介面及其與其鄰居路由器的關係。

舉例來說，介面的說明內容包括介面 IP 位址、遮罩、介面連結的網路類型，以及連結至該網路的路由器等等。

上述種種連結狀態的集合，就會形成連結狀態資料庫。

最短路徑優先演算法

OSPF使用最短路徑優先演算法來構建和計算到達所有目的地的最短路徑。使用Dijkstra演算法計算最短路徑。

演算法本身就很複雜。這是對演算法各個步驟的簡要瞭解：

1. 在初始化時，或者由於路由資訊的任何更改，路由器會生成鏈路狀態通告。此通告表示該路由器上所有鏈路狀態的集合。

2. 所有路由器都會透過泛洪方式來交換連結狀態。每個路由器在收到連結狀態更新後，都必須在連結狀態資料庫中儲存複本，然後將更新傳播給其他路由器。

3. 每個路由器的資料庫完成後，路由器會計算到達所有目的地的最短路徑樹。路由器會使用 Dijkstra 演算法來計算最短路徑樹狀結構、目的地、相關成本，以及到達這些可構成 IP 路由表的目的地的下個躍點。

4. 如果OSPF網路沒有發生更改，例如鏈路的開銷或新增或刪除的網路的開銷，OSPF將保持非常安靜。更改通過鏈路狀態資料包進行通訊，並且重新計算Dijkstra演算法以查詢最短路徑。

演算法會將每個路由器置於樹狀結構的根目錄，並根據到達這些目的地所需的累計成本來計算每個目的地的最短路徑。

儘管所有路由器都使用相同的鏈路狀態資料庫構建最短路徑樹，但每台路由器都有自己的拓撲檢視。以下各節指出了建立最短路徑樹所涉及的內容。

OSPF開銷

OSPF 介面的成本（也稱指標）代表在特定介面傳送封包的必要負擔。

介面的成本與頻寬是呈反比的關係。頻寬越大，表示成本越低。

與10M乙太網線路相比，56k串列線路引起的開銷（成本較高）和延遲更多。

用於計算成本的方程式如下：

- 成本 = 10000 0000/頻寬 (單位：bps)

例如，跨越 10M 乙太網路線路的成本為 10 EXP8/10 EXP7 = 10，跨越 T1 線路則為 10 EXP8/1544000 = 64。

預設情況下，介面的開銷是根據頻寬計算的；您可以使用介面子配置模式命令強 ip ospf cost <value>  制介面的開銷。

最短路徑樹狀結構

請參閱此網路圖表，並註明介面成本。為了建立 RTA 的最短路徑樹狀結構，我們必須使 RTA 成為樹狀結構的根目錄，並計算每個目的地的最低成本。

這是從RTA看到的網路檢視。請注意成本計算中箭頭所指的方向。

如果系統計算的是到達 192.168.0.1 的成本，則 RTB 介面到達網路 198.51.100.1 的成本就無關緊要。

RTA可通過RTB到達192.168.0.1，開銷為15(10+5)。

RTA還可以通過RTC到達203.0.113.1(開銷為20(10+10))，或通過RTB到達20(10+5+5)。

如果存在到達同一目標的等價路徑，實施OSPF最多可以跟蹤到達同一目標的六(6)個下一跳。

在路由器建立最短路徑樹狀結構後，就會建立起路由表。到達直接連線的網路所需的指標（成本）為 0，而到達其他網路的成本則需根據樹狀結構計算而得。

區域與邊界路由器

如先前所述，OSPF 會以泛洪方式在路由器之間交換連結狀態更新資訊。路由資訊的任何變更都會泛洪至網路上的所有路由器。

引入區域為鏈路狀態更新的爆炸設定邊界。路由器上的Dijkstra演算法的泛洪和計算僅限於區域內發生的變化。

區域中的所有路由器都有準確的鏈路狀態資料庫。屬於多個區域並將這些區域連線到主幹區域的路由器稱為區域邊界路由器(ABR)。

ABR 因此必須保留描述骨幹區域和其他連接區域的資訊。

區域皆有專屬的介面。所有介面位於同一區域的路由器稱為內部路由器(IR)。

路由器的介面如果位於多個區域，就稱為區域邊界路由器 (ABR)。

路由器如果在 OSPF 和其他路由通訊協定（IGRP、EIGRP、IS-IS、RIP、BGP、靜態）或其他 OSPF 路由程序介面之間擔任閘道（重新分配），則稱為自治系統邊界路由器 (ASBR)。任何路由器都可能是 ABR 或 ASBR。

連結狀態封包

連結狀態封包有各種類型，一般而言都可在 OSPF 資料庫中看到（附錄 A 及此處皆有說明）。

路由器鏈路表示路由器介面在特定指定區域中的狀態。每台路由器為其所有介面生成路由器鏈路。

彙總連結由ABR生成；這是網路可達性資訊在區域之間傳播的方式。

一般來說，所有資訊都會插入骨幹（區域 0），然後骨幹也會將其傳遞至其他區域。

ABR 也會傳播 ASBR 的連線性資訊。這項資訊可讓路由器得知如何前往其他 AS 的外部路由。

網路鏈路由網段上的指定路由器(DR)生成（稍後將討論DR）。

這項資訊會指出所有連線到特定多重存取區段（例如乙太網路、權杖環和 FDDI（NBMA 亦同）） 的路由器。

外部鏈路表示AS之外的網路。這些網路通過重分佈注入到OSPF。ASBR將這些路由注入自治系統。

在路由器上啟用OSPF

在路由器啟用 OSPF 牽涉到設定模式中的兩個步驟：

1. 使用命令啟用OSPF進 router ospf <process-id>  程。

1. 使用命令為介面分配區 network <network or IP address> <mask> <area-id>  域。

OSPF 程序 ID 是路由器的本機數值，它並不必然會與其他路由器的程序 ID 相符。

要在相同路由器上執行多個 OSPF 程序是可行的，但建議您不要這麼做，因為這樣會建立多個資料庫執行個體，因此增加路由器的負擔。

該命 network 令是一種將介面分配給特定區域的分配方法。這個方法會使用遮罩作為捷徑，並以一行設定行在相同區域放置介面清單。

掩碼包含萬用字元位，其中0是匹配項，1是「不比對」位，例如0.0.255.255表示網路號的前兩個位元組匹配。

area-id是我們希望介面所在的區域編號。area-id可以是0到4294967295之間的整數，也可以採用類似IP地址A.B.C.D的形式。

以下是範例：

RTA# interface Ethernet0 ip address 192.168.0.2 255.255.255.0 interface Ethernet1 ip address 192.168.0.5 255.255.255.0 interface Ethernet2 ip address 192.168.0.3 255.255.255.0 router ospf 100 network 192.168.0.4 0.0.255.255 area 0.0.0.0 network 192.168.0.3 0.0.0.0 area 23

第一個網路陳述式會同時將 E0 和 E1 放置於相同區域 0.0.0.0，而第二個網路陳述式會將 E2 放置於區域 23。請注意遮罩 0.0.0.0，其中會顯示 IP 位址完全相符。

如果無法解析掩碼，這是將介面置於特定區域的簡單方法。

OSPF身份驗證

驗證 OSPF 封包是可行的，如此一來路由器就可根據預先定義的密碼參與路由網域。

依預設，路由器會使用 Null 驗證，也就是說網路上的路由交換並不會經過驗證。另外還有兩種身份驗證方法：簡單密碼身 Message Digest 份驗證和身份驗證(MD-5)。

簡單密碼身份驗證

簡易密碼驗證可讓密碼（金鑰）依個別區域進行設定。同一區域中要加入路由域的路由器必須配置相同的金鑰。

這種方法的缺點是它容易受到被動攻擊。任何使用鏈路分析器的人都可以輕鬆地將密碼從線路中取出。

要啟用密碼身份驗證，請使用以下命令：

- ip ospf authentication-key key  （該介面位於特定介面下）

- area area-id authentication (此內容將歸入 router ospf <process-id>下)

以下是範例：

interface Ethernet0 ip address 10.0.0.1 255.255.255.0 ip ospf authentication-key mypassword router ospf 10 network 10.0.0.0 0.0.255.255 area 0 area 0 authentication

消息摘要身份驗證

訊息摘要驗證是一種密碼編譯驗證。每台路由器上均配置金鑰（密碼）和金鑰ID。

路由器會根據 OSPF 封包、金鑰、金鑰 ID 來使用演算法，藉此產生附加到封包的「訊息摘要」。

和簡易驗證不同的是，金鑰並不會透過線路交換。每個 OSPF 封包也都會納入一組非遞減的序號，以便防範重新執行攻擊。

這種方法也可讓不同金鑰進行不中斷的轉換。對於希望在不中斷通訊的情況下更改OSPF密碼的管理員來說，這很有幫助。

如果介面設定了新金鑰，則路由器會傳送同一個封包的多個副本，每個副本都以不同的金鑰進行驗證。

當路由器檢測到其所有鄰居都已採用新金鑰時，它不會傳送重複的資料包。

以下是用於消息摘要身份驗證的命令：

- ip ospf message-digest-key keyid md5 key  （在介面下使用）

- area area-id authentication message-digest (使用 router ospf <process-id>)

以下是範例：

interface Ethernet0 ip address 10.0.0.1 255.255.255.0 ip ospf message-digest-key 10 md5 mypassword router ospf 10 network 10.0.0.0 0.0.255.255 area 0 area 0 authentication message-digest

主幹和區域0

當涉及多個區域時，OSPF具有特殊限制。如果配置了多個區域，則其中一個區域必須是區域0。這稱為主幹。

最好從區域0開始，然後再擴展到其他區域。

主幹必須位於所有其他區域的中心，即所有區域必須物理連線到主幹。

這麼做的原因是，OSPF 預期所有區域都會將路由資訊插入骨幹，然後讓骨幹將這些資訊傳播到其他區域。

此圖說明OSPF網路中的資訊流：

在此圖表中，所有區域都直接連線至骨幹。雖然是罕見的情況，但如果有新區域在引進後無法直接實體存取骨幹，您就必須設定虛擬連結。

下一節將討論虛擬鏈路。請注意不同型別的路由資訊。從區域（目標屬於區域）內生成的路由稱為區域內路由。

這些路由通常在IP路由表中用字母O表示。源自其他區域的路由稱為 inter-area 或 Summary routes。

在IP路由表中，這些路由的符號是O IA。源自其它路由協定（或不同的OSPF進程）並通過重分發注入到OSPF的路由稱為路由 external routes。

這些路由在IP路由表中用O E2或O E1表示。多條到達同一目標的路由按以下順序優先  intra-area, inter-area, external E1, external E2:。後面將介紹外部型別E1和E2。

虛擬連結

虛擬連結會使用在兩種目的：

- 連線至與骨幹沒有實體連接的區域

- 在區域0出現不連續時修補主幹。

與區域 0 沒有實體連接的區域

如前文所述，區域 0 必須位於所有其他區域的中心。在某些罕見情況下，可能有區域已與骨幹實體連接，卻仍使用虛擬連結的情形。

虛擬連結為中斷連線的區域提供了連線至骨幹的邏輯路徑。虛擬連結必須建立在擁有共同區域的兩個 ABR 之間，其中一個 ABR 必須連線至骨幹。

在此範例中，區域 1 沒有任何到達區域 0 的直接實體連接。RTA 和 RTB 間必須設定虛擬連結。區域 2 的用途為傳輸區域，而 RTB 為區域 0 的進入點。

如此一來，RTA 和區域 1 就會與骨幹建立邏輯連接。要配置虛擬鏈路，請在RTA和RTB上使用 area <area-id> virtual-link <RID> router OSPF子命令，其中area-id是傳輸區域。

圖表中為區域 2。RID 為路由器 ID。OSPF（開放最短路徑優先）路由器 ID 通常為方塊中最高層級的 IP 位址，或為最高層級的回送位址（如有一個存在）。

router-id僅在啟動時計算。要查詢router-id，請使用命 show ip ospf interface 令。

如果 10.0.0.11 和 10.0.0.22 分別為 RTA 和 RTB 的 RID，則兩個路由器的 OSPF 組態如下：

RTA# router ospf 10 area 2 virtual-link 10.0.0.22 RTB# router ospf 10 area 2 virtual-link 10.0.0.11

骨幹

OSPF 可讓骨幹不連續的部分透過虛擬連結進行連結。在某些情況下，不同的區域0需要連結在一起。

舉例而言，如果有公司嘗試以共同的區域 0 將兩個獨立的 OSPF 網路合併為一個網路，就會發生這種情況。在其他執行個體中，會新增虛擬連結作為備援，以避免部分路由器故障，導致骨幹一分為二。

可以在從每一端連線到區域0並共用公共區域的獨立ABR之間配置虛擬鏈路（如圖所示）。

在此圖表中，兩個區域 0 即透過虛擬連結互相連結。如果不存在共同區域，則可建立額外區域（例如區域 3）來當作轉換區域。

當任何與主幹不同的區域被劃分時，主幹會負責劃分工作，而不使用任何虛擬鏈路。

分割區域的其一部份會經由區域間路由讓其他部分獲悉，不會經由區域內部路由。

芳鄰

不同路由器如果共用共同區段，就會在該區段成為芳鄰。芳鄰係經由 Hello 通訊協定選出。Hello 封包會透過 IP 多點傳送，週期性從每個介面傳出（附錄 B）。

路由器一旦發現自己被列在鄰居Hello資料包中就會成為鄰居。這樣，就保證了雙向通訊。鄰居協商僅適用於主地址。

次要位址可在介面上設定，但也存在必須和主要位址屬於相同區域的限制。

兩個路由器必須都符合這個條件，才能成為芳鄰。

- Area-id: 兩台具有公共網段的路由器；它們的介面必須屬於該網段上的同一區域。介面必須屬於同一子網並具有類似的掩碼。

- Authentication: OSPF允許為特定區域配置口令。路由器若要成為芳鄰，就必須在特定區段交換相同密碼。

- Hello and Dead Intervals: OSPF在每個 Hello  網段上交換資料包。這是一種路由器使用的keepalive形式，用於確認資料段上是否存在資料段，以及在多路訪問資料段上選擇指定路由器(DR)。

間 Hello  隔指定路由器在OSPF介面上傳送 Hello  的資料包之間的時間長度（秒）。

dead interval是路由器資料包在其鄰居聲 Hello  稱OSPF路由器關閉之前未見的秒數。

- OSPF要求兩個鄰居之間的這些間隔完全相同。如其中有任何間隔不同，則這些路由器在特定的區段會無法成為芳鄰。用於設定這些計時器的路由器介面命令為： ip ospf hello-interval seconds 和 ip ospf dead-interval seconds。

- Stub area flag:  兩台路由器也必須同意資料包中的末節區 Hello 域標誌才能成為鄰居。末節區域將在後續章節中討論。考慮末節區域的定義會影響鄰居選舉過程。

相鄰關係

相鄰是芳鄰程序之後的下一個步驟。相鄰路由器是超出簡單交換範圍，進 Hello 入資料庫交換過程的路由器。

為了儘量減少特定網段上的資訊交換量，OSPF在每個多路訪問網段上選擇一個路由器作為指定路由器(DR)，選擇一個路由器作為備用指定路由器(BDR)。

選出 BDR 的目的，是在 DR 停機時當作備援機制。其背後的理念是路由器具有交換資訊的中心聯絡點。

每台路由器不與網段上的其他路由器交換更新，而是與DR和BDR交換資訊。

DR和BDR將資訊轉發給其他所有建立者。從數學上講，這減少了從O(n*n)到O(n)的資訊交換，其中n是多路訪問網段上的路由器數量。

以下路由器模型可說明 DR 和 BDR 的機制：

在此圖表中，所有路由器都共用共同的多重存取區段。由於交換資料包， Hello 一台路由器被選舉為DR，另一台被選舉為BDR。

網段上的每台路由器（已變為鄰居）都會嘗試與DR和BDR建立鄰接關係。

DR選舉

DR和BDR選擇通過協定完 Hello 成。 Hello 資料包通過每個網段上的IP組播資料包（附錄B）交換。

區段上具有最高 OSPF 優先權的路由器，就會成為該區段的 DR。選擇 BDR 時也會重複相同的程序。如有兩者優先權相同，則具有最高 RID 的路由器會優先。

介面OSPF優先順序的預設值為1。別忘了，DR 和 BDR 的概念是按照多重存取區段來進行的。介面上的OSPF優先順序值是使用interface命令 ip ospf priority <value>  完成的。

優先權值為 0，表示介面不會獲選為 DR 或 BDR。優先權為 0 的介面狀態為 DROTHER。下圖說明 DR 的選擇方式：

在此圖中，RTA和RTB具有相同的介面優先順序，但RTB具有更高的RID。因此 RTB 會成為該區段的 DR。RTC的優先順序高於RTB。因此 RTC 為該區段的 DR。

建立鄰接關係

相鄰的建立程序會在多個階段都已經完成後生效。成為相鄰的路由器，都有完全相同的連結狀態資料庫。

以下是介面與另一路由器相鄰之前所經過的狀態摘要：

- 關閉：未從網段上的任何人收到任何資訊。

- 嘗試：在幀中繼和X.25等非廣播多路訪問雲上，此狀態表示沒有從鄰居收到最近的資訊。要聯絡鄰居，請以降低的輪詢間隔傳送Hello資料包。

- Init:介面檢測到來自鄰居的Hello資料包，但尚未建立雙向通訊。

- 雙向：已與芳鄰建立雙向通訊。路由器已在芳鄰的 Hello 封包中發現自己。至此階段結束時，DR 和 BDR 的選擇流程已經完成。「雙向」階段結束時，路由器會決定是否要繼續建立相鄰。這個決定取決於當中是否有任何路由器為 DR 或 BDR，或者連結是點對點或虛擬連結。

- 預啟動：路由器會嘗試建立要在資訊交換封包中使用的初始序號。序號可確保路由器一律會取得最近的資訊。其中一個路由器會成為主要路由器，另一個則成為次要。主要路由器會向次要路由器輪詢資訊。

- 交換：路由器通過傳送的資料庫描述資料包描述其整個鏈路狀態資料庫。在此狀態下，資料包可能會泛洪到路由器上的其他介面。

- 負載：在此狀態下，路由器將完成資訊交換。路由器已經建立了鏈路狀態請求清單和鏈路狀態重傳清單。任何看起來不完整或過時的資訊都會被列入請求清單。更新將放在重新傳輸清單中，直到確認更新。

- 完全：在這個狀態，相鄰已經完成。芳鄰路由器已經完全相鄰。相鄰路由器會具有類似的連結狀態資料庫。

以下是範例：

RTA、RTB、RTD 及 RTF 會共用區域 0.0.0.0 中的一般區段 (E0)。以下為 RTA 和 RTF 的組態。RTB 和 RTD 的組態必須類似於 RTF，而且並不包含在範例中。

RTA# hostname RTA interface Loopback0 ip address 203.0.113.41 255.255.255.0 interface Ethernet0 ip address 203.0.113.141 255.255.255.0 router ospf 10 network 203.0.113.41 0.0.0.0 area 1 network 203.0.113.100 0.0.255.255 area 0.0.0.0 RTF# hostname RTF interface Ethernet0 ip address 203.0.113.142 255.255.255.0 router ospf 10 network 203.0.113.100 0.0.255.255 area 0.0.0.0

這個簡易範例示範了幾個在 OSPF 網路中進行除錯時非常實用的命令。

- show ip ospf interface  <interface>

此命令是快速檢查，可確定所有介面是否都屬於它們應該所在的區域。OSPF network命令的列出順序非常重要。

在RTA配置中，如果在「network 203.0.113.100 0.0.255.255 area 0.0.0.0」語句之前使用了「network 203.0.113.41 0.0.0.0 area 1」語句，則所有介面都將位於區域0中，這是不正確的，因為環回位於區域1中。

以下為 RTA、RTF、RTB 及 RTD 的命令輸出內容：

RTA#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 203.0.113.141 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.0.113.41, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 203.0.113.151, Interface address 203.0.113.142 Backup Designated router (ID) 203.0.113.41, Interface address 203.0.113.141 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:02 Neighbor Count is 3, Adjacent neighbor count is 3 Adjacent with neighbor 203.0.113.151 (Designated Router) Loopback0 is up, line protocol is up Internet Address 203.0.113.41 255.255.255.255, Area 1 Process ID 10, Router ID 203.0.113.41, Network Type LOOPBACK, Cost: 1 Loopback interface is treated as a stub Host RTF#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 203.0.113.142 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.0.113.151, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DR, Priority 1 Designated Router (ID) 203.0.113.151, Interface address 203.0.113.142 Backup Designated router (ID) 203.0.113.41, Interface address 203.0.113.141 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:08 Neighbor Count is 3, Adjacent neighbor count is 3 Adjacent with neighbor 203.0.113.41 (Backup Designated Router) RTD#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 203.0.113.144 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 192.0.2.174, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DROTHER, Priority 1 Designated Router (ID) 203.0.113.151, Interface address 203.0.113.142 Backup Designated router (ID) 203.0.113.41, Interface address 203.0.113.141 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:03 Neighbor Count is 3, Adjacent neighbor count is 2  Adjacent with neighbor 203.0.113.151 (Designated Router) Adjacent with neighbor 203.0.113.41 (Backup Designated Router) RTB#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 203.0.113.143 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.0.113.121, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DROTHER, Priority 1 Designated Router (ID) 203.0.113.151, Interface address 203.0.113.142 Backup Designated router (ID) 203.0.113.41, Interface address 203.0.113.141 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:03 Neighbor Count is 3, Adjacent neighbor count is 2 Adjacent with neighbor 203.0.113.151 (Designated Router) Adjacent with neighbor 203.0.113.41 (Backup Designated Router)

此輸出顯示了非常重要的資訊。在RTA輸出中，Ethernet0位於區域0.0.0.0中。進程ID為10(router ospf 10)，路由器ID為203.0.113.41。

請記住，RID是機箱或環回介面上的最高IP地址，在啟動時或重新啟動OSPF進程時計算。

介面狀態為 BDR。由於所有路由器在 Ethernet 0 的 OSPF 優先權都相同（預設值為 1），RTF 因為 RID 較高，就會獲選為 DR。

透過同樣的方式，RTA 則獲選為 BDR。RTD 和 RTB 都不是 DR 或 BDR，且狀態為 DROTHER。

注意鄰居計數和相鄰計數。RTD 有三個芳鄰，但只與其中兩個（DR 和 BDR）相鄰。RTF有三個鄰居，並且與所有鄰居相鄰，因為它是DR。

網路類型的資訊相當重要，它會決定介面的狀態。在乙太網路這類廣播網路中，DR 和 BDR 的選擇與使用者並不相關。

無論何者為 DR 或 BDR，都沒有影響。但在其他情況下，比方 Frame Relay 和 X.25 這類 NBMA 媒體，若要讓 OSPF 正確運作，這個程序就非常重要。

隨著點對點和點對多點子介面的引入，DR選舉已不再是一個問題。下一節將討論使用NBMA的OSPF。

我們需要檢視的另一個命令是：

- show ip ospf neighbor

我們來看看RTD的輸出：

RTD#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 203.0.113.121 1 2WAY/DROTHER 0:00:37 203.0.113.143 Ethernet0 203.0.113.151 1 FULL/DR 0:00:36 203.0.113.142 Ethernet0 203.0.113.41 1 FULL/BDR 0:00:34 203.0.113.141 Ethernet0

該命 show ip ospf neighbor 令顯示特定網段上所有鄰居的狀態。如果鄰居ID不屬於您檢視的網段，則不要發出警報。

在本例中，203.0.113.121和203.0.113.151不在Ethernet0上。Neighbor ID實際上是RID，它可以是機箱上的任何IP地址。

RTD和RTB只是鄰居，這就是狀態為2WAY/DROTHER的原因。RTD 與 RTA 和 RTF 相鄰，且狀態為 FULL/DR 和 FULL/BDR。

點對點介面上的鄰接關係

OSPF始終與點對點介面（例如點對點串列線路）另一端的鄰居形成鄰接關係。當中不存在 DR 或 BDR 的概念。序列介面的狀態是點對點。

非廣播式多重存取 (NBMA) 網路的相鄰

必須特別注意通過多路訪問非廣播介質（如幀中繼、X.25、ATM）配置OSPF。協定將這些介質視為任何其它廣播介質（如乙太網）。

NBMA雲通常構建在中心輻射型拓撲中。PVC或SVC在部分網狀結構中部署，並且物理拓撲不提供OSPF可以檢測的多路訪問。

由於 DR 和 BDR 必須與雲端上存在的所有路由器都建立完整實體連接，於是 DR 的選擇便是個問題。

由於缺乏廣播功能，DR和BDR需要有一個連線到雲的所有其他路由器的靜態清單。

這通過命令 neighbor ip-address [priority number] [poll-interval seconds] 實現，其中「ip-address」和「priority」是分配給鄰居的IP地址和OSPF優先順序。

優先順序為0的鄰居被視為不適合DR選舉。「poll-interval」是NBMA介面在輪詢(傳送Hello)到可能死鄰居之前等待的時間。

此命 neighbor 令適用於具有DR — 或BDR-potential（介面優先順序不等於0）的路由器。此處顯示了一個網路圖表，其中DR選取非常重要：

在此圖中，將雲的RTA介面選舉為DR至關重要。這是因為RTA是唯一一個與其他路由器具有完全連線的路由器。

DR 的選擇可能會受到介面的 ospf 優先權參數影響。不需要成為DR或BDR的路由器優先順序為0，其它路由器的優先順序可能較低。

本文neighbor 件未深入介紹該命令，該命令通過新的介面網路型別變得過時，無論底層物理介質如何。這點會在下一節說明。

避免在 NBMA 使用 DR 和芳鄰命令

有幾種方法可以用來避免靜態芳鄰組態的複雜性，以及會在非廣播式雲端成為 DR 或 BDR 的特定路由器。

指定使用哪種方法取決於我們是從起點開始啟動網路還是糾正已經存在的設計。

點對點子介面

子介面是定義介面的邏輯方式。同一物理介面可以拆分為多個邏輯介面，每個子介面都定義為點對點。

其初衷是為了更好地處理NBMA水準分割和基於向量的路由協定引起的問題。

點對點子介面具有任何物理點對點介面的屬性。就OSPF而言，鄰接始終在點對點子介面上形成，不進行DR或BDR選舉。

以下是點對點子介面的圖示：

在此圖中，在RTA上，我們可以將Serial 0拆分為兩個點對點子介面S0.1和S0.2。如此一來，OSPF 會將雲端視為一組點對點連結，而非一個多重存取網路。

點對點的唯一缺點是每個區段都屬於不同子網路。由於有些管理員已經對整個雲端指派一個 IP 子網路，因此上述特性是無法接受的。

另一種解決方法是使用雲上的IP未編號介面。但對於根據序列線路 IP 位址來管理 WAN 的管理員而言，這麼做也會造成問題。這是RTA和RTB的典型配置：

RTA# interface Serial 0 no ip address encapsulation frame-relay interface Serial0.1 point-to-point ip address 198.51.100.36 255.255.252.0 frame-relay interface-dlci 20 interface Serial0.2 point-to-point ip address 198.51.100.46 255.255.252.0 frame-relay interface-dlci 30 router ospf 10 network 198.51.100.1 0.0.255.255 area 1 RTB# interface Serial 0 no ip address encapsulation frame-relay interface Serial0.1 point-to-point ip address 198.51.100.35 255.255.252.0 frame-relay interface-dlci 40 interface Serial1 ip address 198.51.100.11 255.255.255.0 router ospf 10 network 198.51.100.1 0.0.255.255 area 1 network 198.51.100.10 0.0.255.255 area 0

選擇介面網路型別

用於設定OSPF介面的網路型別的命令為：

ip ospf network {broadcast | non-broadcast | point-to-multipoint}

點對多點介面

OSPF點對多點介面定義為具有一個或多個鄰居的編號點對點介面。這一概念將前面討論的點對點概念進一步推進了一步。

管理員不需要為了每個點對點連結的多重子網路感到棘手。將雲配置為一個子網。

對於那些遷移至點對點概念而不更改雲上IP地址的使用者而言，這非常有用。此外，它們還可以忽略DR和鄰居語句。

OSPF點對多點通過交換其他鏈路狀態更新來工作，這些更新包含許多描述與鄰居路由器連線的資訊元素。

RTA# interface Loopback0 ip address 203.0.113.101 255.255.255.0 interface Serial0 ip address 198.51.100.101 255.255.255.0 encapsulation frame-relay ip ospf network point-to-multipoint router ospf 10 network 198.51.100.1 0.0.255.255 area 1 RTB# interface Serial0 ip address 198.51.100.102 255.255.255.0 encapsulation frame-relay ip ospf network point-to-multipoint interface Serial1 ip address 198.51.100.11 255.255.255.0 router ospf 10 network 198.51.100.1 0.0.255.255 area 1 network 198.51.100.10 0.0.255.255 area 0

請注意，未配置靜態幀中繼對映語句；這是因為逆向ARP負責將DLCI對映到IP地址。下面我們來看一些 show ip ospf interface 和輸 show ip ospf route 出：

RTA#show ip ospf interface s0 Serial0 is up, line protocol is up Internet Address 198.51.100.101 255.255.255.0, Area 0 Process ID 10, Router ID 203.0.113.101, Network Type POINT_TO_MULTIPOINT, Cost: 64 Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT, Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 Hello due in 0:00:04 Neighbor Count is 2, Adjacent neighbor count is 2 Adjacent with neighbor 198.51.100.174 Adjacent with neighbor 198.51.100.130 RTA#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 198.51.100.103 1 FULL/ - 0:01:35 198.51.100.103 Serial0 198.51.100.102 1 FULL/ - 0:01:44 198.51.100.102 Serial0 RTB#show ip ospf interface s0 Serial0 is up, line protocol is up Internet Address 198.51.100.102 255.255.255.0, Area 0 Process ID 10, Router ID 198.51.100.102, Network Type POINT_TO_MULTIPOINT, Cost: 64 Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT, Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 Hello due in 0:00:14 Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 203.0.113.101 RTB#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 203.0.113.101 1 FULL/ - 0:01:52 198.51.100.101 Serial0

點對多點的唯一缺點是，它會為所有芳鄰都產生多個主機路由（包含遮罩 255.255.255.255 的路由）。請注意 RTB 的 IP 路由表中的主機路由：

RTB#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.210 255.255.255.255 is subnetted, 1 subnets O 203.0.113.101 [110/65] via 198.51.100.101, Serial0 198.51.100.1 is variably subnetted, 3 subnets, 2 masks O 198.51.100.103 255.255.255.255 [110/128] via 198.51.100.101, 00:00:00, Serial0 O 198.51.100.101 255.255.255.255 [110/64] via 198.51.100.101, 00:00:00, Serial0 C 198.51.100.100 255.255.255.0 is directly connected, Serial0 172.16.0.0 255.255.255.0 is subnetted, 1 subnets C 172.16.0.1 is directly connected, Serial1 RTC#show ip route 203.0.113.210 255.255.255.255 is subnetted, 1 subnets O 203.0.113.101 [110/65] via 198.51.100.101, Serial1 198.51.100.1 is variably subnetted, 4 subnets, 2 masks O 198.51.100.102 255.255.255.255 [110/128] via 198.51.100.101,Serial1 O 198.51.100.101 255.255.255.255 [110/64] via 198.51.100.101, Serial1 C 198.51.100.100 255.255.255.0 is directly connected, Serial1 172.16.0.0 255.255.255.0 is subnetted, 1 subnets O 172.16.0.1 [110/192] via 198.51.100.101, 00:14:29, Serial1

請注意，在RTC IP路由表中，網路172.16.0.1可以通過下一跳198.51.100.101到達，而不能通過198.51.100.102到達，通常在共用相同子網的幀中繼雲上看到。

這是點對多點配置的優點之一，因為您不需要在RTC上進行靜態對映即可到達下一躍點198.51.100.102。

廣播介面

此方法是靜態列出所有當前 neighbor 鄰居的命令的一種解決方法。介面在邏輯上設定為廣播，其行為與路由器連線到LAN類似。

執行DR和BDR選舉以確保基於介面優先順序進行全網狀拓撲或靜態選擇DR。將介面設為廣播的命令是：

ip ospf network broadcast

OSPF和路由總結

摘要就是將多個路由整合在單一通告中。這項作業通常是在區域邊界路由器 (ABR) 的邊界完成。

雖然在任何兩個區域之間都配置了彙總，但最好是在主幹方向上進行彙總。這樣，骨幹將接收所有聚合地址，然後將已經彙總的聚合地址注入到其他區域。

摘要有兩種類型：

- 區域間路由摘要

- 外部路由摘要

區域間路由摘要

區域間路由總結在ABR上完成，適用於AS內的路由。它不適用於通過重分佈注入到OSPF的外部路由。

為了充分發揮摘要的優勢，指派區域的網路編號時務必採取連續方法，以便將這些位址歸納到一個範圍之內。

要指定地址範圍，請在路由器配置模式下執行此任務：

area area-id range address mask

其中area-id是包含要彙總的網路的區域。「地址」和「掩碼」指定要在一個範圍內總結的地址範圍。以下是總結的範例：

在此圖中，RTB將從172.16.0.64到172.16.0.95的子網範圍劃分為一個範圍：172.16.0.64 255.255.224.0。要達到此目的，請用掩碼255.255.224.0對64的前三個最左邊的位進行掩碼。

RTC 會使用相同方式，在骨幹內產生摘要位址 172.16.0.96 255.255.224.0。請注意，此彙總之所以成功，是因為我們有兩個不同的子網範圍：64-95和96-127。

如果區域 1 和區域 2 之間的子網路重疊，摘要就難以執行。主幹區域將接收重疊的彙總範圍，中間的路由器不知道根據彙總地址將流量傳送到何處。

這是RTB的相對配置：

RTB# router ospf 100 area 1 range 172.16.0.64 255.255.224.0

在Cisco IOS®軟體版本12.1(6)之前，建議在ABR上手動配置摘要地址的丟棄靜態路由，以防止可能出現的路由環路。對於所示的總結路由，使用以下命令：

ip route 172.16.0.64 255.255.224.0 null0

在 Cisco IOS® 12.1(6) 及更新版本，捨棄路由會依預設自動產生。要放棄路由，請在以下位置配置命 router ospf令：

- 任一 [no] discard-route internal

- 或 [no] discard-route external

有關彙總地址度量計算的說明：呼叫RFC 1583 ，以根據可用元件路徑的最小度量計算彙總路由的度量。

RFC 2178（已因 RFC 2328 而遭淘汰）變更了計算摘要路徑指標的指定方法，因此成本最高的摘要元件就會決定摘要的成本。

在 Cisco IOS® 12.0 以前，思科都是遵循當時仍最新的 RFC 1583 來執行。到了 Cisco IOS® 12.0，思科變更了 OSPF 的行為，開始遵循 RFC 2328 的新標準。

如果某個區域中的所有ABR未同時升級到新代碼，則這種情況可能導致次優路由。

為了處理這個潛在問題，Cisco IOS® 的 OSPF 組態新增了一個命令，可讓您選擇性停用與 RFC 2328 的相容性。

新的配置命令位於 router ospf下，其語法為：

[no] compatible rfc1583

預設參數與 RFC 1583 相容。以下版本的Cisco IOS®提供此命令：

- 12.1(03)DC

- 12.1(03)DB

- 12.001(001.003)- 12.1主線

- 12.1(01.03)T - 12.1 T系列

- 12.000(010.004)- 12.0主線

- 12.1(01.03)E - 12.1 E培訓

- 12.1(01.03)EC

- 12.0(10.05)W05(18.00.10)

- 12.0(10.05)SC

外部路由彙總

外部路由總結特定於通過重分發注入到OSPF的外部路由。此外，請確保摘要的外部範圍具有連續性。

摘要的兩個不同路由器範圍如有重疊，可能導致封包傳送到錯誤目的地。通過子命令完成匯router ospf 總：

summary-address ip-address mask

此命令僅在ASBR重分發到OSPF時有效。

在此圖表中，RTA 和 RTD 藉由重新分配將外部路由插入 OSPF。RTA 會插入 128.213.64-95 範圍的子網路，而 RTD 會插入 128.213.96-127 範圍的子網路。若要將子網路摘要至各別路由器的相同範圍：

RTA# router ospf 100 summary-address 172.16.0.64 255.255.224.0 redistribute bgp 50 metric 1000 subnets RTD# router ospf 100 summary-address 172.16.0.96 255.255.224.0 redistribute bgp 20 metric 1000 subnets

這會導致RTA產生一個外部路由172.16.0.64 255.255.224.0，並導致RTD產生172.16.0.96 255.255.224.0。

請注意，如 summary-address 果在RTB上使用該命令，則不起作用，因為RTB不會執行到OSPF的重分發。

Stub 區域

OSPF允許將某些區域配置為末節區域。外部網路（例如從其他協定重分配到OSPF的網路）不允許泛洪到末節區域。

從這些區域到外部世界的路由基於預設路由。Stub 區域組態縮減了區域內的拓撲資料庫大小，也降低了路由器在該區域內的記憶體需求。

如果某個區域只有一個出口點，或者如果路由到區域外部不需要採用最佳路徑，則此區域可以限定末節。

後一說明表示具有多個出口點的末節區域也有一個或多個區域邊界路由器，這些路由器將預設設定注入該區域。

到達外部世界的路由可能採用次優路徑，通過比其它出口點更靠近目的地的出口點到達目的地以外的區域。

其他末節區域限制是末節區域不能用作虛擬鏈路的中轉區域。此外，ASBR不能位於存根區域的內部。

設立這些限制的原因在於， Stub 區域主要不是為了執行外部路由而設定，而任何這類情況都會導致外部連結插入該區域。無法將主幹配置為末節。

Stub 區域中的所有 OSPF 路由器都必須設為 Stub 路由器。當某個區域配置為末節時，屬於該區域的所有介面會交換帶有指示該介面為末節標誌的Hello資料包。

實際上，這只是Hello資料包（E位）中設定為0的一個位。具有公共網段的所有路由器都必須同意該標誌。否則，它們不會成為鄰居，路由也不會生效。

Stub 區域的延伸稱為完全 Stub 區域。Cisco通過在存根區域配置中新增 no-summary 關鍵字來表明這一點。

完全末梢區域是阻止外部路由和彙總路由（區域間路由）進入該區域的區域。

這樣，區域內路由和預設值0.0.0.0便成為注入該區域的唯一路由。

- 將區域配置為末節區域的命令是：  area <area-id> stub [no-summary]

- 設定區域中預設成本的指令為： area area-id default-cost cost

如果不以該命令設定成本，ABR 通告的成本就是 1。

假設將區域2配置為末節區域。此示例顯示了區域2存根配置之前和之後的RTE路由表。

RTC# interface Ethernet 0 ip address 203.0.113.141 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:06:31, Serial0 198.51.100.1 is variably subnetted, 2 subnets, 2 masks O E2 172.16.0.64 255.255.192.0 [110/10] via 203.0.113.151, 00:00:29, Serial0 O IA 172.16.0.63 255.255.255.252 [110/84] via 203.0.113.151, 00:03:57, Serial0 172.16.0.108 255.255.255.240 is subnetted, 1 subnets O 172.16.0.208 [110/74] via 203.0.113.151, 00:00:10, Serial0

RTE獲知了區域間路由(O IA)203.0.113.140和172.16.0.63，並獲知了區域內路由(O)172.16.0.208和外部路由(O E2)172.16.0.64。

要將區域2配置為末節區域：

RTC# interface Ethernet 0 ip address 203.0.113.141 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 area 2 stub RTE# interface Serial1 ip address 203.0.113.152 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2 area 2 stub

請注意， stub 此命令也是在RTE上設定的，否則RTE永遠不會成為RTC的鄰居。未設定預設開銷，因此RTC將0.0.0.0通告給RTE，度量為1。

RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.151 to network 0.0.0.0 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:26:58, Serial0 198.51.100.1 255.255.255.252 is subnetted, 1 subnets O IA 172.16.0.63 [110/84] via 203.0.113.151, 00:26:59, Serial0 172.16.0.108 255.255.255.240 is subnetted, 1 subnets O 172.16.0.208 [110/74] via 203.0.113.151, 00:26:59, Serial0 O*IA 0.0.0.0 0.0.0.0 [110/65] via 203.0.113.151, 00:26:59, Serial0

請注意，除了被預設路由0.0.0.0替換的外部路由外，所有路由都顯示。路由的開銷恰好是65（RTC通告的T1線路+ 1為64）。

我們已經將區域 2 設為完全 Stub ，並將 0.0.0.0 的預設成本變更為 10。

RTC# interface Ethernet 0 ip address 203.0.113.141 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 area 2 stub no-summary area 2 default cost 10 RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 172.16.0.108 255.255.255.240 is subnetted, 1 subnets O 172.16.0.208 [110/74] via 203.0.113.151, 00:31:27, Serial0 O*IA 0.0.0.0 0.0.0.0 [110/74] via 203.0.113.151, 00:00:00, Serial0

請注意，顯示的唯一路由是區域內路由(O)和預設路由0.0.0.0。外部和內部區域路由均遭封鎖。

現在，預設路由的開銷為74（T1線路64 + RTC通告的10）。在這個案例中，RTE 不需要組態。

該區域已經處於末節狀 no-summary 態，該命令完全不會像該命令那樣影響 stub Hello資料包。

將路由重新分配至 OSPF

將路由從其他路由協定或從靜態路由重分發到OSPF會導致這些路由成為OSPF外部路由。要將路由重分發到OSPF，請在路由器配置模式下使用以下命令：

redistribute protocol [process-id] [metric value] [metric-type value] [route-map map-tag] [subnets]

註：此命令必須在一行上。

protocol 和 process-id 分別是要插入 OSPF 的通訊協定及其程序 ID（如果存在）。指標是指派到外部路由的成本。

如果未指定度量，則在從除BGP路由以外的所有協定重分發路由時，OSPF將設定預設值20，而BGP路由的度量為1。度量型別將在下一段落中討論。

路由對應是在路由網域之間控制路由的重新分配時所使用的方法。路由對應的格式為：

route-map map-tag [[permit | deny] | [sequence-number]]

通過路由重分發到OSPF，如果未指定關鍵字，則僅重分發未 subnets 劃分子網的路由。

E1 與 E2 外部路由比較

外部路由分為兩種型別：外部型別1和外部型別2。兩者之間的差異在於路由開銷（度量）的計算方式。

類型 2 路由的成本始終是外部成本，與連線至該路由的內部成本無關。

類型 1 的成本則是外部成本加上連線到該路由所需的內部成本。

目的地相同時，一律優先使用類型 1 路由而非類型 2 路由。

如此圖表所示，RTA 會將兩個外部路由都重新分配至 OSPF。N1 和 N2 的外部成本都是 x。唯一的區別是N1使用度量型別1重新分發到OSPF，而N2使用度量型別2重新分發。

如果跟蹤從區域1到區域0的路由，則從RTB或RTC中看到到達N2的成本始終為x。不考慮沿途的內部成本。另一方面，到達 N1 的成本會累計至內部成本中。從 RTB 角度來看，成本是 x+y，而從 RTC 角度來看，成本則是 x+y+z。

如果外部路由都是類型 2 路由，且前往目的地網路的外部成本相同，則系統會選取連線至 ASBR 成本最低的路徑做為最佳路徑。

除非另有指定，否則賦予外部路由的預設外部型別是型別2。

假設我們新增了指向RTC上E0的兩條靜態路由：10.0.0.16 255.255.255.0（/24標籤表示從最左側開始的24位掩碼）和198.51.100.1 255.255.0.0。

這顯示了在RTC上的命令中使用不同引數時 redistribute 的不同行為：

RTC# interface Ethernet0 ip address 203.0.113.142 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 redistribute static network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 ip route 10.0.0.16 255.255.255.0 Ethernet0 ip route 198.51.100.1 255.255.0.0 Ethernet0 RTE# interface Serial0 ip address 203.0.113.152 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2

on RTE的 show ip route 輸出：

RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:02:31, Serial0 O E2 198.51.100.1 [110/20] via 203.0.113.151, 00:02:32, Serial0

請注意，由於我們沒有使用關鍵字，因此出現的唯一外部路由是198.51.100. subnet 1。請記住，如果 subnet 不使用關鍵字，則僅重分發未劃分子網的路由。在此案例中，10.0.0.16 是類別 A 路由，並且已經設定子網路，因此並未重新分配。由於未 metric 使用關鍵字(或路由器OSPF下的語 default-metric 句)，分配給外部路由的開銷為20（BGP的預設值為1）。

redistribute static metric 50 subnets RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 10.0.0.16 255.255.255.0 is subnetted, 1 subnets O E2 10.0.0.16 [110/50] via 203.0.113.151, 00:00:02, Serial0 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:00:02, Serial0 O E2 198.51.100.1 [110/50] via 203.0.113.151, 00:00:02, Serial0

請注意，10.0.0.16 目前已顯示，且外部路由的成本為 50。由於外部路由屬於類型 2 (E2)，因此尚未新增內部成本。假設現在，我們將型別更改為E1:

redistribute static metric 50 metric-type 1 subnets RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 10.0.0.16 255.255.255.0 is subnetted, 1 subnets O E1 10.0.0.16 [110/114] via 203.0.113.151, 00:04:20, Serial0 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:09:41, Serial0 O E1 198.51.100.1 [110/114] via 203.0.113.151, 00:04:21, Serial0

請注意，型別已更改為E1，並且成本已按S0的內部成本遞增，即64，總成本為64+50=114。

假設我們將路由對應新增至 RTC 組態：

RTC# interface Ethernet0 ip address 203.0.113.142 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 redistribute static metric 50 metric-type 1 subnets route-map STOPUPDATE network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 ip route 10.0.0.16 255.255.255.0 Ethernet0 ip route 198.51.100.1 255.255.0.0 Ethernet0 access-list 1 permit 198.51.100.1 0.0.255.255 route-map STOPUPDATE permit 10 match ip address 1

路由對映僅允許將198.51.100.1重分發到OSPF中，並拒絕其餘的路由。這就是為什麼10.0.0.16不再顯示在RTE路由表中。

RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:00:04, Serial0 O E1 198.51.100.1 [110/114] via 203.0.113.151, 00:00:05, Serial0

將OSPF重分佈到其他協定中

使用有效指標

每當您將OSPF重新分發到其他協定時，都必須遵守這些協定的規則。尤其是，套用的指標必須與該通訊協定使用的指標相符。

舉例來說，RIP 指標是 1 到 16 的躍點數量，數量為 1 表示只剩一個躍點即可連上網路，16 則表示網路無法連線。另一方面，IGRP 和 EIGRP 則需要以下形式的指標：

default-metric bandwidth delay reliability loading mtu

VLSM

另一個需要考量的問題是 VLSM（可變長度子網路遮罩）（附錄 C）。OSPF 可乘載相同主網路的多個子網路資訊，但 RIP 和 IGRP 等其他通訊協定則無法（EIGRP 可使用 VLSM）。

如果同一個主網跨越OSPF和RIP域的邊界，則重分發到RIP或IGRP的VLSM資訊將丟失，並且必須在RIP或IGRP域中配置靜態路由。此範例說明此問題。

在此圖中，RTE運行OSPF，RTA運行RIP。RTC執行兩個協定之間的重新分配。問題在於C類網路203.0.113.150是可變子網劃分，它有兩個不同的掩碼255.255.255.252和255.255.192。

以下是 RTE 和 RTA 的組態和路由表：

RTA# interface Ethernet0 ip address 203.0.113.68 255.255.255.192 router rip network 203.0.113.150 RTC# interface Ethernet0 ip address 203.0.113.67 255.255.255.192 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 router rip redistribute ospf 10 metric 2 network 203.0.113.150 RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 is variably subnetted, 2 subnets, 2 masks C 203.0.113.150 255.255.255.252 is directly connected, Serial0 O 203.0.113.64 255.255.255.192 [110/74] via 203.0.113.151, 00:15:55, Serial0 RTA#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.192 is subnetted, 1 subnets C 203.0.113.64 is directly connected, Ethernet0

請注意，RTE已識別203.0.113.150有兩個子網，而RTA認為它只有一個子網（介面上配置的子網）。

有關子網203.0.113.150 255.255.255.252的資訊在RIP域中丟失。為了到達該子網，需要在RTA上配置靜態路由：

RTA# interface Ethernet0 ip address 203.0.113.68 255.255.255.192 router rip network 203.0.113.150 ip route 203.0.113.150 255.255.255.0 203.0.113.67

這樣一來，RTA 就能連線至其他子網路。

相互重分發

協定間的相互再分配必須以非常謹慎且受控的方式進行。錯誤的組態可能造成路由資訊的迴圈。

從經驗法則而言，相互重新分配的目的是在從通訊協定取得資訊後，不讓該資訊重新插入相同通訊協定。

必須在重分發路由器上應用被動介面和分發清單。使用OSPF等鏈路狀態協定過濾資訊非常困難。

Distribute-list out 在ASBR上工作以過濾重分發到其他協定中的路由。在任何路由器上工作以阻止路由表中的路 Distribute-list in 由，但並不阻止鏈路狀態資料包的傳播；下游路由器仍將具有路由。

如果可以在其他協定上應用過濾器來防止環路，則最好儘量避免任何OSPF過濾器。

為了說明此情況，假設RTA、RTC和RTE運行RIP。RTC和RTA也運行OSPF。RTC和RTA都會在RIP和OSPF之間進行重分發。

如果不希望將來自RTE的RIP注入到OSPF域，請在RTC的E0上為RIP設定一個被動介面。但是，您已允許將來自RTA的RIP注入到OSPF。結果如下：

附註：請勿使用此組態。

RTE# interface Ethernet0 ip address 203.0.113.151 255.255.255.192 interface Serial0 ip address 203.0.113.152 255.255.255.192 router rip network 203.0.113.150 RTC# interface Ethernet0 ip address 203.0.113.67 255.255.255.192 interface Serial1 ip address 203.0.113.151 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 router rip redistribute ospf 10 metric 2 passive-interface Ethernet0 network 203.0.113.150 RTA# interface Ethernet0 ip address 203.0.113.68 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 router rip redistribute ospf 10 metric 1 network 203.0.113.150 RTC#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.192 is subnetted, 4 subnets C 203.0.113.150 is directly connected, Serial1 C 203.0.113.64 is directly connected, Ethernet0 R 203.0.113.151 [120/1] via 203.0.113.68, 00:01:08, Ethernet0 [120/1] via 203.0.113.152, 00:00:11, Serial1 O 203.0.113.151 [110/20] via 203.0.113.68, 00:21:41, Ethernet0

請注意，RTC有兩條路徑可到達203.0.113.151子網：Serial 1和Ethernet 0（E0顯然是錯誤的路徑）。發生這種情況的原因是RTC通過OSPF將該條目授予RTA，而RTA通過RIP將該條目授回，因為RTA沒有通過RIP獲知。

這個範例是在錯誤組態之下可能發生的極小規模迴圈。在大型網路中，這種情況還會更加嚴重。

若要修正這個範例中的情況，請勿透過被動介面在 RTA Ethernet 0 傳送 RIP。如果乙太網路上有些路由器是僅限 RIP 的路由器，這個做法就不合適。

在這種情況下，您可以允許RTC在乙太網上傳送RIP；這樣，由於水準分割，RTA不會線上路上傳送回（如果水準分割關閉，在NBMA介質上則不工作）。

水平分割不會透過相同通訊協定在收到更新資訊的相同介面上傳回該資訊。

另一種好的方法是在RTA上應用分發清單，以拒絕通過OSPF獲知的子網返回到乙太網上的RIP。使用後者：

RTA# interface Ethernet0 ip address 203.0.113.68 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 router rip redistribute ospf 10 metric 1 network 203.0.113.150 distribute-list 1 out ospf 10

RTC路由表的輸出為：

RTF#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.192 is subnetted, 4 subnets C 203.0.113.150 is directly connected, Serial1 C 203.0.113.64 is directly connected, Ethernet0 R 203.0.113.151 [120/1] via 203.0.113.152, 00:00:19, Serial1 O 203.0.113.151 [110/20] via 203.0.113.68, 00:21:41, Ethernet0

將預設值插入 OSPF

可以強制自治系統邊界路由器(ASBR)生成到OSPF域的預設路由。每當將路由重分發到OSPF域時，路由器都會成為ASBR。

但是，預設情況下，ASBR不會生成到OSPF路由域的預設路由。

要讓OSPF生成預設路由，請使用：

default-information originate [always] [metric metric-value] [metric-type type-value] [route-map map-name]

附註：此命令必須放在同一行中。

產生預設路由的方式有兩種。第一種是在網域中通告 0.0.0.0，但前提必須是 ASBR 本身已經有預設路徑。第二個是通告0.0.0.0，無論ASBR是否有預設路由。後者可以使用關鍵字進行設 always置。

使用關鍵字 always 時請小心。如果您的路由器在域內通告了預設路由(0.0.0.0)，並且自身沒有預設路由或到達目的地的路徑，則路由會中斷。

指標和指標類型是指派到預設路由的成本和類型（E1 或 E2）。路由對映指定需要滿足的一組條件，以便生成預設值。

假設RTE向RIP中注入預設路由0.0.0.0。RTC的最後選用網關為203.0.113.152。在我們使用命令配置RTC之前，RTC不會將預設值傳播到 default-information originate RTA。

RTC#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.152 to network 0.0.0.0 203.0.113.150 255.255.255.192 is subnetted, 4 subnets C 203.0.113.150 is directly connected, Serial1 C 203.0.113.64 is directly connected, Ethernet0 R 203.0.113.151 [120/1] via 203.0.113.152, 00:00:17, Serial1 O 203.0.113.151 [110/20] via 203.0.113.68, 2d23, Ethernet0 R* 0.0.0.0 0.0.0.0 [120/1] via 203.0.113.152, 00:00:17, Serial1 [120/1] via 203.0.113.68, 00:00:32, Ethernet0 RTC# interface Ethernet0 ip address 203.0.113.67 255.255.255.192 interface Serial1 ip address 203.0.113.151 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 default-information originate metric 10 router rip redistribute ospf 10 metric 2 passive-interface Ethernet0 network 203.0.113.150 RTA#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.67 to network 0.0.0.0 203.0.113.150 255.255.255.192 is subnetted, 4 subnets O 203.0.113.150 [110/74] via 203.0.113.67, 2d23, Ethernet0 C 203.0.113.64 is directly connected, Ethernet0 O E2 203.0.113.151 [110/10] via 203.0.113.67, 2d23, Ethernet0 C 203.0.113.151 is directly connected, Ethernet1 O*E2 0.0.0.0 0.0.0.0 [110/10] via 203.0.113.67, 00:00:17, Ethernet0

請注意，RTA已獲取0.0.0.0作為度量為10的外部路由。最後選用網關按預期設定為203.0.113.67。

OSPF 設計提示

OSPF RFC(1583)沒有指定區域內路由器數量或每個網段的鄰居數量或最佳網路架構方式的任何准則。

OSPF網路設計有不同的方法。需要記住的重要一點是，任何協定在壓力下都可能失敗。

我們的想法不是挑戰協定，而是與協定一起工作，以獲得最佳行為。

每個區域的路由器數量

每個區域的最大路由器數量取決於以下幾個因素：

- 你們有什麼地方呢？

- 您在該區域具有何種 CPU 處理能力？

- 什麼樣的媒體？

- OSPF 能在 NBMA 模式中執行嗎？

- 您的NBMA網路是否網狀網路？

- 您在網路上是否有大量外部 LSA？

- 其他領域是否進行了很好的總結？

由於這個原因，指定每個區域的路由器數量上限相當困難。請洽詢您當地的銷售或系統工程師，以便取得特定網路設計的協助。

鄰居數量

連線到同一個LAN的路由器數量也很重要。每個LAN都有一個DR和BDR，它們與所有其他路由器建立鄰接關係。

LAN 上存在的芳鄰越少，DR 或 BDR 需要建立的相鄰數量就越少。這都要取決於路由器本身的效能。

您隨時都能變更 OSPF 選擇 DR 的優先順序。請避免讓相同路由器在多個區段上成為 DR。

如果DR選擇基於最高的RID，則一台路由器可能會在其連線的所有網段上意外成為DR。當其他路由器空閒時，此路由器需要額外工作。

每 ABR 區域數量

ABR會保留其服務的所有區域的資料庫副本。例如，如果路由器連線到五個區域，它必須保留五個不同資料庫的清單。

每個ABR的區域數是一個取決於許多因素的數字，這些因素包括區域型別（正常、末節、NSSA）、ABR CPU功率、每個區域的路由數以及每個區域的外部路由數。

有鑑於此，我們無法針對每個 ABR 的具體區域數量提出建議。當您隨時都可以讓區域分散到其他路由器時，就不必讓 ABR 超出負荷。

此圖顯示了包含五個不同資料庫（包括區域0）的一個ABR和每個包含三個資料庫的兩個ABR之間的區別。

這些只是指導方針。每個ABR配置的區域越多，效能越低。在某些情況下，可以容忍效能較低。

完整網狀與部分網狀的比較

低頻寬和過多鏈路狀態(與幀中繼或X.25等非廣播多路訪問(NBMA)雲相關聯)的組合始終是一項挑戰

事實證明，部分網狀拓撲比全網狀拓撲的表現要好得多。經過細心配置的點對點或點對多點網路，比起必須要處理 DR 問題的多點網路，效能會大幅提升。

記憶體問題

瞭解特定 OSPF 組態需要多少記憶體並非易事。有過多外部路由插入 OSPF 網域時，就會發生記憶體問題。

與4台路由器和33,000條外部路由注入到OSPF的主幹區域相比，具有40台路由器且預設路由通往外部世界的主幹區域記憶體問題較少。

通過良好的OSPF設計也可以節省記憶體。區域邊界路由器上的彙總和末節區域的使用可以進一步減少交換的路由數量。

OSPF使用的總記憶體是路由表(show ip route summary)中使用的記憶體和鏈路狀態資料庫中使用的記憶體的總和。

這個數量是以經驗法則得出的估計值。路由表中的每個入口都會使用約 200 到 280 個位元組，再加上每個額外路徑使用的 44 個位元組。

每個LSA消耗一個100位元組的開銷加上實際鏈路狀態通告的大小，可能還有60到100位元組（對於路由器鏈路，這取決於路由器上的介面數量）。

而其他程序和 Cisco IOS® 本身使用的記憶體也必然要再加入計算中。要瞭解確切數字，請啟用show memory 和不啟用OSPF時運行。

系統使用的處理器記憶體落差，可能就會是答案（請保留組態的備份）。

通常，小於500K位元組的路由表可以容納2到4 MB的RAM；大於500K的大型網路需要8到16 MB，如果從Internet注入了完整路由，則需要32到64 MB。

摘要

RFC 1583中定義的OSPF協定提供高功能的開放協定，允許多個供應商網路與TCP/IP協定系列通訊。

OSPF 的幾種優勢包含快速聚合、VLSM、驗證、階層式分段、路由摘要，以及處理複雜大型網路時必需的匯總功能。

附錄A：鏈路狀態資料庫同步

在此圖中，同一網段上的路由器在形成成功鄰接之前會經歷一系列狀態。鄰居和DR選舉通過Hello協定完成。

如果路由器在芳鄰的 Hello 封包發現自己，狀態就會轉換成「雙向」。在這個階段，DR 和 BDR 的選擇會在多重存取區段執行。

如果兩個路由器其一是 DR 或 BDR，或透過點對點或虛擬連結來連線，路由器就會繼續與芳鄰建立相鄰。

在Exstart狀態下，兩個鄰居形成主/次關係，在主/次關係中，它們就初始序列號達成一致。序列號用於檢測舊或重複的鏈路狀態通告(LSA)。

在Exchange狀態下，Database Description Packets(DD)會進行交換。這些是鏈路狀態報頭形式的縮寫鏈路狀態通告。報頭提供足夠的資訊來標識鏈路。

主節點傳送與來自輔助節點的DD資料包確認的DD資料包。處於交換狀態或更高狀態的所有鄰接關係都由泛洪過程使用。

這些鄰接關係完全能夠傳輸和接收所有型別的OSPF路由協定資料包。

在載入狀態中，連結狀態要求封包會傳送給芳鄰，藉此要求更多最近已發現但尚未接收的通告。每個路由器都會建立必要 LSA 的清單，以便將相鄰更新至最新狀態。

系統會維護Retransmission清單，以確保每個LSA都得到確認。若要針對可用的相鄰指定連結狀態通告的間隔秒數：

ip ospf retransmit-interval seconds

響應於請求資料包，傳送鏈路狀態更新資料包。鏈路狀態更新資料包在所有鄰接關係上泛洪。

在Full狀態下，相鄰路由器完全相鄰。公共區域的資料庫是相鄰路由器之間的完全匹配。

如果 LSA 的資料庫中有存留期欄位，或這個欄位的資訊泛洪至整個區域，欄位會以週期性方式遞增。當LSA到達Maxage時，如果LSA不在任何鄰居重傳清單中，則會從資料庫中刷新該LSA。

鏈路狀態通告

連結狀態通告可區分成五種類型。路由器鏈路(RL)由所有路由器生成。這類連結描述了特定區域中的路由器介面狀態。

這些鏈路僅在路由器區域內泛洪。網路連結(NL)是由特定區段的DR產生的；這些表示連線到該區段的路由器。

摘要連結 (SL) 是區域間連結（類型 3），這種連結會列出其他區域當中的網路，但仍屬於自治系統。

總結鏈路由ABR從主幹注入其他區域，並從其他區域注入主幹。這些鏈路用於區域之間的聚合。

其他型別的摘要連結是asbr-summary連結。這類連結是指向 ASBR 的類型 4 連結。這樣做是為了確保所有路由器知道退出自治系統的方式。

最後一個型別是型別5，即外部鏈路(EL)，這些由ASBR注入到域中。

上圖說明了不同的鏈路型別。RTA將路由器鏈路(RL)生成到區域1，並且還會生成網路鏈路(NL)，因為它恰好是該特定網段上的DR。

RTB是一個ABR，它將RL生成到區域1和區域0。RTB 亦會將摘要連結產生至區域 1 和區域 0。這些連結是兩個區域之間交換的網路清單。

RTB 亦會將 ASBR（自治系統邊界路由器）摘要連結插入區域 1。如此表示 RTD、自治系統邊界路由器 (ASBR) 存在。

類似地，作為另一個ABR的RTC為區域0和區域2生成RL，並將SL(3)生成到區域2（因為它沒有通告任何ASBR），並將SL(3,4)生成到區域0以通告RTD。

RTD 會為區域 2 產生 RL，並為經由 BGP 得知的外部路由產生 EL。外部路由器泛洪到整個域。

本表為連結狀態通告的摘要。

LS型別

通告說明

1

路由器鏈路通告。由每台路由器為其所屬的每個區域生成。這種通告描述了路由器連結對區域的狀態。這些只在特定區域泛洪。

2

網路鏈路通告。由指定路由器生成。它們描述連線到特定網路的路由器組。會在包含網路的區域中泛洪。

3 或 4

摘要連結播發。會由區域邊界路由器產生。這種通告用於描述區域間路由。第3類描述通往網路的路由，也用於聚合路由。第4類描述到ASBR的路由。

5

AS 外部連結通告。源自ASBR。它們描述到AS外部目標的路由。除了殘端區域外，到處都泛濫。

如果使用，詳細檢視OSPF資料show ip ospf database detail庫，則會有不同的關鍵字， Link-Data Link-ID和 Link-state ID。這些術語會變得不一致，因為每個術語的值都取決於鏈路狀態型別和鏈路型別。

我們會審視這類詞彙，並根據路由器中所見的 OSPF 資料庫提供詳細的範例。

鏈路狀態ID主要定義鏈路狀態的標識，具體取決於LS型別。

路由器鏈路由發出通告的路由器的路由器ID(RID)標識。

網路鏈路由DR的相對IP地址標識。這是有意義的，因為網路鏈路是由指定路由器發起的。

摘要連結（類型 3）的識別依據是連結所指目的地的 IP 網路編號。

ASBR摘要鏈接（摘要連結型別4）由ASBR的RID標識。

外部鏈路由它們指向的外部目標的IP網路號標識。下表彙總了此資訊：

LS 類型

連結狀態 ID（在參照路由器後，就資料庫的整體層面來看，它可稱為連結 ID）

1

原始路由器 ID (RID)。

2

網路指定路由器的IP介面地址。

3

目的地網路編號。

4

它描述的 AS 邊界路由器的路由器 ID。

5

外部網路號。

可用的不同連結：

末節網路鏈路：此術語與末節區域無關。末節網段是僅連線一個路由器的網段。

具有一個連線的路由器的乙太網或令牌環網段被視為到末節網路的鏈路。環回介面也被視為使用255.255.255.255掩碼（主機路由）到末節網路的鏈路。

點對點連結：這類連結可能是實體或邏輯的（子介面）點對點序列連結連線。這些鏈路可以編號（鏈路上配置了IP地址）或未編號。

轉換連結：這種介面會連線至與多個路由器連接的網路，因此稱為轉換。

虛擬鏈路：這些邏輯鏈路將沒有物理連線的區域連線到主幹。虛擬鏈路被視為編號的點對點鏈路。

link-ID是鏈路本身的標識。每個連結類型的 ID 都不同。

transit link由該鏈路上DR的IP地址標識。

編號點對點連結的識別依據是點對點連結上的芳鄰路由器 RID。

虛擬連結和點對點連結相同。

末節網路鏈路由到末節網路的介面的IP地址標識。下表彙總了此資訊：

連結類型

連結ID（這適用於單個連結）

點對點

鄰居路由器ID

轉換網路的連結

DR的介面地址

到末節網路的鏈路（在環回掩碼為255.255.255.255的情況下）

網路/子網編號

虛擬連結

芳鄰路由器 ID

Link Data是鏈路的IP地址，末節網路除外，其中鏈路資料是網路掩碼。

連結型別

連結資料

末節網路

網路遮罩

其他網路（僅適用於路由器鏈路）

路由器 - 關聯的 IP 介面位址

最後，通告路由器是傳送 LSA 的路由器具有的 RID。

OSPF資料庫示例

根據此網路圖、配置和IP路由表，以下是理解OSPF資料庫的不同方法。

RTA# interface Loopback0 ip address 203.0.113.41 255.255.255.255 interface Ethernet0 ip address 203.0.113.68 255.255.255.192 interface Ethernet1 ip address 203.0.113.151 255.255.255.192 router ospf 10 network 203.0.113.100 0.0.255.255 area 0 RTA#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.67 to network 0.0.0.0 203.0.113.128 255.255.255.192 is subnetted, 1 subnets O E2 203.0.113.1288 [110/10] via 203.0.113.67, 00:00:50, Ethernet0 203.0.113.30 255.255.255.255 is subnetted, 1 subnets C 203.0.113.41 is directly connected, Loopback0 203.0.113.150 255.255.255.192 is subnetted, 3 subnets O IA 203.0.113.150 [110/74] via 203.0.113.67, 00:00:50, Ethernet0 C 203.0.113.64 is directly connected, Ethernet0 C 203.0.113.151 is directly connected, Ethernet1 O*E2 0.0.0.0 0.0.0.0 [110/10] via 203.0.113.67, 00:00:50, Ethernet0 RTE# ip subnet-zero interface Ethernet0 ip address 203.0.113.16 255.255.255.192 interface Serial0 ip address 203.0.113.152 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.63 area 1 default-information originate metric 10 router rip network 203.0.113.128 ip route 0.0.0.0 0.0.0.0 Ethernet0 RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 0.0.0.0 to network 0.0.0.0 203.0.113.128 255.255.255.192 is subnetted, 1 subnets C 203.0.113.1288 is directly connected, Ethernet0 203.0.113.30 is variably subnetted, 2 subnets, 2 masks O IA 203.0.113.41 255.255.255.255 [110/75] via 203.0.113.151, 00:16:31, Serial0 203.0.113.150 255.255.255.192 is subnetted, 3 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.64 [110/74] via 203.0.113.151, 00:16:31, Serial0 O IA 203.0.113.151 [110/84] via 203.0.113.151, 00:16:31, Serial0 S* 0.0.0.0 0.0.0.0 is directly connected, Ethernet0 RTC# ip subnet-zero interface Ethernet0 ip address 203.0.113.67 255.255.255.192 interface Serial1 ip address 203.0.113.151 255.255.255.192 router ospf 10 network 203.0.113.64 0.0.0.63 area 0 network 203.0.113.150 0.0.0.63 area 1 RTF#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.152 to network 0.0.0.0 203.0.113.128 255.255.255.192 is subnetted, 1 subnets O E2 203.0.113.1288 [110/10] via 203.0.113.152, 04:49:05, Serial1 203.0.113.30 255.255.255.255 is subnetted, 1 subnets O 203.0.113.41 [110/11] via 203.0.113.68, 04:49:06, Ethernet0 203.0.113.150 255.255.255.192 is subnetted, 3 subnets C 203.0.113.150 is directly connected, Serial1 C 203.0.113.64 is directly connected, Ethernet0 O 203.0.113.151 [110/20] via 203.0.113.68, 04:49:06, Ethernet0 O*E2 0.0.0.0 0.0.0.0 [110/10] via 203.0.113.152, 04:49:06, Serial1

資料庫的一般檢視

RTC#show ip ospf database OSPF Router with ID (203.0.113.67) (Process ID 10) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 203.0.113.67 203.0.113.67 48 0x80000008 0xB112 2 203.0.113.16 203.0.113.16 212 0x80000006 0x3F44 2 Summary Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 203.0.113.41 203.0.113.67 602 0x80000002 0x90AA 203.0.113.64 203.0.113.67 620 0x800000E9 0x3E3C 203.0.113.151 203.0.113.67 638 0x800000E5 0xA54E Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 203.0.113.41 203.0.113.41 179 0x80000029 0x9ADA 3 203.0.113.67 203.0.113.67 675 0x800001E2 0xDD23 1 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.68 203.0.113.41 334 0x80000001 0xB6B5 Summary Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.150 203.0.113.67 792 0x80000002 0xAEBD Summary ASB Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.16 203.0.113.67 579 0x80000001 0xF9AF AS External Link States Link ID ADV Router Age Seq# Checksum Tag 0.0.0.0 203.0.113.16 1787 0x80000001 0x98CE 10 203.0.113.1288 203.0.113.16 5 0x80000002 0x93C4 0

這是整個OSPF資料庫的一般情況。資料庫是以區域為根據而列出。在本例中，我們檢視RTC資料庫，它是ABR。區域 1 和區域 0 的資料庫都已列出。

區域 1 由路由器連結與摘要連結共組成。由於沒有任何 DR 存在於區域 1 的任何區段，因此沒有任何網路連結存在。由於僅有 ASBR（自治系統邊界路由器）剛好處於區域 0，因此沒有任何摘要 ASBR 連結存在於區域 1。

外部鏈路不屬於任何特定區域，因為它們被泛洪。請注意，所有鏈路都是從區域中的所有路由器上收集的累積鏈路。

請專注於於區域 0 的資料庫。此處指的連結 ID 實際上為連結狀態 ID。這表示整個路由器，而不是特定的鏈路。這個 ID 看起來並不明確。

請記住，此高級鏈路ID（實際上是鏈路狀態ID）代表整個路由器，而不僅僅是鏈路。

路由器鏈路

Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 203.0.113.41 203.0.113.41 179 0x80000029 0x9ADA 3 203.0.113.67 203.0.113.67 675 0x800001E2 0xDD23 1

從路由器鏈路開始。為203.0.113.41和203.0.113.67列出兩個條目，它們是區域0中兩個路由器的RID。圖中還顯示了每台路由器在區域0中的鏈路數。RTA有三個鏈路連線到區域0,RTC有一個鏈路。RTC 路由器連結的詳細檢視如下：

RTC#show ip ospf database router 203.0.113.67  OSPF Router with ID (203.0.113.67) (Process ID 10) Router Link States (Area 1) LS age: 1169 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.67 Advertising Router: 203.0.113.67 LS Seq Number: 80000008 Checksum: 0xB112 Length: 48 Area Border Router Number of Links: 2 Link connected to: another Router (point-to-point) (Link ID) Neighbor Router ID: 203.0.113.16 (Link Data) Router Interface address: 203.0.113.151 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.150 (Link Data) Network Mask: 255.255.255.192 Number of TOS metrics: 0 TOS 0 Metrics: 64

這裡需要注意的是，OSPF為每個點對點介面生成一個額外的末節鏈路。如果您看到鏈路計數大於物理介面數，請不要感到困惑。

Router Link States (Area 0) LS age: 1227 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.67 Advertising Router: 203.0.113.67 LS Seq Number: 80000003 Checksum: 0xA041 Length: 36 Area Border Router  Number of Links: 1 Link connected to: a Transit Network (Link ID) Designated Router address: 203.0.113.68 (Link Data) Router Interface address: 203.0.113.67 Number of TOS metrics: 0 TOS 0 Metrics: 10

請注意，鏈路ID等於連線的DR的IP地址（而不是RID）；本例中為203.0.113.68。鏈路資料是RTC IP地址。

網路連結

Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.68 203.0.113.41 334 0x80000001 0xB6B5

在此情況下所列的一個網路連結（DR 的介面 IP 位址［非 RID］顯示之網路連結）為 203.0.113.68。此條目的詳細檢視：

RTC#show ip ospf database network OSPF Router with ID (203.0.113.67) (Process ID 10) Net Link States (Area 0) Routing Bit Set on this LSA LS age: 1549 Options: (No TOS-capability) LS Type: Network Links Link State ID: 203.0.113.68 (address of Designated Router) Advertising Router: 203.0.113.41 LS Seq Number: 80000002 Checksum: 0xB4B6 Length: 32 Network Mask: 255.255.255.192 Attached Router: 203.0.113.41 Attached Router: 203.0.113.67

請注意，網路連結列出連線到傳輸網路的路由器的RID；在這種情況下，會列出RTA和RTC的RID。

摘要連結

Summary Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.150 203.0.113.67 792 0x80000002 0xAEBD Area 0 has one summary link represented by the IP network address of the link 203.0.113.150. This link was injected by the ABR RTC from area 1 into area 0. A detailed view of this summary link, summary links for area 1 are not listed here: RTC#show ip ospf database summary (area 1 is not listed) Summary Net Link States (Area 0) LS age: 615 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.150 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000003 Checksum: 0xACBE Length: 28 Network Mask: 255.255.255.192 TOS: 0 Metric: 64

摘要ASBR連結

Summary ASB Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.16 203.0.113.67 579 0x80000001 0xF9AF

這表示ASBR是誰。在此情況下 ASBR 為 RTE，以其 RID 203.0.113.16 作為表示。進入區域0的廣告路由器是帶RID 203.0.113.67的RTC。摘要 ASBR 項目的詳細圖示如下：

RTC#show ip ospf database asbr-summary OSPF Router with ID (203.0.113.67) (Process ID 10) Summary ASB Link States (Area 0) LS age: 802 Options: (No TOS-capability) LS Type: Summary Links(AS Boundary Router) Link State ID: 203.0.113.16 (AS Boundary Router address) Advertising Router: 203.0.113.67 LS Seq Number: 80000003 Checksum: 0xF5B1 Length: 28 Network Mask: 0.0.0.0 TOS: 0 Metric: 64

外部連結

AS External Link States Link ID ADV Router Age Seq# Checksum Tag 0.0.0.0 203.0.113.16 1787 0x80000001 0x98CE 10 203.0.113.1288 203.0.113.16 5 0x80000002 0x93C4 0

我們有兩個外部鏈路，第一個是通過命令注入到OSPF的0.0.0. default-information originate 0。

另一個條目是網路203.0.113.128 8，該網路通過重分發注入到OSPF。

通告這些網路的路由器是203.0.113.16，即RTE的RID。

這是外部路由的詳細檢視：

RTC#show ip ospf database external OSPF Router with ID (203.0.113.67) (Process ID 10) AS External Link States Routing Bit Set on this LSA LS age: 208 Options: (No TOS-capability) LS Type: AS External Link Link State ID: 0.0.0.0 (External Network Number ) Advertising Router: 203.0.113.16 LS Seq Number: 80000002 Checksum: 0x96CF Length: 36 Network Mask: 0.0.0.0 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 10 Forward Address: 0.0.0.0 External Route Tag: 10 Routing Bit Set on this LSA LS age: 226 Options: (No TOS-capability) LS Type: AS External Link Link State ID: 203.0.113.1288 (External Network Number) Advertising Router: 203.0.113.16 LS Seq Number: 80000002 Checksum: 0x93C4 Length: 36 Network Mask: 255.255.255.192 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 10 Forward Address: 0.0.0.0 External Route Tag: 0

記下轉發地址。每當此位址為0.0.0.0時，都會表示外部路由可通過通告路由器到達，本例中為203.250.16.130。

這就是為什麼ABR會將ASBR的標識注入使用ASBR摘要連結的其他區域。

此轉送位址並非始終為 0.0.0.0。在部分情況下，可能為相同區段中其他路由器的 IP 位址。此圖說明此情況：

在這種情況下，RTB運行BGP和RTA，OSPF運行域其餘部分。RTA不運行OSPF。RTB將BGP路由重分發到OSPF。

根據OSPF，RTB是通告外部路由的ASBR。此案例中的轉發地址設定為172.16.0.11，而不是通告路由器(0.0.0.0)RT B。

沒必要再多跳了。OSPF域內的路由器必須通過OSPF到達轉發地址，才能將外部路由放入IP路由表中。

如果轉發地址通過其他協定到達或不可訪問，則外部條目將位於資料庫中，但不位於IP路由表中。

如果 RTB 和 RTC 都是 ASBR（RTC 藉由 RTA 執行 BGP），就會出現另一種狀況。這種情況下，為了消除重複作業，兩個路由器當中將有一個不會通告（排清）外部路由。具有較高 RID 的路由器會取得優先權。

完整的資料庫

這是整個資料庫的清單，作為一個練習。您現在已可以檢視並說明每個項目了：

RTC#show ip ospf database router OSPF Router with ID (203.0.113.67) (Process ID 10) Router Link States (Area 1) LS age: 926 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.67 Advertising Router: 203.0.113.67 LS Seq Number: 80000035 Checksum: 0x573F Length: 48 Area Border Router Number of Links: 2 Link connected to: another Router (point-to-point) (Link ID) Neighbor Router ID: 203.0.113.16 (Link Data) Router Interface address: 203.0.113.151 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.150 (Link Data) Network Mask: 255.255.255.192 Number of TOS metrics: 0 TOS 0 Metrics: 64 Routing Bit Set on this LSA LS age: 958 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.16 Advertising Router: 203.0.113.16 LS Seq Number: 80000038 Checksum: 0xDA76 Length: 48 AS Boundary Router Number of Links: 2 Link connected to: another Router (point-to-point) (Link ID) Neighbor Router ID: 203.0.113.67 (Link Data) Router Interface address: 203.0.113.152 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.150 (Link Data) Network Mask: 255.255.255.192 Number of TOS metrics: 0 TOS 0 Metrics: 64 Router Link States (Area 0) Routing Bit Set on this LSA LS age: 1107 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.41 Advertising Router: 203.0.113.41 LS Seq Number: 8000002A Checksum: 0xC0B0 Length: 60 AS Boundary Router Number of Links: 3 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.41 (Link Data) Network Mask: 255.255.255.255 Number of TOS metrics: 0 TOS 0 Metrics: 1 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.151 (Link Data) Network Mask: 255.255.255.192 Number of TOS metrics: 0 TOS 0 Metrics: 10 Link connected to: a Transit Network (Link ID) Designated Router address: 203.0.113.68 (Link Data) Router Interface address: 203.0.113.68 Number of TOS metrics: 0 TOS 0 Metrics: 10 LS age: 1575 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.67 Advertising Router: 203.0.113.67 LS Seq Number: 80000028 Checksum: 0x5666 Length: 36 Area Border Router Number of Links: 1 Link connected to: a Transit Network (Link ID) Designated Router address: 203.0.113.68 (Link Data) Router Interface address: 203.0.113.67 Number of TOS metrics: 0 TOS 0 Metrics: 10 RTC#show ip ospf database network OSPF Router with ID (203.0.113.67) (Process ID 10) Net Link States (Area 0) Routing Bit Set on this LSA LS age: 1725 Options: (No TOS-capability) LS Type: Network Links Link State ID: 203.0.113.68 (address of Designated Router) Advertising Router: 203.0.113.41 LS Seq Number: 80000026 Checksum: 0x6CDA Length: 32 Network Mask: 255.255.255.192 Attached Router: 203.0.113.41 Attached Router: 203.0.113.67 RTC#show ip ospf database summary OSPF Router with ID (203.0.113.67) (Process ID 10) Summary Net Link States (Area 1) LS age: 8 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.41 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000029 Checksum: 0x42D1 Length: 28 Network Mask: 255.255.255.255 TOS: 0 Metric: 11 LS age: 26 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.64 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000030 Checksum: 0xB182 Length: 28 Network Mask: 255.255.255.192 TOS: 0 Metric: 10 LS age: 47 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.151 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000029 Checksum: 0x1F91 Length: 28 Network Mask: 255.255.255.192 TOS: 0 Metric: 20 Summary Net Link States (Area 0) LS age: 66 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.150 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000025 Checksum: 0x68E0 Length: 28 Network Mask: 255.255.255.192 TOS: 0 Metric: 64 RTC#show ip ospf asbr-summary OSPF Router with ID (203.0.113.67) (Process ID 10) Summary ASB Link States (Area 0) LS age: 576 Options: (No TOS-capability) LS Type: Summary Links(AS Boundary Router) Link State ID: 203.0.113.16 (AS Boundary Router address) Advertising Router: 203.0.113.67 LS Seq Number: 80000024 Checksum: 0xB3D2 Length: 28 Network Mask: 0.0.0.0 TOS: 0 Metric: 64 RTC#show ip ospf database external OSPF Router with ID (203.0.113.67) (Process ID 10) AS External Link States Routing Bit Set on this LSA LS age: 305 Options: (No TOS-capability) LS Type: AS External Link Link State ID: 0.0.0.0 (External Network Number) Advertising Router: 203.0.113.16 LS Seq Number: 80000001 Checksum: 0x98CE Length: 36 Network Mask: 0.0.0.0 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 10 Forward Address: 0.0.0.0 External Route Tag: 10 Routing Bit Set on this LSA LS age: 653 Options: (No TOS-capability) LS Type: AS External Link Link State ID: 203.0.113.1288 (External Network Number) Advertising Router: 203.0.113.16 LS Seq Number: 80000024 Checksum: 0x4FE6 Length: 36 Network Mask: 255.255.255.192 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 10 Forward Address: 0.0.0.0 External Route Tag: 0

附錄B:OSPF和IP組播地址

OSPF使用IP組播交換Hello資料包和鏈路狀態更新。使用D類地址實現IP組播地址。D類地址範圍從224.0.0.0到239.255.255.255。

為OSPF保留一些特殊的IP組播地址：

- 224.0.0.5：所有 OSPF 路由器都必須有能力對這個位址進行傳輸與接聽。

- 224.0.0.6：所有DR和BDR路由器都必須能夠傳輸和偵聽此地址。

IP 多點傳送位址和 MAC 位址之間的對應存在以下規則：

針對支援多點傳播的多重存取網路，IP 位址的低位 23 位元會作為 MAC 多點傳播位址 01-005E-00-00-00 的低位位元使用。例如：

- 224.0.0.5 會對應至 01-00-5E-00-00-05

- 224.0.0.6將對映到01-00-5E-00-00-06

OSPF在權杖環網路上使用廣播。

附錄 C：可變長度子網路遮罩 (VLSM)

這是一個二進位/十進位制轉換圖表：

0000

0001

0010

0011

0100

0101

0110

0111

0

0000

16

0000

32

0000

48

0000

64

0000

80

0000

96

0000

112

0000

1

0001

17

0001

33

0001

49

0001

65

0001

81

0001

97

0001

113

0001

2

0010

18

0010

34

0010

50

0010

66

0010

82

0010

98

0010

114

0010

3

0011

19

0011

35

0011

51

0011

67

0011

83

0011

99

0011

115

0011

4

0100

20

0100

36

0100

52

0100

68

0100

84

0100

100

0100

116

0100

5

0101

21

0101

37

0101

53

0101

69

0101

85

0101

101

0101

117

0101

6

0110

22

0110

38

0110

54

0110

70

0110

86

0110

102

0110

118

0110

7

0111

23

0111

39

0111

55

0111

71

0111

87

0111

103

0111

119

0111

8

1000

24

1000

40

1000

56

1000

72

1000

88

1000

104

1000

120

1000

9

1001

25

1001

41

1001

57

1001

73

1001

89

1001

105

1001

121

1001

10

1010

26

1010

42

1010

58

1010

74

1010

90

1010

106

1010

122

1010

11

1011

27

1011

43

1011

59

1011

75

1011

91

1011

107

1011

123

1011

12

1100

28

1100

44

1100

60

1100

76

1100

92

1100

108

1100

124

1100

13

1101

29

1101

45

1101

61

1101

77

1101

93

1101

109

1101

125

1101

14

1110

30

1110

46

1110

62

1110

78

1110

94

1110

110

1110

126

1110

15

1111

31

1111

47

1111

63

1111

79

1111

95

1111

111

1111

127

1111

1000

1001

1010

1011

1100

1101

1110

1111

128

0000

144

0000

160

0000

176

0000

192

0000

208

0000

224

0000

240

0000

129

0001

145

0001

161

0001

177

0001

193

0001

209

0001

225

0001

241

0001

130

0010

146

0010

162

0010

178

0010

194

0010

210

0010

226

0010

242

0010

131

0011

147

0011

163

0011

179

0011

195

0011

211

0011

227

0011

243

0011

132

0100

148

0100

164

0100

180

0100

196

0100

212

0100

228

0100

244

0100

133

0101

149

0101

165

0101

181

0101

197

0101

213

0101

229

0101

245

0101

134

0110

150

0110

166

0110

182

0110

198

0110

214

0110

230

0110

246

0110

135

0111

151

0111

167

0111

183

0111

199

0111

215

0111

231

0111

247

0111

136

1000

152

1000

168

1000

184

1000

200

1000

216

1000

232

1000

248

1000

137

1001

153

1001

169

1001

185

1001

201

1001

217

1001

233

1001

249

1001

138

1010

154

1010

170

1010

186

1010

202

1010

218

1010

234

1010

250

1010

139

1011

155

1011

171

1011

187

1011

203

1011

219

1011

235

1011

251

1011

140

1100

156

1100

172

1100

188

1100

204

1100

220

1100

236

1100

252

1100

141

1101

157

1101

173

1101

189

1101

205

1101

221

1101

237

1101

253

1101

142

1110

158

1110

174

1110

190

1110

206

1110

222

1110

238

1110

254

1110

143

1111

159

1111

175

1111

191

1111

207

1111

223

1111

239

1111

255

1111

可變長度子網路遮罩幕後的概念是提供更大彈性，將主網路分割成多個子網路，進而維持在每個子網路都保留足夠主機數量的能力。

如果沒有VLSM，一個子網掩碼只能應用於主網路。根據所需的子網數量限制主機數量。

即使您挑選的遮罩為您提供足夠的子網路，您並不能在每個子網路都分配足夠的主機。對主機而言也是一樣的情況，即使遮罩容許足夠的主機，但卻不能提供足夠的子網路空間。

例如，假設您獲指派分類 C 的網路 192.168.0.0，且您需要將該網路分割成三個子網路，其中一個擁有 100 個主機，其餘則有 50 個主機。

忽略兩端限制0和255，理論上您有256個地址(192.168.0.0 - 192.168.0.255)。沒有VLSM就無法完成此操作。

可以使用少數幾個子網掩碼；請注意，一個掩碼必須具有連續數目的從左側開始的子網掩碼，其餘位全部為0。

-252 (1111 1100) The address space is divided into 64. -248 (1111 1000) The address space is divided into 32. -240 (1111 0000) The address space is divided into 16. -224 (1110 0000) The address space is divided into 8. -192 (1100 0000) The address space is divided into 4. -128 (1000 0000) The address space is divided into 2.

如果沒有VLSM，您可以選擇使用掩碼255.255.255.128並將地址劃分為2個子網，每個子網128台主機，或者使用255.255.255.192並將空間劃分為4個子網，每個子網64台主機。

這不符合要求。如果您使用多個遮罩，您可使用遮罩 128，並使用遮罩 192 進一步為第二區塊的位址建立子網路。

下表顯示了如何劃分地址空間：

將 IP 位址分配至每個遮罩時請多加留意。一旦將 IP 位址指派至路由器或主機，該區段就用盡了整個子網路。

例如，如果將192.168.0.10 255.255.255.128分配給E2，則192.168.0.0和192.168.0.127之間的整個地址範圍將被E2佔用。

同樣，如果您將192.168.0.160 255.255.255.128分配給E2，則192.168.0.128和192.168.0.255之間的整個地址範圍將被E2網段佔用。

下圖說明了路由器如何解譯這些位址。請記住，每次使用不同於自然掩碼的掩碼（例如建立子網）時，如果組合IP地址和掩碼導致子網為零，路由器就會發出抱怨。

在路由 ip subnet-zero 器上使用命令可解決此問題。

RTA# ip subnet-zero interface Ethernet2 ip address 192.168.0.10 255.255.255.128 interface Ethernet3 ip address 192.168.0.160 255.255.255.192 interface Ethernet4 ip address 192.168.0.226 255.255.255.192 RTA#show ip route connected 192.168.0.0 is variably subnetted, 3 subnets, 2 masks C 192.168.0.0 255.255.255.128 is directly connected, Ethernet2 C 192.168.0.128 255.255.255.192 is directly connected, Ethernet3 C 192.168.0.192 255.255.255.192 is directly connected, Ethernet4

相關資訊

- Cisco IOS® IP 路由：OSPF 命令參考資料

- OSPF 和 MTU

- 由於MTU不匹配，OSPF鄰居停滯在exstart和exchange狀態

- OSPF支援頁

- OSPF：常見問題

- 技術支援與檔案 — Cisco Systems