1. OSPF报文
OSPF报文 Hello 报文、 DD 报文、 LSR 报文、 LSU报文、LSAck 报文
OSPF 头部
OSPF 用 IP来封装协议报文,协议号89,5种OSPF的报文具有相同OSPF 头部。
OSPF 头部中关注的字段主要有:
- version: IPv4 OSPFv2 值为2;IPv6 OSPFv3值为3,1Byte;
- Type:描述为何种OSPF报文,
1:Hello报文,2:DD报文,3:LSR报文,4:LSU报文,5:LSAck报文,1Byte; - Router ID: 发送OSPF 报文的源Router ID,4Byte;
- Area ID:发送OSPF 报文接口所属的OSPF 区域ID,4Byte;
- checksum:对除认证字段的OSPF 报文进行校验,2Byte;
- Auth 类型字段:定义OSPF认证类型,0:不验证;1:简单认证;2:MD5认证,2Byte。
- Auth 字段:当验证类型为0时未作定义;类型为1时此字段为密码信息;类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息。
OSPF Hello报文
Hello 报文周期性发送,用于发现和维护OSPF的邻居关系,在MA网络中用来选取OSPF的DR/BDR。
Hello报文中不携带LSA信息,除Hello报文其他OSPF报文都携带LSA信息。
OSPF Hello报文如下:
Hello报文需要关注的字段:
- netmask:掩码,发送Hello报文的接口所在网络的掩码,在MA网络中判断接口是否在一个网段
- Hello/Dead interval: Hello报文发送时间间隔,以及dead 时间,缺省dead时间位hello intervall的4倍,不同的网络类型的hello interval并不一定相同。
- Router Priority: 路由器优先级,用于选举OSPF 的DR/BDR,默认为1,如果为0表示路由器不参与DR/BDR的选举
- Designated Router: 指定路由器,DR接口的IP地址吗,如果为0.0.0.0表示未选举DR路由器
- Active Neighbor: 描述OSPF 的邻居路由器的RID列表,表示路由器已经从邻居路由器收到合法的hello报文
- Option 字段:8个可选项 DN O DC EA N P MC E MT
DN:用于基于MPLS的三层VPN,Down 比特位
DC:按需链路
N/P:N只出现在hello数据包中,N=1表明该路由器支持7类LSA
P:仅用在NSSA区域的7类LSA头部,用来告诉NSSA区域非末节区域的ABR将七类LSA转换为五类LSA
E:具有接收外部LSA的能力。当始发路由器具有接收OSPF外部LSA的能力时,该位置位1。在所有5类LSA和始发于骨干区域以及非末节区域的LSA中,该位置为1。而始发于末节区域的LSA中,该位置为0。Hello报文中该位置位表明一个接口具有接收和发送5类LSA的能力。
OSPF DD报文
DD报文:Data