当开放最短路径优先(OSPF)链路配置为需求电路时,OSPF Hello会被抑制,并且定期LSA刷新不会泛洪到该链路上。这些数据包仅在首次交换时或在所包含的信息发生变化时启动链路。这样可以在网络拓扑稳定时关闭底层数据链路层。电压电路上移和下移表示需要调查的问题。本文档介绍一些可能的原因并提供解决方案。
有关请求电路的更多信息,请参阅OSPF请求电路功能。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
上述问题可通过以下网络图和配置进行描述。
路由器 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)
链路启用可能有几个原因。下面我们探讨几个常见案例并提供解决方案。
每当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发生变化,导致数据库重新同步。如果网络稳定,则此调试输出不显示任何内容。
为了减少链路抖动对需求电路的影响,请将包含需求电路的区域配置为完全末节。如果这不可行,并且网络中存在持续链路抖动,则需求电路可能不适合您的选择。
在链路上配置需求电路时,链路类型必须定义为点对点或点对多点。任何其他链路类型都可能导致链路不必要地进入工作状态,因为如果网络类型不是点对点或点对多点,则不会抑制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,并且需求电路链路会停止抖动。
当OSPF域中的一台或多台路由器不了解需求电路时,将会发生定期LSA刷新。请参阅本文档的何时通过OSPF需求电路发送定期LSA刷新?部分,了解如何解决此问题。
我们以以下网络图为例:
路由器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计时器启动后,链路再次断开。此过程不断重复,需求电路链路不断抖动。解决此问题的方法有三种,如下所示。
在运行需求电路的BRI接口下,配置no peer neighbor-route。这会阻止安装/32掩码。您只能在Router 1上使用如下所示的配置,但为了保持一致,我们建议在两端配置此命令。
R1# configure terminal R1(config)# interface BRI1/1 R1(config-if)# no peer neighbor-route
从RIP重分发到OSPF时,请使用route-map命令并拒绝/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
为RIP或OSPF域使用不同的主网。其思想是在需求电路链路上使用不同的主网,因此当链路在PPP封装下启动时,它会为链路的另一端安装主机路由。如果主机路由与RIP使用的主机路由不在同一个主网中,RIP不会拥有此由PPP安装的主机路由,因为它没有主网的network语句。下面的网络图显示了一个示例。
RIP域现在位于141.108.0.0网络下,而OSPF域(和需求电路链路)位于131.108.0.0网络下。
在异步(异步)接口上配置需求电路时,当第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 |
由于拨号程序接口从不关闭,因此不会产生异步接口关闭时产生的问题。
多链路PPP功能可用于存在多个WAN链路时的负载均衡。在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需求电路。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
03-Oct-2001 |
初始版本 |