zoukankan      html  css  js  c++  java
  • 3.4【OSPF】NP十二班第三天-OSPF邻居建立条件实验&邻接建立2

    OSPF邻居建立条件&邻接建立

     
    一个接口可以配多个地址,一个主地址,一个从地址
    R1(config-if)#ip add 192.168.0.1 255.255.255.0 secondary
     
    OSPF邻接关系的建立:两端是点到点的网络类型肯定是可以建立邻接关系的,在广播网和非广播网中只和DR和BDR建立邻接关系,而DRother之间只能建立邻居关系,其他的网络类型中全部建立邻接关系
     
    邻居:交互Hello报文建立邻居关系但不交互LSA
    邻接:只有在建立邻接的设备上才会交互LSA,LSA-链路信息,通过交互LSA构建LSDB,有了LSDB,执行SPF算法,计算到达目的端的最短路径
     
    2-way ---> exstart:开始建立邻接关系:
    如果可以建立邻接关系,邻居状态机会从2WAY过渡到exstart,过渡到exstart状态后 ,双方开始发送 DBD报文,通告LSA的摘要信息
     
    邻居状态变换:
     
    Down->Attempt:在NBMA网络环境中才有,NBMA环境中,通过手动的方式配置 目标IP地址,单播方式建立邻居,会存在一个Attempt状态
     
    邻居状态变换(邻接关系)
     *****************************************************************
    ExStart和Exchange
     
    两端变为ExStart后,双方开始发送DBD报文,双方发送的第一个 DBD报文里面不包含LSA,第一个DBD报文的主要作用是用来选举主从关系。
     
    1、为什么DBD报文需要选举主从?(隐示确认的报文)
    选举主从的主要目的是为了保证DBD报文交互过程中的可靠性
    2、主/从怎么选?
    主从通过router-id选举,大的成为主,小的成为从
    DBD报文在主从选举涉及到几个bit位:(I M MS)
    1、 I=init,如果I比特位设置为1;,说明是第一个DBD报文
    2、M=More,如果M比特位设置为1,说明后面还有更多的 DBD报文,如果为0,表示是最后一个DBD
    3、MS=Master/slave,如果设置为1,表示为主;如果为0,表示为从
     
    MTU不会影响邻居的建立但会影响邻接的建立
     
    DBD报文中 同时会 携带你接口MTU值,通过这种 方式检测两端的MTU是否一致,如果 收到的DBD报文中多携带的MTU值大于接收接口的MTU值,DBD报文会被丢弃掉;小的话可以正常接收
     
    如何通过DD报文保证它的可靠性?
    通过序列号seq来保证它的可靠性。
     ExStart:开始选举主从,主从还没有选举出来
     Exchange:主从已经选举出来,开始发送携带LSA信息的DD报文
     
     变为Exchange状态,
    后续,从会引用主,用主的序列号作为自己的序列号开始发送DD报文;这样主就已经知道从已经收到他的DD报文;
    后续,主会把序列号seq+1发给从,这样,从就知道主已经收到了他的DD报文;如果序列号不变,从就会将这个报文重传,重传时间5秒钟。
     
    从什么情况下从exstart变为exchange?主在什么情况下变为exchange?
    从一旦确定主是谁,就会从exstart变为exchange;主在收到从的回复后,变为exchange
     
    如何看没有更多的LSA信息?
    看M比特位,如果此时从的 M=0,表示从这边后续已经没有的DD报文,DD报文交互完,没有更多的LSA信息 ;
    若此时主还有,从没有了,从 还会 按主序列号来回,但M比特位一直为0;
    如果主没有更多序列号,从还有 ,主还会一直生成序列号让从去传。
    继续传, 直到两端都没有以后才算传完,传完以后会从Exchange过度到Loading状态;
     
    DBD报文交互的时候还会检测一个MTU值,有没有可能两端的状态都是处于exstart状态?一端是exstart,一端是exchange?
     1.主MTU大于从MTU
    M>S,从是否会接收主发送的DD报文?从不接收,它会认为自己是主,它的状态不会从exstart过度到exchange;反过来,主是可以接收从的,但收不到从发过来的“确认”;两端过渡到exstart状态;
    2.主MTU小于从MTU
    M<S,从可以接收主发送的DD报文,从已经确认了主,从会过渡到exchange;主不接收从发过来的确认报文,主还是Exstart状态。
     
    两端如何变为Loading状态?
    1、两端的MTU值设为一样的
    2、忽略MTU值
    接口下 配置忽略MTU检查
    ip ospf mtu-ignore
     
     
    【实验验证】36:40
     

    Loading
    如果接收到的DD报文中M比特位=0,维护邻居的状态从exchange过渡到loading。在Loading状态下开始发送LSR和 LSU
    1、链路状态请求列表:将需要请求的LSA放到列表中,并通过LSR请求。(收到LSA摘要信息后需要和自己的LSDB做对比,如果自己的LSDB中不存在该LSA,就需要将LSA放入到请求列表中做请求处理。如果存在需要执行LSA比较流程。)
    2、链路状态重传列表:如果发送了LSR,但是没有收到LSU,就需要将这部分LSA放到重传列表中重新请求。重新发送LSR,默认的重传时间是5秒钟。
    show ip os inter fast 0/0
    重传时间是5秒钟
     
    如果这两张列表中其中有一个列表不为空,就需要处于loading状态。只有在两张列表都为空的情况下,才会从loading过渡到FULL的状态。
     
    【实验验证】模拟处于loading状态
     =================================================================
     
    OSPF第二天课堂笔记
     
    option选项在哪里报文中存在? (DNDCNPE)
    1、hello 2、DBD 3、LSA
     
    OSPF支持的网络类型:
     
    1、RFC(IETF)定义的:点到点、点到多点、广播、非广播、虚链路
    2、Cisco私有:cisco的私有网络类型主要是对NBMA做的扩展:点到点、广播、点到多点非广播
     
    Router-id的主要作用是唯一标识一台设备。
     
    OSPF中如何选举Router-id,可以手工指定也可以自动选举,手工指定优先于自动选举。
     
    Router-id自动选举步骤
    1、优先设备上逻辑接口IP地址大的
    2、如果没有逻辑接口的情况下,优选活动的物理接口IP地址大的。
     
    Cisco中同一台设备上配置多个OSPF进程,每个进程需要使用独立的Router-id,不能公用(如果同一设备多进程使用同一个Router-id会对5类LSA的通告造成影响)。
     
    注:一个接口只能宣告进一个OSPF进程的一个区域。
     
     
    R1#show ip os inter fast 0/0  \查看宣告进OSPF的接口信息
    FastEthernet0/0 is up, line protocol is up
      Internet Address 12.1.1.1/24, Area 0
      Process ID 1, Router ID 12.1.1.1, Network Type BROADCAST, Cost: 1
      Enabled by interface config, including secondary ip addresses
      Transmit Delay is 1 sec, State WAITING, Priority 1
      No designated router on this network
      No backup designated router on this network
      Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
        oob-resync timeout 40
        Hello due in 00:00:05
        Wait time before Designated router selection 00:00:35
      Supports Link-local Signaling (LLS)
      Index 1/1, flood queue length 0
      Next 0x0(0)/0x0(0)
      Last flood scan length is 0, maximum is 0
      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)
    R1#
     
     
    OSPF的邻居状态机:(本设备维护邻居的当前状态)
     
    1、DOWN 2、Attempt(NBMA) 3、Init 4、2WAY 5、Exstart 6、Exchange 7、loading 8、FULL
     
    1、DOWN:初始情况下维护邻居的状态为DOWN,在DOWN状态下开始发送HELLO报文,广播网络类型中hello报文是每隔10S发送一次,而Dead interval是hello interval的4倍,也就是40S,用于维护邻居关系,如果在dead interval时间范围内都没有收到邻居发送的hello报文,就说明邻居故障需要断开邻居关系。
     
    2、Attempt(NBMA)
     
    3、Init:收到邻居发送的hello报文并且检测通过,本地维护邻居的状态从DOWN变为Init,如果处于Init状态,说明已经和邻居建立了单向连接。
     
    4、2WAY:在邻居发送的hello报文中包含自己的router-id,说明对方已经收到并确认了本端发送的hello报文,邻居状态需要从Init变为2WAY。如果处于2WAY状态,说明和邻居建立了双向连接。2WAY状态标识邻居建立完成。
     
     
    有哪些因素会影响OSPF的邻居建立?
    1、hello和dead时间不一致 (修改hello时间dead时间会自动改变,修改dead时间hello时间不变)
    2、认证类型和认证数据不一致 (认证类型=0表示不认证,为1表示明文认证,为2表示密文认证)
      (1):配置接口认证后,从该接口发送的OSPF报文中会携带认证
      (2):配置区域认证后,所有属于该区域的接口在发送OSPF报文中都会携带认证
        注:如果同时配置了接口认证和区域认证,那么接口认证优先于区域认证
     
     
    接口认证配置
      (1)明文配置 
    interface FastEthernet0/0
    ip address 12.1.1.1 255.255.255.0
    ip ospf authentication
    ip ospf authentication-key cisco  \在接口下配置明文认证
    ip ospf 1 area 0
    duplex half
     
      (2)密文认证 (MD5认证中的序列号作用是抗重放攻击,同样的序列号报文只执行一次)
    interface FastEthernet0/0
    ip address 12.1.1.1 255.255.255.0
    ip ospf authentication message-digest  \接口下开启MD5认证
    ip ospf message-digest-key 1 md5 cisco
    ip ospf 1 area 0
    duplex half
    end
     
    区域认证配置
     
    (1)明文配置
     
    router ospf 1
    log-adjacency-changes
    area 0 authentication\首先需要在区域下开启认证功能
     
    •R1(config)#interface serial 0
      ip ospf authentication-key cisco \区域开启认证后还需要在接口下配置认证密码
     
    (2)密文配置
     
    router ospf 1
    log-adjacency-changes
    area 0 authentication message-digest \首先需要在区域下开启认证功能
     
    •R1(config)#interface serial 0
    •R1(config-if)#ip ospf message-digest-key 1 md5 cisco
     
    注:配置MD5认证后,如果接口下存在多个KEY,建立邻居前会使用最后一次配置的KEY计算HASH,如果建立成功后通过所有KEY值。配置的KEY-ID是不参与HASH计算的,只是一个索引值。
     
    3、Router-id冲突
    R1(config)#router ospf 1
    R1(config-router)#router-id ? \进程下手工修改router-id(建议使用手工指定)
      A.B.C.D  OSPF router-id in IP address format
    Reload or use "clear ip ospf process" command, for this to take effect
    R1(config-router)#
    4、区域ID不一致
    5、网络类型不一致 ? (hello和dead不一致) \如果一边是广播网,另一边是点到点,可以正常建立邻居关系,但是无法正常选路。
     
      网络类型    hello interval    dead interval
      广播            10S                40S
      非广播          30S                120S
      点到点          10S                40S
      点到多点        30S                120S
      虚链路      cisco 无              cisco 无
     
    R2(config-if)#ip ospf network ?  \修改接口网络类型
      broadcast            Specify OSPF broadcast multi-access network
      non-broadcast        Specify OSPF NBMA network
      point-to-multipoint  Specify OSPF point-to-multipoint network
      point-to-point      Specify OSPF point-to-point network
     
    6、掩码不一致 ? \只有在广播、非广播网络型中才会检查掩码,原因是因为这两种网络类型中都需要生成2类LSA,而2类LSA中需要掩码长度,而在点到点、点到多点和虚链路的网络类型中不需要检查掩码匹配。
    7、接口地址不在同一网段 ? \如果在点到点网络类型中,接口的IP地址使用地址借用的方式是不会执行源检查的,如果接口直接配置IP地址,同样会存在源检查。
     
    例:R1----R2通过串口互联,R1上配置IP地址,R2上使用IP地址借用,R1和R2配置OSPF,结果如下:
     
    R1#show ip os neighbor
     
    R2#show ip os neighbor
     
    Neighbor ID    Pri  State          Dead Time  Address        Interface
    12.1.1.1          0  INIT/  -        00:00:32    2.2.2.1        Serial1/0
     
    8、区域类型不一致 \option选项中的Ebit表示可以接收和传递外部路由(5类LSA),在stub和totllay stub中Ebit位需要设置为0.同时N/Pbit位也是属于区域类型位(nssa和tollay nssa)。 如果在hello和DBD报文中N/P位置为,Ebit位就需要设置0,这两个bit位不能同时被设置。
    9、ACL
    10、PASSIVE接口(OSPF中的passive接口不收发hello报文)
     
    R2#show ip os neighbor  \查看邻居状态
     
    Neighbor ID    Pri  State          Dead Time  Address        Interface
    12.1.1.1          1  FULL/DR        00:00:38    12.1.1.1        FastEthernet0/0
                        (邻居状态机/接口状态机)
     
     
    OSPF的报文类型:
    1、hello:发现建立和维护邻居关系
    2、DBD(数据库描述报文):用于通告LSDB中所有的LSA的摘要信息(LSA的头部信息)
    3、LSR(链路状态请求):用于请求具体的LSA信息
    4、LSU(链路状态更新):用于通告具体的LSA信息
    5、LSACK(链路状态确认):用于确认接收到的LSA
     
    在OSPF中有两种确认机制:1、隐式确认(hello、DBD、LSU)  2、显示确认(LSACK)
     
    OSPF邻接关系的建立:在广播网和非广播网中只和DR和BDR建立邻接关系,而DRother之间只建立邻居关系。其它的网络类型中全部建立邻接关系。
     
    如果可以建立邻接关系,邻居状态机会从2WAY过渡到exstart,过渡到exstart状态后,双方开始发送DBD报文。双方发送的第一个DBD报文中不会携带LSA摘要信息,第一个DBD报文的主要作用是选举主/从关系。
     
    1、为什么DBD报文需要选举主从?
      选举主从的主要目的是为了保证DBD报文交互过程中的可靠性。
    2、主/从怎么选?
      主从通过router-id选举,大的成为主,小的成为从。
     
    DBD报文在主从选举涉及到几个bit位: (I M MS)
    1、I=init, 如果I比特位设置为1,说明是第一个DBD报文
    2、M=More, 如果M比特位设置为1,说明后面还有更多的DBD报文,如果为0,表示是最后一个DBD
    3、MS=Master/slave,如果设置为1,表示为主,如果为0,表示为从
     
    DBD报文中同时会携带接口MTU值,通过这种方式检查两段的MTU值是否一致。如果收到的DBD报文中携带的MTU值大于接收接口的MTU,那么DBD报文会被丢弃。
     
    interface FastEthernet0/0
    ip address 12.1.1.2 255.255.255.0
    ip mtu 1300
    ip ospf mtu-ignore  \接口下配置忽略MTU检查
    duplex half
    end
     
    如果接收到的DD报文中M比特位=0,维护邻居的状态从exchange过渡到loading。在loading状态下开始发送LSR和LSU。
     
    在loading状态下有两张列表:
    1、链路状态请求列表:将需要请求的LSA放到列表中,并通过LSR请求。(收到LSA摘要信息后需要和自己的LSDB做对比,如果自己的LSDB中不存在该LSA,就需要将LSA放入到请求列表中做请求处理。如果存在需要执行LSA比较流程。)
    2、链路状态重传列表:如果发送了LSR,但是没有收到LSU,就需要将这部分LSA放到重传列表中重新请求。重新发送LSR,默认的重传时间是5秒钟。
     
    如果这两张列表中其中有一个列表不为空,就需要处于loading状态。只有在两张列表都为空的情况下,才会从loading过渡到FULL的状态。
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





    附件列表

  • 相关阅读:
    ubuntu sudo 号令有效处理
    shell脚本的主笔、存储、实行
    Oracle 11gR1中细粒度访谒收集处事(4)
    Solaris效力经管工具 SMF快速入门指南(1)
    Solaris 10完成宁静Kerberos身份验证(2)
    高质量C /C编程指南第2章 程序的版式
    Solaris 10下设置EJB 3.0景遇(1)
    高质量C /C编程指南序言
    Java学习之路:不走弯路,就是捷径 www.51testing.com
    两个结构体可以直接赋值吗? 回复 "JohnsonAnother" 的问题
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/11249673.html
Copyright © 2011-2022 走看看