OSPF开放式最短路径优先协议
OSPF为链路状态型协议,邻居间传递拓扑图。使用集中式计算方法,本自治区域内所有的路由器传递原始信息,每一个相邻的路由器收到消息后再发送给自己的所有邻居(但不再发送给刚刚发来消息的邻居),收到所有的原始信息得到全网拓扑图再进行选路计算。
优点:选路佳,灵活性和稳定性高
缺点:占用资源大,效率低
使用SPF算法进行选路
OSPF协议基本信息
链路状态型协议
适用范围:IGP
传递的LSA(6类)
数据包跨层封装于3层报头,协议号89
更新方式:触发更新、周期性链路状态刷新(30分钟,刷新的是LSA,不是路由表)
更新地址:224.0.0.5/6
使用hello包建立邻居,10s保活
管理距离默认110,使用cost值作为度量
支持手工汇总和认证
LAS中存在路由信息和拓扑信息
需要结构部署,进行区域划分和IP地址规划
ospf的邻居关系
1、点到点网络中所有邻居直接建立邻接关系
2、在MA网络中,进行DR/BDR的选举(因为集中式算法导致更新量会很大,会缩减邻居关系)
DR/BDR选举的两个参数,默认不开启抢占
1.接口优先级(0-255,默认为1,0表示没有选举权)
2.route-id(唯一标示一个路由器,选举时先比较接口优先级,数值大者优,优先级一致则比
较route-id,数值大者优,通信过程中,只能让DR/BDR收集MA网络信息,使用了两个组播地
址)
DR/BDR发送使用224.0.0.5,监听使用224.0.0.6
DRother发送使用224.0.0.6,监听使用224.0.0.5
OSPF邻居形成关系
1、参与的数据包
hello包
DBD 数据库描述包
LSR 链路状态请求包
LSU 链路状态更新包
LSack 链路转台更新包
2、OSPF的状态机
Down:关闭状态。没有与其他路由器交换信息时也是down状态,一旦本地发出hello包则进入下
一状态
Attempt : 尝试状态,在NBMA网络类型下,主动发送hello报文(具有成为DR资格的路由
器),可以接收hello报文。
init初始化:接收到的没有自己的route-id的hello报文
two-way:hello包发出并收到,只有MA网络(p2p跳过)有,用于选举DR/BDR
exstart: DBD发出,并收到,用于选举主从关系
route-id大的设备为主设备,主设备先发携带拓扑缩略信息的DBD,收到对方发送的LSack信息结
束
exchange: DBD完整结构,由主设备先发出,从设备接收后发出,DBD中携带的是拓扑的目录(缩略信息),查看该路由器哪些信息是自己需要的,收到对方的LSack时结束
Load: 发送LSR请求自己想要的完整拓扑信息,以自己发送的LSack确认对方的LSU结束
full:邻接关系建立的标志
拓扑信息通告
链路状态通告LSA头(缩略信息) + LSA体 完整LSA携带LSA的完整信息
DBD和LSR携带的都是LSA的头部信息 LSU携带的是完整的LSA信息
LSA头部信息type (自己描述自己) LS-ID(是谁) LS-ADVrouter(通告者)
LSA内容:链路的路由前缀,掩码,开销,连接的网段,连接的链路类型以及连接的路由器
LSDB链路状态数据库(所有的LSA信息的集合),然后启动SPF算法
根据LSDB读路由器之间的连接图,运行OSPF算法,每一步找出到达其他节点的最短路径的树状图(无环且路径最短),根据此图检索到达各个路由器网段的路径,就能够得到路由信息
一旦链路状态发生改变,只需要告知路由变化的点就可以根据算法得到最新的最短的路径树状图
LSA的接受与洪泛:周期洪泛30min,60min老化
建立邻居的条件
1.hello时间一致
2.mtu值一致
3.认证一致
4.相同的area id
5.特殊标示
6.router-id不能相同
7.网络类型(主要是hello时间),但是点到点和MA建邻
8.max-lsa数量的限制会引发lsa加载失败影响建邻
9.MA网络类型会检测接口地址的掩码
10.若优先级都为0,MA网络无法选举
11.虚链路的建邻要保证连个ABR的出接口ospf包都能通
12.shame-link建邻要保证源和母的单播都能通
OSPF不同网络有不同的网络类型,不同网络类型引起hello时间不同,不同的网络导致算法混乱
route-id相同的情况下无法建邻
在邻居关系建立过程总出现故障排除
1.卡在init–hello包协商失败
2.卡在two-way–在MA网络不能生成DR
3.卡在exstart–MTU协商不一致
4.卡在loading–LSDB不能同步
5.卡在attempt–指定错误邻居地址