IP : 开放最短路径优先 (OSPF)

为什么OSPF需求电路持续激活链路?

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

当开放最短路径优先(OSPF)链路配置作为需求电路时, OSPF Hello被抑制,并且定期LSA刷新没有在链路被充斥。这些数据包启动链路,只有当他们第一次时交换,或者,当更改在信息时发生他们包含。当网络拓扑稳定的时,这准许将关闭的基础数据链路层。上升和下降的需求电路指示需要调查的一问题。本文展示一些可能的原因并且提供解决方案。

欲知更多信息根据要求电路,参考OSPF需求电路特性

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

示例网络

以上提到的问题描述与以下网络图和配置。

/image/gif/paws/4808/dc1.gif

路由器 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

注意: 您需要配置需求电路在仅链路的一端。然而,如果配置此on命令两端它不导致任何害处。

在以上图表,路由器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

以上输出显示那里是在路由器LSA上的一个变化与192.168.246.41路由器ID,造成数据库再同步。如果网络稳定的,则此debug输出什么都不显示。

要减少链路飘荡影响在需求电路的,请配置包含需求电路作为完全末节的区域。如果这不是可行的,并且有在网络内的一不变链路抖动,需求电路也许不是您的一理想选择。

原因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数据库

请考虑以下网络图为例:

/image/gif/paws/4808/dc2.gif

路由器1和2之间的链路是131.108.1.0/24,并且需求电路配置在路由器路由器1再分布路由信息协议(RIP)路由到OSPF的1和2.之间。

路由器 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

增强型内部网关路由协议(EIGRP)和RIP是有类路由协议,并且网络声明在配置里是为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年龄获得重置。然后,在链路的死机计时器起动后,链路再断开。此进程重复操作自己,并且需求电路链接保持飘荡。有三种方式解决下面显示的此问题。

解决方案 1:请使用no peer neighbor-route命令

在运行需求电路的BRI接口下,请配置no peer neighbor-route。这防止/32掩码安装。您能使用在路由器1only如下所示的配置,但是我们推荐配置一致性的此on命令两边。

R1# configure terminal
R1(config)# interface BRI1/1
R1(config-if)# no peer neighbor-route

解决方案 2:请使用route-map命令

当重新分配从RIP到OSPF时,请使用route-map命令并且拒绝/32,因此不注入到OSPF数据库。此配置命令在完成再分配,是在我们的示例的路由器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安装的主机路由,因为没有主网的一网络声明。下面的网络图显示示例。

/image/gif/paws/4808/dc3.gif

RIP域当前在141.108.0.0网络下,当OSPF域(和需求电路链接)时在131.108.0.0网络下。

原因5 :OSPF需求电路在异步接口配置

当您配置在一个异步(异步)时接口的需求电路,然后,当Layer2断开时,实际物理接口断开。这触发在OSPF数据库上的一个变化,并且异步接口再恢复交换数据库。Layer2再断开,并且这再将触发在数据库上的变化,因此此进程继续进行重复。

下列场景用于再次产生上述问题。

/image/gif/paws/4808/dc4.gif

以下配置使用上述方案。

路由器 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)

解决方案

需求电路继续启动链路的原因是,因为,当Layer2断开时,在空闲超时到期后,全部的接口断开。但是一旦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 :OSPF需求电路在多链路PPP配置

多链路PPP功能可以用于负载均衡目的在那里案件是多个广域网链接。记住的一件重要事情根据OSPF是多链路PPP的带宽。当多条链路被组合,多链路接口的带宽将更改。

下列场景用于再次产生上述问题。

/image/gif/paws/4808/dc5.gif

以下配置使用上述方案。

路由器 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一起捆绑的三serial interfaces。

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,并且套件只有两个接口而不是三,因为一个接口断开了。下面注意接口仍然是:

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需求电路。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 4808