OSPF
IGP 协议的一种,属于链路状态协议
——————————————————————————
五种报文类型
1、hello:用于发现邻居,建立邻居关系和维护邻居关系(周期性发送,默认 10s 一次 or 30s 一次)
2、dd:用于选举主从路由器,用于携带 LSDB 摘要信息
3、lsr:请求缺失的 LSA
4、lsu:响应 LSR 请求,用于回复 LSA 信息
5、lsack:确认收到的 LSU
——————————————————————————————————————————————————————————————————
八种状态机
1、down:代表 ospf 协议进入初始化,还没有建立邻居
(特殊状态机,在 NBMA 网络中,发送了 hello 给对方,但是没有任何的会议,就会进入到 attempt )
2、init:代表收到了对方的 hello 报文,正在进行邻居协商(对方的 hello 报文中,没有自身的 router id)
3、2way:代表邻居建立完成,收到了对方的 hello 报文,并且对方的报文中,包含自身的 router id
————————————————————— 邻居 —————————————————————————
4、exstart:代表邻接关系开始建立,选举主从设备(主从设备是保证 LSA 能够有序和可靠的交互)
5、exchange:开始同步 LSA 摘要信息,通过 DD 报文进行交互
6、loading:同步 LSDB,缺少的设备进行请求,直到双方 LSDB 完全一致
7、full:标志着同步完成,双方 LSDB 完全一致
————————————————————— —————————————————————————
——————————————————————————————————————————————————————————————————
邻接
工作过程:
一、邻居建立:
(router id 1.1.1.1) (router id 2.2.2.2)
R1 ——————————————— R2
①邻居发现:双方设备都在初始的 down状态,互相发送 hello 报文建立邻居关系(hello 报文中会携带自己的 router id)
例如:R1 先发送(hello 自己的 router id (1.1.1.1)、邻居的 router id(null))
②邻居协商:R2 收到 hello 报文后,会从 down 状态转换成 init 状态(进入邻居协商阶段) R2 会把 R1 发送过来的 hello 报文进行记录,把 1.1.1.1 放入自己的邻居列表中R2 同时回复一个 hello 报文(hello 自己的 router id (2.2.2.2)、邻居的 router id(1.1.1.1)) R1 收到 R2 的 hello 报文后,看里面包含自己的 router id ,R1 设备转至 2way 状态 并且把 R2 的 hello 报文内容进行记录,把 2.2.2.2 放入自己的邻居列表中
R1 同时回复 hello 报文
(hello 自己的 router id (1.1.1.1)、邻居的 router id&