OSPF的意义
OSPF:开放式最短路径优先协议
它是一种无类别(携带掩码)链路状态(传递拓扑)型IGP(AS自治系统内)协议
因为它基于传递拓扑来更新路由的方式,让它工作的更新量变得非常巨大,让它不能够适应于大型网络。但是它的结构化部署(分区域)让它能够在中大型网络中生存。而它巨大的更新量也带来了它一项出众的特点----防环
OSPF的工作原理
OSPF是基于链路状态型协议,它的工作原理就是在一个区域内的各个设备间通过更新LSA信息然后各个设备独立计算路由。而在不同区域间,它则是通过同步路由表来更新路由这一现象叫做链路状态型协议的距离矢量特征,这也大大减少了区域间的数据传输量,使得OSPF协议能够适应于中大型网络。
OSPF的工作过程
启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表:
之后进行条件的匹配,匹配失败的邻居将保持为邻居关系,仅hello包周期保活即可;
匹配成功的邻居间,将进行邻接关系的建立;过程中先使用DBD进行目录交互,在使用LSR/LSU/LSack来获取本地未知的LSA信息;最终完成邻接关系间的LSDB同步;生成数据库表;
再然后,本地基于LSDB,生成有向图—>树型结构—>最短选路
SPF算法基于树形结构计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;
收敛完成,hello包周期保活;每30min邻居间再周期比对DBD包(数据更新量大,保险机制);
如果遭遇结构突变的情况:
当出现新增或断开网段的情况,会直接通过更新包来告知给本地所有邻接;
当出现无法沟通的情况,会等到dead time结束后,邻居间断开关系,删除信息;
OSPF的三种数据表
邻居表 显示邻居的详细信息
数据库表 路由器收到LSA后,会将它们存放在链路状态数据库LSDB中
路由表 通过SPF算法计算得来
OSPF的五种数据包
Hello包 组播周期发送,用于邻居、邻接关系的发现、建立、周期保活;
DBD包 数据库描述包
LSR 链路状态请求
LSU 链路状态更新 --携带具体的LSA信息
LSACK 链路状态确认
OSPF的七种状态机
Down 接收到Hello包后进入下一状态
Init 接收到含有自己RID的Hello包 进入下一状态
2-way 邻居关系建立的标志
Exstart 使用不携带信息的DBD包进行主从关系选举 RID大为主
Exchange 使用DBD进行数据目录共享 需要ACK确认
Loading 对比数据库目录 使用LSR请求获取未知LSA,对端使用LSU来更新LSA,
使用LSACK来确认信息
Full 邻接关系建立的标志
OSPF的网络接口类型
Nbma(非广播型多路访问)
P2mp(多点)通过手动选取DR 无BDR
P2P(点到点)点到点两端直接建立邻接关系
Broadcast(广播)正常选取DR BDR