OSPF:开放式最短路径优先协议
使用范围:IGP
协议算法特点: 链路状态型路由协议,SPF算法
协议是否传递网络掩码:传递网络掩码
协议封装:基于IP协议封装,协议号为 89
一.OSPF 特点
1.OSPF 是一种典型的链路状态型路由协议
2.传递信息称作LSA,LSA 链路状态通告,包含路由信息和拓扑信息。
路由LSA:描述本路由器上接口的路由信息
拓扑LSA:描述路由器之间的连接状态
3.更新方式: 触发更新+30分钟的链路状态刷新
4.更新地址: 组播和单播更新,组播地址: 224.0.0.5(ALL SPF router) 224.0.0.6 (ALL DR router)
5.支持路由认证
6.支持手工汇总
7.支持区域划分
8.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中路由器的角色:
骨干路由器:该类路由器至少有一个接口属于骨干区域
区域内路由器:该类路由器的所有接口都属于同一个OSPF区域
ABR:区域边界路由器,能够产生3类LSA的路由器
ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器
三.OSPF 消息数据包
hello:
周期收发 hello time 10s 或30s dead time为hello time 4倍
邻居间hello包中必须完全一致的参数:否则无法建立邻居关系
1)hello 、dead time 2)区域ID --区域划分规则--ABR 3)认证字段
4)末梢区域标记 -- 特殊区域 5)华为系还要求邻居间直连接口ip的子网掩码必须一致;
邻居关系建立后,关注条件,条件不匹配设备间维持邻居关系,仅hello包周期保活即可;
条件匹配的设备间,将使用DBD/LSR/LSU/LSack来获取所有本地未知的LSA信息,完成数据库同
步 --- 数据库表;
<r2>display ospf lsdb 查看数据库表 LSDB-链路状态数据库--所有LSA的集合
DBD:
1)Ospf的DBD包中将携带接口的MTU值,要求邻接间的MTU必须一致,否则将卡在exstart或exchange状态机;
华为默认为开启MTU检测
[r1-GigabitEthernet0/0/1]ospf mtu-enable 在直连邻接的接口上开启,必须两端均开启
2)DBD包中的标记位
I M MS I为1标识该DBD包为本地发出的第一个DBD M为1标识该DBD包不是本地发出的最后一
个DBD包 MS 为1标识本地为主,为0代表从
3)隐性确认
主从被选举后,从将使用主的序列号为确认接收到了主的DBD包,即使从设备已经不需要发送
DBD,依然要使用未携带信息的DBD来进行隐性确认;
邻接关系间数据库同步完成后,本地基于数据库生成---有向图 ---> 最短路径树--->将本地到达所有
未知网段的最短路径加载于本地的路由表中;
默认优先级为10 ,度量为cost值;
Cost=开销=参考带宽/接口带宽 默认参考为100M 当接口带宽大于参考带宽时,cost值为1;
OSPF优选整段路径cost值之和最小为最短路径
故当接口带宽大于参考带宽的网络可能导致选路不佳,建议修改参考带宽
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000 切记:全网设备参考带宽需要修改一致
[r1]display ospf routing 查看所有本地学习以及共享出去的OSPF路由
四.OSPF 邻居状态机制
Init ---初始化状态,一旦开始发送hello报文,进入初始化状态。
Two-way---双向通信状态(邻居状态),接收到包含自己router-id 的对方hello报文。
邻居关系建立条件:
1.router-id 必须不同 作用:标识所建立的拓扑结构
2.area ID 相同
3.认证: 认证类型 (不认证=0 明文认证=1 MD5=2) 认证数据
4.hello时间,dead时间必须一致
5.特殊区域标识一致(E(外部路由位)=1 ; N(NSSA外部路由位)=0 P=0)
6.MA网络中,网络掩码必须一致
7.必须同时使用单播或组播更新
8.更新源检测(双方的IP地址必须在同一网段)
邻居状态下(two-way): MA的网络中会选举DR(指定路由器) BDR(备份指定路由器)
DR选举: 1.比较优先级 (范围:0-255,默认优先级为1 ,越大越优)
2.比较各自的router-id,越大越优
注意:1.DR抢占是关闭的 2.DR是一个接口概念 3.优先级范围0-255,数字为0代表不参与选举
4.先 选举BDR ,再升级为DR
主从选举:发生在exstart状态, 通过双方的router-id进行比较,router-id大的一方为主。 发送的
主从选举DBD,DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命
令 激活传递MTU值的功能,若双方的MTU值不值则卡在exstart 状态)。
Exstart---预启动状态,一旦开始发送主从DBD,则进入预启动状态。
Exchange ---预交换,主从选举完成,则发送携带LSA头部信息的DBD,进入预交换状态,会发送
LSR 数据包。(但是没有LSU)
Loading ---加载状态,一旦发送LSU数据包,进入了加载状态,进行大量LSA的学习。
Full ---邻接状态。双方LSA同步(双方LSA全部学习)
OSPF防环
1) OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。 OSPF要求所有的非0区域必须与骨干区域直接相连,区域间(Inter-Area Route)路由需经 由骨干区域中转。这个要求使得区域间的路由传递不能发生在两个非0的区域之间,这在很 大程度上规避了区域间路由环路的发生,也使得OSPF的区域架构在逻辑上形成了一个类似 星型的拓扑,如下图所示。
2) ABR只能够将其所连接的区域的区域内部路由注入到Area0,但是可以将区域内部路由及 区域间的路由注入到非0常规区域。ABR从非骨干区域收到的Type-3 LSA不能用于区域间路 由的计算。 OSPF对ABR有着严苛的要求,区域间的路由传递的关键点在于ABR对Summary LSA的处理。
3) ABR不会将描述一个Area内部的路由信息的Type-3 LSA再注入回该区域中。 实际上,OSPF区域间路由的传递行为,很有点距离矢量路由协议的味道。