zoukankan      html  css  js  c++  java
  • 【Network】OSPF排错及其七种状态机

    OSPF路由器在完全邻接之前,所经过的几个状态:

    1. Down:此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组是,使用组播地址224.0.0.5。

    2. Attempt:只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval来发送Hello包。

    3. Init:在DeadInterval里收到了Hello包,2-Way通信还没有建立起来的状态。

    4. two-way:双向会话建立,而RID彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该**DR,BDR。)

    5. ExStart:信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master。

    6. Exchange:信息交换状态:本地路由器和邻居交换一个或多个DBD分组(也叫DDP) 。DBD包含有关LSDB中LSA条目的摘要信息。

    7. Loading:信息加载状态:收到DBD后,使用LSACK分组确认已收到DBD。将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则想对方发送一个LSR,用于请求新的LSA 。

    8. Full:完全邻接状态,这种邻接出现在Router LSA和Network LSA中。

      
    下载 (23.07 KB)
    拓扑
    天前 13:36

    为了模拟出OSPF的基本网络环境,这里有两种配置,一种为普通p2p加上MA的网络,另一种为NBMA网络。

    基本链路配置:
    R1:
    interface Loopback0
    ip address 1.1.1.1 255.255.255.255
    !
    interface Serial1/0
    ip address 12.1.1.1 255.255.255.0
    serial restart-delay 0
    clock rate 64000
    !

    R2:
    interface Loopback0
    ip address 2.2.2.2 255.255.255.255
    !
    interface FastEthernet0/0
    ip address 23.1.1.2 255.255.255.0
    speed auto
    duplex auto
    !
    interface Serial1/1
    ip address 12.1.1.2 255.255.255.0
    serial restart-delay 0
    !

    R3:
    interface Loopback0
    ip address 3.3.3.3 255.255.255.255
    !
    interface FastEthernet0/0
    ip address 23.1.1.3 255.255.255.0
    speed auto
    duplex auto
    !

    NBMA基本链路配置:
    R1:
    interface Loopback0
    ip address 1.1.1.1 255.255.255.255
    !
    interface Serial1/0
    ip address 13.1.1.1 255.255.255.0
    encapsulation frame-relay
    no fair-queue
    serial restart-delay 0
    frame-relay map ip 13.1.1.3 103 broadcast
    no frame-relay inverse-arp
    !

    R2:
    frame-relay switching
    !
    interface Serial1/0
    no ip address
    encapsulation frame-relay
    no fair-queue
    serial restart-delay 0
    clock rate 64000
    frame-relay lmi-type ansi
    frame-relay intf-type dce
    frame-relay route 301 interface Serial1/1 103
    !
    interface Serial1/1
    no ip address
    encapsulation frame-relay
    serial restart-delay 0
    clock rate 64000
    frame-relay lmi-type ansi
    frame-relay intf-type dce
    frame-relay route 103 interface Serial1/0 301
    !

    R3:
    interface Loopback0
    ip address 3.3.3.3 255.255.255.255
    !
    interface Serial1/1
    ip address 13.1.1.3 255.255.255.0
    encapsulation frame-relay
    serial restart-delay 0
    frame-relay map ip 13.1.1.1 301 broadcast
    no frame-relay inverse-arp
    !

    所有路由器上OSPF协议均采用以下配置:
    router ospf 10
    router-id x.x.x.x(x为路由器编号)
    network 0.0.0.0 255.255.255.255 area 0

    1. Attempt:
    只适于NBMA网络,如果一台路由器的OSPF一直”卡“在Attempt状态:表明该路由器已发送一个Hello报文,但是没有接到邻居的回应。通常,这个问题出现在使用了neighbor命令指定邻居的NBMA网络中。

    a. 某一台路由器上(R1)指定一个错误的邻接地址:
    R1:
    router ospf 10
    router-id 1.1.1.1
    network 0.0.0.0 255.255.255.255 area 0
    neighbor 13.1.1.2
    !
    R1#show ip os neighbor

    Neighbor ID     Pri   State           Dead Time   Address         Interface
    N/A                 ATTEMPT/DROTHER 00:00:46    13.1.1.2        Serial1/0

    b. 使用ACL阻止了Hello分组:
    R1:
    interface Serial1/0
    ip access-group 10 in
    !
    access-list 10 deny   13.1.1.0 0.0.0.255
    access-list 10 permit any
    !
    R1#show ip os neighbor

    Neighbor ID     Pri   State           Dead Time   Address         Interface
    N/A                 ATTEMPT/DROTHER 00:01:54    13.1.1.3        Serial1/0

    另外,当一端指定了neighbor,另一端没有指定neighbor时,OSPF会经历一个比较长的周期才能建立FULL的邻接关系,这种情况也会与路由器种类及平台有关,并不是统一的结论。

    2. INIT:
    路由器收到第一个OSPF Hello分组就进入到Init状态:路由器首先发送拥有自身ID信息的Hello报文。与之相邻的路由器如果收到这个Hello报文,就将这个报文内的ID信息加入到自己的Hello报文内。

    如果路由器的某端口收到从其他路由器发送的含有自身ID信息的Hello报文,则它根据该端口所在网络类型确定是否可以建立邻接关系。

    a. 使用ACL在其中一台路由器(R1)上面阻止OSPF Hello分组:
    interface Serial1/0
    ip access-group 100 in
    !
    access-list 100 deny   ip 12.1.1.0 0.0.0.255 host 224.0.0.5
    access-list 100 permit ip any any
    !
    于是,在另一台路由(R2)上查看OSPF neighbor信息
    R2#show ip os nei

    Neighbor ID     Pri   State           Dead Time   Address         Interface
    1.1.1.1             INIT        00:00:31    12.1.1.1        Serial1/1

    b. NBMA中手动指定ip映射时,没有加入”broadcast”参数
    R1:
    interface Serial1/0
    ip ospf network broadcast
    frame-relay map ip 13.1.1.3 103 broadcast
    no frame-relay inverse-arp
    !

    R3:
    interface Serial1/1
    ip ospf network broadcast
    frame-relay map ip 13.1.1.1 301
    no frame-relay inverse-arp
    !
    R3#show ip os neighbor

    Neighbor ID     Pri   State           Dead Time   Address         Interface
    1.1.1.1             INIT/DROTHER    00:00:35    13.1.1.1        Serial1/1

    注意:这种情况仅在某些特定的IOS中会出现,现在一些较新的IOS,测试用IOS C7200 12.2(33)SRC一端配置为非broadcast网络,最终仍然能形成FULL邻接关系,但是链接会不太稳定,OSPF neighbor关系抖动。

    3. TWO-WAY:
    双向会话建立,而RID彼此出现在对方的邻居列表中。

    在广播型链路中,两个DROTHER之间停留在two-way状态,DROTHER分别于DR和BDR形成FULL的邻接关系。

    停滞在two-way状态的两个路由器,可能是两端均配置了priority为0。
    R2:
    interface FastEthernet0/0
    ip ospf priority 0
    !

    R3:
    interface FastEthernet0/0
    ip ospf priority 0
    !

    R2#show ip os neighbor

    Neighbor ID     Pri   State           Dead Time   Address         Interface
    3.3.3.3             2WAY/DROTHER    00:00:34    23.1.1.3        FastEthernet0/0

    R3#show ip os neighbor

    Neighbor ID     Pri   State           Dead Time   Address         Interface
    2.2.2.2             2WAY/DROTHER    00:00:34    23.1.1.2        FastEthernet0/0

    4. EXSTART/EXCHANGE:
    信息交换初始状态:在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master。

    信息交换状态:本地路由器和邻居交换一个或多个DBD分组(也叫DDP) 。DBD包含有关LSDB中LSA条目的摘要信息。

    a. 接口MTU不匹配:
    在拓扑中某一路由器上修改其端口MTU
    R3:
    interface FastEthernet0/0
    ip mtu 1499
    !

    R3#show ip os neighbor

    Neighbor ID     Pri   State           Dead Time   Address         Interface
    2.2.2.2             EXSTART/DR      00:00:39    23.1.1.2        FastEthernet0/0

    R2#show ip os neighbor

    Neighbor ID     Pri   State           Dead Time   Address         Interface
    3.3.3.3             EXCHANGE/BDR    00:00:37    23.1.1.3        FastEthernet0/0

    解决方案有两种:
    I.
    R3(config)#int fa0/0
    R3(config-if)#ip mtu 1500
    II.
    R3(config)#int fa0/0
    R3(config-if)#ip ospf mtu-ignore

    5. LOADING:
    信息加载状态:收到DBD后,使用LSACK分组确认已收到DBD。将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则想对方发送一个LSR,用于请求新的LSA 。

    无法设计实验使OSPF”卡“在该状态。

    6. FULL

    网上一些说法说的两端认证配置不一样,会使OSPF停留在某些状态,但是实际的测试中并没有实验出现结果。

    另外,两台路由器之间的router-id重复也会造成OSPF出现故障,停留在哪种状态因厂商而已,这里不做详细讨论。

    以上实验均基于思科IOS平台,其他平台现象暂时不做讨论。
    本文为原创,遵循BY-NC-ND版权协议,转载请附上原文出处链接和本声明。By:【F0rGeEk】
  • 相关阅读:
    sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序
    sencha touch 扩展篇之使用sass自定义主题样式 (下)通过css修改官方组件样式以及自定义图标
    一个不错的android组件的网站
    sencha touch 扩展篇之使用sass自定义主题样式 (上)使用官方的api修改主题样式
    sencha touch 入门系列 (九) sencha touch 布局layout
    面试题总结
    国外接活网站Elance, Freelancer和ScriptLance的介绍和对比
    sencha touch 入门系列 扩展篇之sencha touch 项目打包压缩
    Android Design Support Library——Navigation View
    设计模式——命令模式
  • 原文地址:https://www.cnblogs.com/4geek/p/12685621.html
Copyright © 2011-2022 走看看