目录
概述
OSPF(Open Shorter Path First)开放式最短路径优先,是一种基于链路状态的内部网关协议,协议号为89,基于IP协议。
目前OSPF的版本是v2,主要标准是RFC1583和RFC2328。而OSPFv3主要应用在IPv6协议中,参考标准主要是RFC5340.
OSPF基础介绍
2.1、报文类型:
OSPF一共有5种类型的协议报文分别是:
Hello报文:主要用于发现和维护OSPF的邻居关系,周期性发送。 (在Broadcast和NBMA网络中选举DR和BDR)
DD报文(DataBase Description Packet):描述本地LSDB的信息摘要,用于数据库同步 (选举主从关系)
LSR报文(Link State Request Packet):向对方请求所缺少的LSA,需要成功交换DD报文后才发送LSR报文 (该LSA只包含LSA的信息摘要)
LSU报文(Link State Update Packet):向对方发送所请求的LSA或者泛红自己更新的LSA(该LSA包含全部的LSA)
LSACK报文(Link State Acknowledgment Packet):用来对收到的LSA进行确认
OSPF工作在IP层,是个可靠的协议,协议内部包含确认机制。
DD报文中的三字段:
“I”(Init)’1‘表示第一个DD报文,’0表示非第一个DD报文‘
“M”(More)’1‘表示后续还会有DD报文,’0‘表示后续不再有DD报文
“MS”(Master)’1‘宣告自身为主,’0‘宣告自身为从
2.2、报文头部
2.2.1、OSPF报头
- Version版本:8位,OSPFv2值为2,OSPFv3值为3
- Type类型:8位,表示报文的类型
- Packet Length包长:16位,OSPF报文的总长度,包括报文头在内,单位位Byte
- Router ID路由器标识:32位,用于标识唯一一台路由器
- Area ID区域标识:32位,标识所属的区域“Area 0、Area 1、Area 2·······”
- Checksum校验:16位,包含了除认证字段的整个报文的校验和
- AuType验证类型:16位,“0”表示不验证;“1”表示明文认证;“2”表示MD5认证
2.2.2、Hello报头
- Network Mask:32位,网络掩码
- Hello Interval:16位,Hello报文的时间间隔
- Options:8位,可选字段
- Rtr Pri:8位,DR优先级,默认位 1
- Router Dead Interval:32位,邻居失效时间,如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效,并从邻居表中移除该邻居,从路由表里撤销指向该邻居的路由
- Designated Router:32位,本网段上的DR路由器的接口IP地址
- Backup DesignatedRouter:32位,本网段上的BDR路由器的接口IP地址
- Neighbor:32位,邻居列表,用Router ID标识
Options可选字段:
E = 1:表示非特殊区域,支持5类LSA(AS-External-LSA)
E = 0:表示是特殊区域,不支持5类LSA
N = 1:表示是Nssa区域
N = 0:表示不是Nssa区域
2.2.3、LSA报文头部
LSA是路由器之间链路状态信息的载体。LSA是LSDB最小单元组成单位,也就是LSDB是由一条条LSA组成的
所有的LSA都拥有相同的头部
- LS age:LSA生存时间
- LS Type:表示LSA的格式和功能,一般状态下有五种类型
- Link State ID:描述此链路状态标识
- Advertising Router:产生此LSA的路由器Router ID
- LS Sequence number:用于检测新旧和重