OSPF : 开放式最短路径优先协议
使用范围:IGP
协议算法特点: 链路状态型路由协议,SPF算法
协议是否传递网络掩码:传递网络掩码
协议封装:基于IP协议封装,协议号为 89
一.OSPF 特点
1.OSPF 是一种典型的链路状态型路由协议
2.传递信息称作LSA,LSA 链路状态通告,包含路由信息和拓扑信息。
路由LSA:描述本路由器上接口的路由信息
拓扑LSA:描述路由器之间的链接状态
3.更新方式: 触发更新+30分钟的链路状态刷新
①触发更新:当网络结构稳定时不会发送路由信息,当网络结构改变时,才会发送路由信息
②30分钟的链路状态刷新:主要是为了路由信息的新旧比较,用来刷新信息。
5.支持路由认证
6.支持手工汇总
7.支持区域划分
8.OSPF 比较消耗设备资源。(思科)一个路由器上最多支持31个OSPF 进程
二.OSPF 区域
区域划分的意义: 1.减少LSA的数量 2.减少LSA的传播范围
区域的划分是基于接口的(链路的)
区域的标记:使用了32个二进制 1.十进制 2.类似于IP地址 A.B.C.D
区域的分类:
骨干区域: 区域标记为0或0.0.0.0
非骨干区域:区域标记不等于0或0.0.0.0
区域设计原则: 向日葵型网络结构
1.OSPF网络中必须存在并唯一的骨干区域(单区域除外)
2.若存在非骨干区域,非骨干区域必须与骨干区域直接相连
OSPF中路由器的角色:
非骨干路由器:路由器上的所有接口都不在骨干区域内。
ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器
三.OSPF 邻居状态机制
Down、attempt(过渡) 、 init 、 two-way 、 exstart 、 exchange 、loading 、full
3.Init ---初始化状态,一旦开始发送hello报文,进入初始化状态。
此状态下说明路由器已经收到来自邻居发送的hello包,但是hello包中没有包含发送者的R ID。
4.Two-way---双向通信状态(邻居状态),接收到包含自己router-id 的对方hello报文。
卡在这个状态的唯一条件:两台路由器选不出DR,他们的优先级都为0.
邻居关系建立条件:
(1).router-id 必须不同
(2).area ID 相同
(3).认证: 认证类型 (不认证=0 明文认证=1 MD5=2) 认证数据 要相同
(4).hello时间,dead时间 要相同
网络类型 | Hello time | Dead time |
P2P | 10 | 40 |
MA | 10 | 40 |
NBMA | 30 | 120 |
P2MP | 30 | 120 |
(5).特殊区域标识一致(E(外部路由位)=1 ; N(NSSA外部路由位)=0 P=0)
(7).必须同时使用单播或组播更新
(8).更新源检测(双方的IP地址必须在同一网段)
类型报文 | Hello | DBD | LSR | LSU | LSACK |
NBMA | 单播 | 单播 | 单播 | 单播 | 单播 |
V-Link | 单播 | 单播 | 单播 | 单播 | 单播 |
P2MP | 组播 | 单播 | 单播 | 单播 | 单播 |
MA | 组播 | 单播 | 单播 | 组播 | 组播 |
P2P | 组播 | 组播 | 组播 | 组播 | 组播 |
邻居状态下(two-way): MA的网络中会选举DR(指定路由器) BDR(备份指定路由器)
DR选举: 1.比较优先级 (范围:0-255,默认优先级为1 ,越大越优)
2.比较各自的router-id,越大越优
注意:1.DR抢占是关闭的 2.DR是一个接口概念 3.优先级范围0-255,数字为0代表不参与选举 4.先选举BDR ,再升级为DR
5.Exstart---预启动状态,一旦开始发送主从DBD,则进入预启动状态。
(在Exstart状态下,路由器和它的DR, BDR建立了一种主从(master-slave)的关系并且选择一个初始的(sequence number)序列号来形成临接。拥有更高的Router ID的路由器将会成为master并且开始交换信息,同时master也是唯一一个可以增加sequence number的路由器。需要注意的是,逻辑上可以认为DR/BDR中拥有更高的Router ID的一个可以成为master。但是请记住,DR/BDR的选举可能会因为手工配置了priority而不一样,不仅仅依赖与Router ID。因此有可能DR会在这个状态下充当slave状态。)
在Exchange状态下,OSPF路由器交换database descriptor (DBD)包。DBD包含了链路状态通告(LSA)头部文件相当于LSA的目录,并且描述了整个链路状态数据库的内容。每一个DBD报文都含有一个sequence number,并且这个号码会每一次被master增加。在Exchange状态下,路由器同时会发送链路状态请求报文(LSR)。接收到的DBD报文会和路由器链路状态数据库进行比较以确保是否有任何新的或者更多的链路状态信息是可用的。
7.Loading ---加载状态,一旦发送LSU(链路状态更新报文)数据包,进入了加载状态,进行大量LSA的学习。
8.Full ---邻接状态。双方LSA同步(双方LSA全部学习)
(Full状态是OSPF路由器的一个最常见的状态。如果一个路由器停留在另外一个状态,那么就说明了在路由器建立临接关系的过程中是存在问题的。唯一的例外是2-way状态,是在广播网络中常见的。在广播网络中,邻居之间(除了和DR,BDR之外)会最终处于2-way状态。)
OSPF故障排除流程
如果邻居关系处于Down状态:
- 检测物理接口是否正常
- 检测掩码、认证、区域ID等是否匹配
- 相应的接口是否在OSPF中宣告
如果邻居关系处于Init状态:
- 检测本端口和对端设备是否发生故障
如果邻居关系处于2-way状态:
- 查看接口优先级是否为0
如果邻居关系处于Exstart状态:
- MTU值是否匹配
如果邻居关系处于Exchange/Loading状态:
- 查看本端接口和对端设备是否发生故障
五.OSPF基本配置
启用OSPF 并指定router-id
Router-id : 路由器标识符,用于标识本路由器在OSPF网络中的唯一性
OSPF router-id 选举规则:1.手工指定最优先 2.选举所有逻辑中IP地址最大的 3.选举所有物理接口IP地址最大的
思科中:若以上三点都不满足,则无法启用OSPF;在使用逻辑或物理接口时,接口必须双 up ,该接口可以不通告进入OSPF中;同一路由器上多个OSPF进程必须router-id必须不同;
全局模式下可以选择针对所有的OSPF进程修改router-id ;(若同时在接口部署时,接口优先生效)