OSPF协议(动态)
1、OSPF的数据包
Hello包
周期发现,建立和保活邻居关系;
发送 hello时间---默认10s 以太网(非以太网 30s);
失效判定时间 Dead time----4倍的hello时间;
身份标识---Route ID
在OSPF中,我们需要对每台路由器设计一个身份--RID。
1,全网(整个OSPF网络)唯一;
2,格式统一,要求必须按照IP地址的格式来配置;
如何拥有标识?
1,手工配置----只需要满足以上两点要求即可;
2,自动生成----1)如果设备具备环回接口,则将在环回接口的IP地址中选择数值最大的作为RID。
2)如果没有环回接口,则将在物理接口中选择IP地址数值最大的作为RID。
HELLO包中将会携带RID
DBD包----数据库描述报文
LSDB--链路状态数据库---存放LSA信息的数据库;
(先发目录做对比)
LSR包---链路状态请求报文
基于位置的LSA信息进行请求
LSU包---链路状态更新报文
真正携带LSA信息的数据报文
LSACK包---链路状态确认报文
确认包(确认机制)
OSPF有周期更新,存在每30min一次的周期更新;
2、OSPF的状态机(七种状态)
TWO-WAY(双向通讯)--标志着邻居关系的建立
(条件匹配)---匹配通过,则可以进入到下一个状态;
--- 匹配不通过,则将停留在邻居关系(仅使用hello包周期保活即可);
主从关系选举:
通过使用未携带数据的DBD包(主要目的是为了和之前的邻居关系进行区分)比较RID进行主从关系选举,为主的可以优先进入到下一个状态。(分先后可减少占用资源的措施)
DBD包之间使用隐形确认的方法进行确认,而不是直接通过LASCK进行显性确认。
FULL状态---标志着邻接关系的建立。
只有邻接关系可以 交换LSA信息,(而邻居关系只能通过Hello包进行周期保活。)
DOWN状态:
启动OSPF进程,发送hello包之后进入到下一个状态;
INIT(初始化)状态:
收到hello包中包含本地的RID,则将进入到下一个状态;
TWO-WAY(双面通讯)状态:
----标志着邻居关系的建立;
(条件匹配)---匹配通过,则可以进入到下一个状态;
--- 匹配不通过,则将停留在邻居关系(仅使用hello包周期保活即可);
ExStart(预启动)状态:
使用未携带数据的DBD包进行主从关系选举,为主的可以优先进入到下一个状态;
ExChange(准交换)状态:
使用携带数据库摘要信息的DBD包进行数据库目录共享;
Loading(加载)状态:
基于DBD包,通过LSR/LSU/LSACK来获取本地未知的LSA信息