目錄

簡介

必要條件

需求

採用元件

慣例

OSPF轉發地址說明

轉發地址相關的常見OSPF路由問題

路由表中缺少網路

請勿在ABR上進行彙總

防止將子網作為外部路由重分佈到OSPF中

相關資訊

簡介

本檔案將說明與開放最短路徑優先(OSPF)轉送位址相關的概念和問題。請參閱為什麼有些OSPF路由出現在資料庫中，而不是路由表？有關排除OSPF故障的詳細資訊。

只有使用低於12.1(3)的Cisco IOS®軟體版本時，才能看到本文說明的問題。 Cisco IOS軟體版本12.1(3)和更新版本中的重新分發行為已變更。如需更多詳細資訊，請參閱Cisco錯誤ID CSCdp72526(僅限註冊客戶)。 此錯誤具有受影響的Cisco IOS軟體版本清單和修正版本。另請參閱將連線的網路重新分發到OSPF，其中解釋了Cisco IOS行為的更改。

必要條件

需求

本文檔的讀者應瞭解以下主題：

- 常規IP路由。

- OSPF路由協定概念和術語。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- 思科2503路由器

- 在所有路由器上運行的Cisco IOS®軟體版本12.2(24a)

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

OSPF轉發地址說明

如圖所示，OSPF轉發地址的概念被引入，以避免流量路由到外部自治系統(AS)時產生額外的跳數。

在圖中，OSPF域中有兩台路由器連線到外部域。但是，只有Router 1與Router 100交換路由資訊。Router 1將從路由器100獲知的資訊重新分發到OSPF並將此資訊通告到OSPF域的其餘部分。在此過程中，路由器1會成為其重新分發到OSPF域的資訊的下一跳（或轉發地址）。當路由器2收到來自OSPF域的發往外部域中某個地址的資料包時，它將資料包轉發到路由器1。然後路由器1將其轉發到路由器100。轉發地址概念允許避免此額外躍點，因為它允許路由器1將另一路由器的IP地址指定為轉發地址。在圖中，Router 1可以將Router 100指定為Router 1重新分發到OSPF域的外部資訊的轉發地址。當Router 2收到來自OSPF網域且目的地為外部網域中位址的封包時，便會將該封包轉送到路由器100。結果便是通過路由器1避免了額外的躍點。

自治系統邊界路由器(ASBR)(上圖中的路由器1)指定的轉發地址值可以是0.0.0.0或非零。0.0.0.0地址表示始發路由器(ASBR)是下一跳。轉發地址由以下條件確定：

- 如果ASBR重新分配路由且未在這些路由的下一跳介面上啟用OSPF，則轉發地址設定為0.0.0.0。如果Router 1沒有在乙太網介面上啟用OSPF，則圖中顯示此情況。

- 以下條件將轉發地址欄位設定為非零地址：

- 在ASBR的下一跳介面上啟用了OSPF，

- ASBR的下一跳介面在OSPF和

- ASBR的下一跳介面不是點對點AND

- ASBR的下一跳介面不是點對多點AND

- ASBR的下一跳介面地址屬於router ospf命令中指定的網路範圍。

- 除這些條件外，任何其他條件都將轉發地址設定為0.0.0.0。

有關如何設定轉發地址並影響路徑選擇的資訊，請參閱轉發地址對型別5 LSA路徑選擇的影響。

轉發地址相關的常見OSPF路由問題

圖中，R2513路由器只運行RIP（並且可能連線到僅RIP網路），新增到令牌環網路中。從R2513獲知的路由由ASBR(R2515)重分發到OSPF時，某些路由沒有安裝到某些路由器的路由表中。這些表中給出了每台路由器的相關配置資訊。

hostname R2504

interface Serial0

ip address 1.1.1.2 255.255.255.0

interface TokenRing0

ip address 3.3.4.2 255.255.255.0

router ospf 1

network 1.1.1.0 0.0.0.255 area 0

network 3.0.0.0 0.255.255.255 area 1

area 1 range 3.0.0.0 255.0.0.0

hostname R2507

interface Serial0

ip address 1.1.1.1 255.255.255.0

interface Serial1

ip address 7.7.7.1 255.255.255.0

router ospf 1

network 1.1.1.1 0.0.0.0 area 0

default- information originate metric 20

ip route 0.0.0.0 0.0.0.0 Serial1

hostname R2513

interface TokenRing0

ip address 3.3.4.4 255.255.255.0

interface ethernet 0

ip address 200.1.1.4 255.255.255.0

router rip

network 3.0.0.0

network 200.1.1.0

hostname R2515

interface TokenRing0

ip address 3.3.4.3 255.255.255.0

interface ethernet 0

ip address 3.44.66.3 255.255.255.0

interface ethernet 1

ip address 3.22.88.3 255.255.255.0

router ospf 1

redistribute rip metric 20 subnets

network 0.0.0.0 255.255.255.255 area 1

router rip

network 3.0.0.0

passive-interface ethernet 0

passive-interface ethernet 1

下表中的配置顯示R2515將RIP重分佈到OSPF中，並且R2504（區域邊界路由器[ABR]）建立了總結網路3.0.0.0/8。

以下是每台啟用OSPF的路由器的路由表：

R2507#

show ip route

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

1.0.0.0/ 24 is subnetted, 1 subnets

C          1.1.1.0 is directly connected, Serial0

3.0.0.0/ 8 is variably subnetted, 4 subnets, 2 masks

O IA        3.0.0.0/ 8 [110/ 70] via 1.1.1.2, 00: 15: 37, Serial0

O E2        3.3.4.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0

O E2        3.22.88.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0

O E2        3.44.66.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0

7.0.0.0/ 24 is subnetted, 1 subnets

C           7.7.7.0 is directly connected, Serial1

S*     0.0.0.0/ 0 is directly connected, Serial1

R2504# show ip route

Gateway of last resort is 1.1.1.1 to network 0.0.0.0

1.0.0.0/ 24 is subnetted, 1 subnets

C             1.1.1.0 is directly connected, Serial0

3.0.0.0/ 8 is variably subnetted, 4 subnets, 2 masks

S             3.0.0.0/ 8 is directly connected, Null0

C             3.3.4.0/ 24 is directly connected, TokenRing0

O             3.22.88.0/ 24 [110/ 11117] via 3.3.4.3, 00: 15: 16, TokenRing0

O             3.44.66.0/ 24 [110/ 11117] via 3.3.4.3, 00: 15: 16, TokenRing0

O  E2 200.1.1.0/ 24 [110/ 20] via 3.3.4.4, 00: 06: 16, TokenRing0

O* E2 0.0.0.0/ 0 [110/ 20] via 1.1.1.1, 00: 15: 16, Serial0

R2515# show ip route

Gateway of last resort is 3.3.4.2 to network 0.0.0.0

1.0.0.0/ 24 is subnetted, 1 subnets

O IA         1.1.1.0 [110/ 70] via 3.3.4.2, 00: 10: 28, TokenRing0

3.0.0.0/ 24 is subnetted, 3 subnets

C            3.3.4.0 is directly connected, TokenRing0

R          200.1.1.0/ 24 [120/ 1] via 3.3.4.4, 00: 00: 10, TokenRing0

O* E2 0.0.0.0/ 0 [110/ 20] via 3.3.4.2, 00: 10: 28, TokenRing0

路由表中缺少網路

R2515具有網路200.1.1.0/24的RIP(R)派生路由。R2515是ASBR，並將RIP協定重新分發到OSPF。R2504從R2515瞭解網路200.1.1.0/24，並將其作為OSPF外部第2類(E2)路由安裝到其路由表中。問題在於R2507的路由表中沒有網路200.1.1.0/24。

R2507具有網路3.3.4.0/24、3.22.88.0/24和3.44.66.0/24的外部路由，即使所有這些網路都應包含在3.0.0.0/8的摘要中。

之所以會出現這些外部路由，是因為將RIP重分佈到OSPF的ASBR在這三個子網上運行RIP。因此，它將子網作為外部路由重分發到OSPF。由於這些子網是外部路由，因此ABR(R2504)不會彙總這些子網。 外部OSPF路由只能由ASBR總結。在本例中為R2515。ABR僅彙總從區域1到區域0的內部OSPF路由。

注意：修正了Cisco錯誤ID CSCdp72526(僅限註冊客戶)後，OSPF不會產生重疊外部網路的5類鏈路狀態通告(LSA)。R2507隻有總結區域間路由3.0.0.0/8。然後，R2507安裝200.1.1.0/24作為轉發地址，並且可以通過區域間路由3.0.0.0/8到達。這符合RFC 2328 。

此輸出顯示R2507的OSPF資料庫中網路200.1.1.0/24的外部LSA:

R2507#

show ip ospf data external 200.1.1.0

OSPF Router with ID (7.7.7.1) (Process ID 1)

Type- 5 AS External Link States

LS age: 72

Options: (No TOS- capability, DC)

LS Type: AS External Link

Link State ID: 200.1.1.0 (External Network Number )

Advertising Router: 3.44.66.3

LS Seq Number: 80000001

Checksum: 0xF161

Length: 36

Network Mask: /24

Metric Type: 2 (Larger than any link state path)

TOS: 0

Metric: 20

Forward Address: 3.3.4.4

External Route Tag: 0

OSPF允許ASBR將另一台路由器指定為外部路由的轉發地址。在這種情況下，ASBR(R2515)已指定3.3.4.4作為外部網路200.1.1.0的轉發地址。

RFC 2328 ，第16.4節（計算為外部路由），說明：

「如果轉發地址為非零，請在路由表中查詢轉發地址。匹配的路由表條目必須指定區域內或區域間路徑；如果不存在此類路徑，則對LSA不執行任何操作，並考慮清單中的下一個路徑。」

在本例中，到達轉發地址3.3.4.4的路由如下所示：

R2507#

show ip route 3.3.4.4

Routing entry for 3.3.4.0/ 24

Known via "ospf 1", distance 110, metric 20,type extern 2, forward metric 70

Redistributing via ospf 1

Last update from 1.1.1.2 on Serial0, 00: 00: 40 ago

Routing Descriptor Blocks:

* 1.1.1.2, from 3.44.66.3, 00: 00: 40 ago, via Serial0

Route metric is 20, traffic share count is 1

由於匹配規則最長，3.3.4.4的轉發地址由外部路由3.3.4.0/24而不是區域間彙總路由3.0.0.0/8匹配。由於路由器沒有到轉發地址的內部OSPF路由，因此它不在路由表中安裝外部路由200.1.1.0/24。使用外部路由到達另一個外部路由可能會導致環路。因此OSPF不允許使用。

請勿在ABR上進行彙總

如何確保非零轉發地址作為區域內或區域間路由存在於路由表中？

第一個解決方案不是在ABR上進行彙總。

第二個解決方案不是配置任何LSA第3類過濾。如果過濾了第3類路由，則無法訪問show ip ospf database external命令輸出中顯示的轉發地址。這會使外部網路無法連線。在本例中為R2504。這會導致區域0中的路由器具有其他區域中的所有特定子網的區域間路由（而不是外部路由）。

使用以下命令刪除ABR上的彙總：

R2504(config)#

router ospf 1

R2504(config- router)# no area 1 range 3.0.0.0 255.0.0.0

此命令在R2507的路由表中的結果如下所示：

R2507# show ip route

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

1.0.0.0/ 24 is subnetted,        1 subnets

C            1.1.1.0        is directly connected, Serial0

3.0.0.0/ 24 is subnetted,        3 subnets

O IA      3.3.4.0 [110/ 70] via 1.1.1.2, 00: 00:        48, Serial0

O IA      3.22.88.0 [110/ 80] via 1.1.1.2, 00:        00: 48, Serial0

O IA      3.44.66.0 [110/ 80] via 1.1.1.2, 00:        00: 48, Serial0

7.0.0.0/ 24 is subnetted,        1 subnets

C           7.7.7.0 is        directly connected, Serial1

O E2 200.1.1.0/ 24 [110/ 20] via 1.1.1.2, 00: 00: 48, Serial0

S*     0.0.0.0/ 0 is directly connected, Serial1

R2507# show ip route 3.3.4.4

Routing entry for 3.3.4.0/24

Known via "ospf 1", distance 110, metric 70, type inter area

Last update from 1.1.1.2 on Serial1, 00:03:52 ago

Routing Descriptor Blocks:

* 1.1.1.2, from 3.3.4.2, 00:03:52 ago, via Serial1

Route metric is 74, traffic share count is 1

從輸出中，您可以看到地址3.3.4.4可通過到網路3.3.4.0/24的區域間路由到達。刪除ABR R2504上的總結後，路由器R2507會通過5類LSA和3類LSA獲知通往此網路的路由。由於OSPF優先使用區域內路由，而不是使用到同一網路的外部路由，因此它會將其安裝為區域間路由。由於R2507現在具有到達轉發地址3.3.4、4的區域間路由，因此外部網路200.1.1.0/24也安裝在其路由表中。

註：如果使用NSSA（非純末節區域），並且在NSSA ABR上執行了第3類LSA過濾，則存在轉發地址不可達的相同問題。

防止將子網作為外部路由重分佈到OSPF中

另一個解決方案是防止將子網3.3.4.0作為外部路由重分佈到OSPF中，因為OSPF在它上運行。ASBR(R2515)中的這些配置命令會建立路由對映。redistribute命令使用此命令僅允許將網路200.1.1.0/24重分發到OSPF。ABR(R2504)仍然將區域1到區域0的內部OSPF路由總結出來。

R2515# configure terminal

R2515(config)# router ospf 1

R2515(config-router)# redistribute rip metric 20 subnets route-map rip_to_ospf_filter

R2515(config-router)# exit

R2515(config)#

access-list 28 permit 200.1.1.0 0.0.0.255

R2515(config)#

route-map rip_to_ospf_filter permit 10

R2515(config-route-map)#

match ip address 28

此命令在R2507的路由表中的結果如下所示：

R2507# show ip route

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

1.0.0.0/ 24 is subnetted,        1 subnets

C            1.1.1.0        is directly connected, Serial0

O IA  3.0.0.0/ 8 [110/ 70] via 1.1.1.2, 00: 07: 05, Serial0

7.0.0.0/ 24 is subnetted,        1 subnets

C            7.7.7.0        is directly connected, Ethernet0

O E2  200.1.1.0/ 24 [110/ 20] via 1.1.1.2, 00: 00: 21, Serial0

S*      0.0.0.0/ 0 is directly connected, Ethernet0

路由表中唯一的外部路由是200.1.1.0/24。此網路位於路由表中，因為此外部網路(3.3.4.1)的轉發地址由總結路由3.0.0.0/8（區域間路由）覆蓋。

相關資訊

- 轉發地址對型別5 LSA路徑選擇的影響

- 將連線的網路重新分發到OSPF

- OSPF支援頁

- 技術支援 - Cisco Systems