1、发现并建立邻居-Hello报文

1.1、作用:

邻居发现:自动发现邻居路由器
邻居建立:完成hello报文中的参数协商,建立邻居关系
邻居保持:通过Keeplive机制,检测邻居运行状态

1.2、报文发送条件

1.2.1、凡是加入到OSPF协议的物理/隧道接口(loopback接口除外),就会主动发送hello报文。

华为使用network命令追加

用vlanif接口与三层物理接口建立ospf邻居需要在ospf里下发默认路由吗 ospf vlanif建邻居_网络协议

1.2.2、hello源地址为接口地址,目的地址为224.0.0.5(组播地址)

在P2P链路,广播型链路每隔10秒周期性发送,邻居失效时间默认为hello间隔4倍,即在120秒没收到邻居的hello报文,则认为邻居失效,断开邻居关系,并进行重新的路由计算。

在NBMA,P2MP链路每隔30秒周期性发送。

用vlanif接口与三层物理接口建立ospf邻居需要在ospf里下发默认路由吗 ospf vlanif建邻居_网络安全_02

2、hello报文中携带的主要信息(抓包分析)

2.1、OSPF Header

用vlanif接口与三层物理接口建立ospf邻居需要在ospf里下发默认路由吗 ospf vlanif建邻居_网络协议_03

Version: 2 #ospf协议的版本
Message Type: Hello Packet (1)#Message Type:1 hello、2 DD、3 LSR、4 LSU、5 LSACK
Packet Length: 44#报文长度
Source OSPF Router: 1.1.1.1#路由器 odpf的router id
Area ID: 0.0.0.1#区域id,描述发送hello报文的接口所属的区域。

Checksum: 0xfa9b [correct]
Auth Type: Null (0)#认证类型:0 空认证,即没有做认证,1 明文认证,2 MD5认证
Auth Data (none): 0000000000000000#明文密码/密文的MD5值

2.2、 OSPF Hello Packet

Network Mask: 255.255.255.0#接口的子网掩码
    Hello Interval [sec]: 10#发送hello报文间隔10s发送周期
    Options: 0x02, (E) External Routing#N bit E bit
    .... 0... = (N) NSSA: Not supported
    .... ..1. = (E) External Routing: Capable
    Router Priority: 1#路由器优先级,默认是1,用于选举DR、BDR
    Router Dead Interval [sec]: 40#邻居失效时间,死亡间隔
    Designated Router: 0.0.0.0#bro/nbma链路上DR路由器接口的地址
    Backup Designated Router: 0.0.0.0#bro/nbma(广播/非广播多路访问如帧中继)链路上BDR路由器接口的地址

如果链路是P2P、P2MP,则DR/BDR取值为0.0.0.0,则不进行DR/BDR的选举

3 、hello报文中影响邻居关系的因素

1、router id不能冲突,(指的是ospf协议的router不是全局router id,因为hello报文里的router id指的是ospf的)
2、area id要相同
3、auth type 要一致
4、auth data 要匹配
5、hello间隔要一致
6、dead间隔要一致
7、N bit 和E bit取值要一致
以上七个条件是任何情况都要满足的建立邻居关系的条件。

4 、OSPF邻居建立的过程

1、在没有建立邻居关系之前的路由器接口都是处于down状态的,会周期性的发送hello包,
2、有收到对端发来hello报文的路由器会从down状态变为Init状态(冷启动),第一次握手(单项发现)
3、Init状态下,hello报文会携带对端router id 和自身 router id
down:可以发送hello报文,但是不携带邻居的router id
Init:收到邻居的hello报文,但是没有发现自己的router id,单向发现。
OSPF支持通过单播方式建立邻居关系,对于不支持组播的网络可以通过手动配置实现邻居的发现和维护。
OSPF可靠性机制:3次握手建立双向邻居关系,避免单边邻居的建立。