目錄

簡介

必要條件

需求

採用元件

慣例

示例網路

原因1：網路拓撲的變化

解決方案

原因2：定義為廣播的網路型別

解決方案

原因3：一個或多個路由器不瞭解需求電路

原因4：主機路由重新分發到OSPF資料庫

解決方案1：使用no peer neighbor-route命令

解決方案2：使用route-map

解決方案3：使用其他主要網路

原因5：通過非同步介面配置OSPF需求電路

解決方案

原因6：通過多鏈路PPP配置OSPF需求電路

解決方案

相關資訊

簡介

當開放最短路徑優先(OSPF)鏈路配置為需求電路時，OSPF Hello會被抑制，並且定期LSA刷新不會在鏈路上泛洪。這些資料包僅在首次交換時或在包含的資訊發生更改時啟動鏈路。這樣可以在網路拓撲穩定時關閉底層資料鏈路層。上下跳動的需求迴路表示需要調查的問題。本文檔演示了一些可能的原因並提供解決方案。

有關請求電路的更多資訊，請參閱OSPF請求電路功能。

必要條件

需求

本文件沒有特定需求。

採用元件

本文件所述內容不限於特定軟體和硬體版本。

慣例

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

示例網路

上面提到的問題，可通過以下網路圖和配置進行描述。

路由器1

路由器2

interface BRI1/1

ip address 192.158.254.13 255.255.255.252

ip ospf demand-circuit

router ospf 20

network 192.158.254.0 0.0.0.255 area 0

interface BRI1/0

ip address 192.158.254.14 255.255.255.252

router ospf 20

network 192.158.254.0 0.0.0.255 area 0

註：您只需要將需求電路配置在鏈路的一端。但是，如果在兩端配置此命令，則不會造成任何損害。

在上圖中，路由器1和2通過ISDN鏈路運行OSPF需求電路。路由器1和路由器2之間的鏈路不斷啟動，這破壞了OSPF需求電路的用途。show dialer命令的輸出顯示，鏈路是因為OSPF組播Hello資料包而啟動的。

Router1# show dialer

BRI1/1:1 - dialer type = ISDN

Idle timer (120 secs), Fast idle timer (20 secs)

Wait for carrier (30 secs), Re-enable (2 secs)

Dialer state is data link layer up

Dial reason: ip (s=192.168.254.13, d=224.0.0.5)

出現該連結的原因有很多。下面我們探討幾個常見案例並提供解決方案。

原因1：網路拓撲的變化

每當OSPF網路拓撲發生變化時，必須通知OSPF路由器。在這種情況下，應啟動OSPF需求電路，以便鄰居可以交換新資訊。交換新資料庫後，鏈路可以再次關閉，鄰接關係仍處於FULL狀態。

解決方案

要確定鏈路是否由於網路拓撲更改而啟用，請使用debug ip ospf monitor命令。它顯示哪個LSA正在更改，如下所示：

Router1# debug ip ospf monitor

OSPF: Schedule SPF in area 0.0.0.0

Change in LS ID 192.168.246.41, LSA type R,

OSPF: schedule SPF: spf_time 1620348064ms wait_interval 10s

上面的輸出顯示，路由器ID為192.168.246.41的路由器LSA發生更改，從而導致資料庫重新同步。如果網路穩定，則此偵錯輸出不會顯示任何內容。

為減少鏈路抖動對需求電路的影響，請將包含需求電路的區域配置為完全末節。如果這不可行，並且網路中存在持續的鏈路抖動，則需求電路可能不是您理想的選擇。

原因2：定義為廣播的網路型別

在鏈路上配置需求電路時，鏈路型別必須定義為點對點或點對多點。任何其他鏈路型別都可能導致鏈路不必要地啟動，因為如果網路型別不是點對點或點對多點，則不會抑制OSPF Hello。以下是說明路由器1和2上此問題的配置示例。

路由器1

路由器2

interface BRI1/1

ip address 192.158.254.13 255.255.255.252

ip ospf network broadcast

router ospf 20

network 192.158.254.0 0.0.0.255 area 0

interface BRI1/0

ip address 192.158.254.14 255.255.255.252

ip ospf network broadcast

router ospf 20

network 192.158.254.0 0.0.0.255 area 0

網路型別定義為廣播時，OSPF Hello在每個Hello間隔啟動鏈路。show dialer輸出顯示上次啟動鏈路是因為OSPF Hello。

Router1# show dialer

BRI1/1:1 - dialer type = ISDN

Idle timer (120 secs), Fast idle timer (20 secs)

Wait for carrier (30 secs), Re-enable (2 secs)

Dialer state is data link layer up

Dial reason: ip (s=192.168.254.13, d=224.0.0.5)

Interface bound to profile Di1

Current call connected 00:00:08

Connected to 57654 (R2)

解決方案

要解決此問題，請將網路型別更改為點對點或點對多點。此處我們刪除網路型別廣播，因此預設情況下將其配置為點對點。

路由器1

路由器2

interface BRI1/1

ip address 192.158.254.13 255.255.255.252

router ospf 20

network 192.158.254.0 0.0.0.255 area 0

interface BRI1/0

ip address 192.158.254.14 255.255.255.252

router ospf 20

network 192.158.254.0 0.0.0.255 area 0

通過將網路型別更改為點對點或點對多點，鏈路上的OSPF Hello被抑制，並且需求電路鏈路停止抖動。

原因3：一個或多個路由器不瞭解需求電路

當OSPF域中的一台或多台路由器不瞭解需求電路時，會進行定期LSA刷新。要瞭解如何解決此問題，請參閱本文檔的何時通過OSPF需求電路傳送定期LSA刷新？部分。

原因4：主機路由重新分發到OSPF資料庫

讓我們考慮以下網路圖作為範例：

路由器1和路由器2之間的鏈路是131.108.1.0/24，路由器1和路由器2之間配置了請求電路。Router 1將路由資訊協定(RIP)路由重分發到OSPF。

路由器1

router ospf 1

redistribute rip subnets

network 131.108.1.0 0.0.0.255 area 1

!

router rip

network 131.108.0.0

由於鏈路封裝型別是PPP，因此兩台路由器都會為鏈路的另一端安裝主機路由，如下所示。

Router1# show ip route 131.108.1.2

Routing entry for 131.108.1.2/32

Known via "connected", distance 0, metric 0 (connected, via interface)

Routing Descriptor Blocks:

* directly connected, via BRI1/1

Route metric is 0, traffic share count is 1

內部網關路由協定(IGRP)和RIP是有類路由協定，因此配置中的network語句用於有類網路131.108.0.0。因此，131.108.1.2/32的主機路由被視為由RIP產生，並作為外部路由重新分發到OSPF，如下所示。

Router1# show ip ospf database external 131.108.1.2

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

Type-5 AS External Link States

LS age: 298

Options: (No TOS-capability, DC)

LS Type: AS External Link

Link State ID: 131.108.1.2 (External Network Number )

Advertising Router: 131.108.3.1

LS Seq Number: 80000001

Checksum: 0xDC2B

Length: 36

Network Mask: /32

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

TOS: 0

Metric: 20

Forward Address: 0.0.0.0

External Route Tag: 0

當鏈路斷開時，/32消失，OSPF將此理解為拓撲的變化。需求電路再次啟動該連結，以向其鄰居傳播/32掩碼的MAXAGE版本。當連結啟動時，/32掩碼將再次有效，因此LSA期限將重置。然後，在鏈路的dead計時器啟動後，鏈路將再次關閉。此過程會不斷重複，並且需求電路鏈路不斷抖動。解決此問題的方法有三種，如下所示。

解決方案1：使用no peer neighbor-route命令

在運行需求電路的BRI介面下，配置no peer neighbor-route。這將阻止安裝/32掩碼。您只能在Router 1上使用如下所示的組態，但為了保持一致，我們建議您在兩端配置此命令。

R1# configure terminal

R1(config)# interface BRI1/1

R1(config-if)# no peer neighbor-route

解決方案2：使用route-map

從RIP重分發到OSPF時，請使用route-map命令和deny /32命令，這樣它就不會被注入到OSPF資料庫中。只有執行重分發的路由器需要此配置命令，在我們的示例中為Router 1。

首先必須建立一個訪問清單以匹配/32掩碼。然後，我們將此訪問清單應用到路由對映，並在應用redistribution命令時使用路由對映，如下所示。

R1# configure terminal

R1(config)# access-list 1 deny host 131.108.1.2

R1(config)# access-list 1 permit any

R1# configure terminal

R1(config)# route-map rip-ospf

R1(config-route-map)# match ip address 1

R1(config)# router ospf 1

R1(config-router)# redistribute rip subnets route-map rip-ospf

解決方案3：使用其他主要網路

對RIP或OSPF域使用不同的主網。其思想是在需求電路鏈路上使用不同的主網，因此當鏈路在PPP封裝下啟動時，它會為鏈路的另一端安裝主機路由。如果主機路由與RIP中所使用的主機路由處於不同的主網中，則RIP並不擁有此安裝了PPP的主機路由，因為它沒有主網的network語句。以下網路圖顯示範例。

RIP域現在位於141.108.0.0網路之下，而OSPF域（和需求電路鏈路）位於131.108.0.0網路之下。

原因5：通過非同步介面配置OSPF需求電路

在非同步（非同步）介面上配置需求電路時，當第2層關閉時，實際物理介面將關閉。這將觸發OSPF資料庫發生更改，非同步介面將再次恢復以交換資料庫。第2層再次關閉，這將再次觸發資料庫中的更改，因此此過程不斷重複。

以下場景用於重現上述問題。

以上場景使用以下配置。

路由器1

路由器2

interface Async 1

ip address 192.158.254.13 255.255.255.252

encapsulation ppp

ip ospf demand-circuit

dialer in-band

async default routing

async mode dedicated

ppp authentication chap

ppp chap hostname Router1

ppp chap password 7 13061E010803

!

router ospf 20

network 192.158.254.0 0.0.0.255 area 1

interface Async 1

ip address 192.158.254.14 255.255.255.252

encapsulation ppp

ip ospf demand-circuit

dialer in-band

dialer map ip 192.158.254.13 broadcast 12345

dialer-group 2

async default routing

async mode dedicated

ppp authentication chap callin

!

dialer-list 2 protocol ip permit

!

router ospf 20

network 192.158.254.0 0.0.0.255 area 1

非同步介面上的OSPF預設網路型別為點對點，但需求電路仍會不斷開啟鏈路。

Rouer1# show ip ospf interface Async1

Async1 is up, line protocol is up (spoofing)

Internet Address 192.158.254.13/32, Area 1

Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost:869

Transmit Delay is 1 sec, State POINT_TO_POINT,

Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

Hello due in 00:00:02

Index 1/2, flood queue length 0

Next 0x0(0)/0x0(0)

Last flood scan length is 0, maximum is 1

Last flood scan time is 0 msec, maximum is 0 msec

Neighbor Count is 0, Adjacent neighbor count is 0

Suppress hello for 0 neighbor(s)

解決方案

要求電路不斷開啟連結的原因在於，當閒置逾時到期後第2層關閉時，整個介面就會關閉。但是在BRI或PRI的情況下，當其中一個通道關閉時，介面仍保持開啟狀態（處於欺騙模式）。要解決此問題，您必須配置撥號器介面，因為它從不關閉。撥號器介面會一直運作（處於欺騙模式）。

路由器1

路由器2

interface Async 1

no ip address

encapsulation ppp

async default routing

async mode dedicated

dialer in-band

dialer rotary-group 0

!

interface Dialer0

ip address 192.158.254.13 255.255.255.252

encapsulation ppp

ip ospf demand-circuit

ppp authentication chap

ppp chap hostname Router1

ppp chap password 7 13061E010803

!

router ospf 20

network 192.158.254.0 0.0.0.255 area 0

interface Async 1

no ip address

encapsulation ppp

async default routing

async mode dedicated

dialer in-band

dialer rotary-group 0

!

interface Dialer0

ip address 192.158.254.14 255.255.255.252

encapsulation ppp

ip ospf demand-circuit

dialer map ip 192.158.254.13 broadcast 12345

dialer-group 2

ppp authentication callin

!

dialer-list 2 protocol ip permit

!

router ospf 20

network 192.158.254.0 0.0.0.255 area 0

由於撥號器介面從不關閉，因此不會造成非同步介面關閉時產生的問題。

原因6：通過多鏈路PPP配置OSPF需求電路

當存在多個WAN鏈路時，可使用多鏈路PPP功能進行負載均衡。在OSPF方面，需要記住的一個重要因素是多鏈路PPP的頻寬。當合併多條鏈路時，多鏈路介面的頻寬將發生變化。

以下場景用於重現上述問題。

以上場景使用以下配置。

路由器1

路由器2

interface Multilink1

ip address 192.158.254.1 255.255.255.0

no cdp enable

ppp multilink

no ppp multilink fragmentation

multilink-group 1

!

interface Serial0/1/0:0

no ip address

ip route-cache distributed

encapsulation ppp

tx-queue-limit 26

no fair-queue

ppp multilink

multilink-group 1

!

interface Serial0/1/1:0

no ip address

ip route-cache distributed

encapsulation ppp

tx-queue-limit 26

no fair-queue

ppp multilink

multilink-group 1

!

interface Serial0/1/2:0

no ip address

ip route-cache distributed

encapsulation ppp

tx-queue-limit 26

no fair-queue

ppp multilink

multilink-group 1

!

router ospf 20

network 192.158.254.0 0.0.0.255 area 1

interface Multilink1

ip address 192.158.254.2 255.255.255.0

no cdp enable

ppp multilink

no ppp multilink fragmentation

multilink-group 1

!

interface Serial0/1/0:0

no ip address

ip route-cache distributed

encapsulation ppp

tx-queue-limit 26

no fair-queue

ppp multilink

multilink-group 1

!

interface Serial0/1/1:0

no ip address

ip route-cache distributed

encapsulation ppp

tx-queue-limit 26

no fair-queue

ppp multilink

multilink-group 1

!

interface Serial0/1/2:0

no ip address

ip route-cache distributed

encapsulation ppp

tx-queue-limit 26

no fair-queue

ppp multilink

multilink-group 1

!

router ospf 20

network 192.158.254.0 0.0.0.255 area 1

以下輸出顯示，多鏈路PPP中有三個串列介面捆綁在一起。

Router1# show ppp multilink

Multilink1, bundle name is Router2

Bundle up for 00:05:35

Bundle is Distributed

0 lost fragments, 0 reordered, 0 unassigned

0 discarded, 0 lost received, 3/255 load

0x1226 received sequence, 0x1226 sent sequence

Member links: 3 active, 0 inactive (max not set, min not set)

Serial1/0/0:0, since 00:05:35, no frags rcvd

Serial1/0/1:0, since 00:05:35, no frags rcvd

Serial1/0/2:0, since 00:05:35, no frags rcvd

介面頻寬將表示鏈路的聚合頻寬，並且此頻寬將用於OSPF開銷計算。

Router1# show interface multilink 1

Multilink1 is up, line protocol is up

Hardware is multilink group interface

Internet address is 192.168.254.1/24

MTU 1500 bytes, BW 5952 Kbit, DLY 100000 usec,

reliability 255/255, txload 3/255, rxload 3/255

Encapsulation PPP, loopback not set

Keepalive set (10 sec)

DTR is pulsed for 2 seconds on reset

LCP Open, multilink Open

Open: IPCP

Last input 00:00:00, output never, output hang never

Last clearing of "show interface" counters 00:06:39

Input queue: 1/75/0/0 (size/max/drops/flushes); Total output drops: 0

Queueing strategy: fifo

Output queue :0/40 (size/max)

5 minute input rate 241000 bits/sec, 28 packets/sec

5 minute output rate 241000 bits/sec, 28 packets/sec

6525 packets input, 9810620 bytes, 0 no buffer

Received 0 broadcasts, 0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort

6526 packets output, 9796112 bytes, 0 underruns

0 output errors, 0 collisions, 0 interface resets

0 output buffer failures, 0 output buffers swapped out

0 carrier transitions

show ip ospf interface的輸出顯示當前OSPF開銷，即16。

Router1# show ip ospf interface multilink 1

Multilink1 is up, line protocol is up

Internet Address 192.158.254.13/24, Area 1

Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost:16

Transmit Delay is 1 sec, State POINT_TO_POINT,

Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

Hello due in 00:00:02

Index 1/2, flood queue length 0

Next 0x0(0)/0x0(0)

Last flood scan length is 0, maximum is 1

Last flood scan time is 0 msec, maximum is 0 msec

Neighbor Count is 0, Adjacent neighbor count is 0

Suppress hello for 0 neighbor(s)

現在連結關閉，我們可以在日誌中看到這點：

Router1# show log | include down

%LINK-3-UPDOWN: Interface Serial1/0/0:0, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0/0:0, changed state to down

如果我們再次檢查頻寬，它將不同於我們之前看到的頻寬。現在它顯示的是3968，套件組合只有兩個介面，而不是三個介面，因為一個介面已關閉。請注意，介面下方的狀態仍為up:

Router1# show ppp multilink

Multilink1, bundle name is Router2

Bundle up for 00:05:35

Bundle is Distributed

0 lost fragments, 0 reordered, 0 unassigned

0 discarded, 0 lost received, 3/255 load

0x1226 received sequence, 0x1226 sent sequence

Member links: 2 active, 1 inactive (max not set, min not set)

Serial1/0/1:0, since 00:05:35, no frags rcvd

Serial1/0/2:0, since 00:05:35, no frags rcvd

Serial1/0/0:0 (inactive)

此外，PPP多鏈路仍在顯示，但由於一條鏈路斷開，OSPF開銷現在更改為25

Router1# show ip ospf interface multilink 1

Multilink1 is up, line protocol is up

Internet Address 192.158.254.13/24, Area 1

Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost:25

Transmit Delay is 1 sec, State POINT_TO_POINT,

Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

Hello due in 00:00:02

Index 1/2, flood queue length 0

Next 0x0(0)/0x0(0)

Last flood scan length is 0, maximum is 1

Last flood scan time is 0 msec, maximum is 0 msec

Neighbor Count is 0, Adjacent neighbor count is 0

Suppress hello for 0 neighbor(s)

這將觸發SPF計算，並且OSPF將啟動需求電路。如果鏈路不斷擺動，我們可能會看到需求電路不斷擺動，因為每次鏈路增加或從多鏈路PPP捆綁中刪除鏈路時，開銷都會更改。

解決方案

OSPF支援PPP多鏈路，但只要捆綁中的所有鏈路保持運行，需求電路就會保持穩定。一旦鏈路斷開，即使沒有關聯的IP地址，也會影響OSPF開銷計算，因此，OSPF將運行SPF來重新計算最佳路徑。要解決此問題，唯一的解決方法是使用以下命令手動配置OSPF開銷。

路由器1

路由器2

interface Multilink1

ip address 192.158.254.1 255.255.255.0

no cdp enable

ip ospf cost 10

ppp multilink

no ppp multilink fragmentation

multilink-group 1

!

router ospf 20

network 192.158.254.0 0.0.0.255 area 1

interface Multilink1

ip address 192.158.254.2 255.255.255.0

no cdp enable

ip ospf cost 10

ppp multilink

no ppp multilink fragmentation

multilink-group 1

!

router ospf 20

network 192.158.254.0 0.0.0.255 area 1

此命令將確保每當多鏈路PPP捆綁包中新增或刪除一條鏈路時，OSPF開銷不會受到影響。這將穩定PPP多鏈路上的OSPF需求電路。

相關資訊

- OSPF支援頁

- 技術支援 - Cisco Systems