HCIP_OSPF_邻居的建立

OSPF邻居的建立

OSPF基于IP协议,协议号89.
ospfv2 基于IPV4,ospfv3基于IPV6
基于IP协议,OSPF目前成为主流的IGP协议。
ospf有八种状态机,分别是:Down,Attempt,init,2-way,Exstart,Exchange,Loading,Full。
ospf有五种报文,Hello DD LSR LSU LSACK每个ospf报文都是由OSPF header加上OSPF payload组成,

在这里插入图片描述
在这里插入图片描述ospf支持组播发送报文,其中224.0.0.5是为ospf设备预留的IP组播地址,224.0.0.6是为OSPF的DR/BDR设备预留的IP地址。
一、首先,列举出OSPF邻居建立的过程中影响邻居关系建立的因素。

  • router-id

  • 接口区域号,

  • 接口地址的掩码(MA网络)

  • 接口认证

  • Hello时间,dead时间

  • Option字段的E位和N位,即area type,ospf特殊区域有stub,nass:STUB区域:E比特位=0 NSSA区域:E比特位0 N比特位=1

  • DD报文中的MTU(华为设备默认不检查MTU,可手工开启)
    2.报文类型
    这里我们先来看一下实验环境。
    在这里插入图片描述
    我们现在AR1上配置ospf协议,并且把g0/0/0宣告,我们抓包发现。
    ospf Hello包源IP是AR1 G0/0/0端口,目的地址为组播224.0.0.5
    在这里插入图片描述
    我们来看一下Hello包里面有啥玩意儿。
    我们首先来看OSPF Header(头部)里面的

    在这里插入图片描述
    首先是

  • Version(版本):这里版本为2,IPV4环境下

  • Message Type:报文类型,这里是Hello

  • Packet Length: OSPF报文长度

  • Source OSPF router:发送此报文的路由器router-id

  • Area ID:发送此报文的出接口所在区域

  • Checksum:校验和,用作校验

  • Auth Type :认证类型,有Null(0),simple(1)和MD5(2)认证类型。

  • Auth Data:认证数据,用来存放认证的秘钥,Key ID等。
    (1)Hello报文:用于发现,建立和维护邻居关系。
    OSPF Hello报文
    **- Network Mask:发送该报文接口所在网段掩码

  • Hello Interval【SEC】:hello周期发送时间

  • Options:选项位,用于支持不同的功能
    1.DN:Down
    2.E:External Routing:如果置位则表示支持5类LSA,这里置位了
    3.N:NSSA Routing:如果置位表示支持7类LSA(NSSA区域专属)

  • Router Priority:路由器优先级,用于DR/BDR竞选,缺省为1.

  • Router Dead Interval 【SEC】:Hello的死亡时间=4倍的hello时间

  • Designated Router:DR路由器,使用Router-id标识

  • Backup Designated:BDR路由器,使用Router-id标识。
    (2)DD报文:描述LSDB(链路状态数据库)的摘要信息。**
    这里我们将实验环境中的AR2也运行ospf协议,并且将G0/0/0端口宣告进去。与AR1建邻居。
    在这里插入图片描述

  • Interface MTU:0

  • Options:选项置位,这里是E(支持5类LSA)

  • DB Description:DD报文描述置位
    1.(i)Init:如果置位表示这个报文时第一个DD报文
    2.(M)More:如果置位表示后续还带有LSA摘要信息的DD报文
    3.(MS)Master:如果置位表示发送该DD报文的是Master

  • DD Sequence:DD报文序列号,用于标识DD报文,只有Master 产生序列号每发送一次加1.
    我们来看看LSA摘要信息里面的内容
    LS Type:几类LSA,这里是Router-LSA(1)
    Link State ID:发送这个摘要信息的路由器ID
    Advertising Router:通告这个摘要信息的路由器
    sequence Number:序列号
    Checksum:校验和
    Length:长度。
    (3)LSR报文:用于请求响应LSA,包含有要请求LSA的三要素。
    在这里插入图片描述
    上面DBD已经解析,这里不再解析。
    (4)LSU报文:用于向邻居更新请求的LSA,含有真正的LSA
    LSU报文
    (5)LSAck报文:用于对收到的LSA做确认,只包含LSA的摘要信息。
    在这里插入图片描述

二、OSPF的八种状态机

Down,Attempt,Init,2-way,exstart,exchange,loading,full。
Down:邻居会话的初始阶段,表面没有在邻居失效时间间隔内收到来自邻居的Hello包。
Attempt:此种状态仅发生在NBMA网络中,此时对端邻居失效时间间隔超时(对面邻居已经超时)此时路由器仍然依照hello时间间隔向对端发送hello包。
Init:收到Hello报文后状态为Init
2-way:收到的Hello包中含有自己的router-id,则状态为2-Way,如果形成邻接关系,就停留在此状态,反之则进入Exstart状态
Exstart:如果形成邻居关系,则从init转到Exstart状态,开始协商主从关系(router-id越大越好)并确定DBD报文的序列号。(预启动)
Exchange:主从关系协商完毕,开始交换DBD报文,此时状态为Exchange。(预处理)
Loading:主从关系协商完毕后开始交换DD 报文,此时状态为Loading
Full:LSR重传列表为空,此时状态为Full。
接下来我们画一张图理解一哈,建邻居过程。
首先是Down,2-way
在这里插入图片描述
Exstart——>Exchange
在这里插入图片描述
Exchange这里本来不想画图了,一看时间22:23了,今天上完一天班,有些小累,不过好人做到底,也只剩下一点点了。
在这里插入图片描述
进入Loading,
LSRequest,请求DBD所描述的具体条目信息,LSUpdate回应Request,发送完整的LSA的具体条目信息,
如果LSUPdate中没有自己想请求的条目,则进入Full状态,邻接关系完全建立。
是邻接关系一定是邻居关系,
是邻居关系不一定是邻接关系。
与DR/BDR建立邻接关系,其他角色之间建立邻居关系。
明天继续写。
2020年1月16日22:35:44

发布了10 篇原创文章 · 获赞 16 · 访问量 826

猜你喜欢

转载自blog.csdn.net/qq_45519920/article/details/104010411