OSPF协议:
1、 数据包类型
2、 状态机
3、工作过程
4、 各个类型的LSA 传播范围 通告者 携带信息
5、 特殊区域
6、 接口网络类型
7、 选路规则
OSPF协议简介:
开放式最短路径优先协议;
无类别链路状态IGP协议;
公有协议;跨层封装到IP报头,协议号89;
触发更新+周期更新(30min)
组播更新:224.0.0.5 通用地址 224.0.0.6 DR/BDR专用地址
基于拓扑进行收敛,更新量巨大-----结构的部署----1、区域划分 2、IP地址规划
一、OSPF协议的数据包:
数据包种类
1、Hello:用于邻居、邻接 发现、建立、保活 hello time 默认10s或30s
2、DBD:数据库描述包
3、LSR:链路状态请求
4、LSU:链路状态更新
5、LSack:链路状态确认
数据包结构:跨层封装于3层报头,协议号89;
二、OSPF的状态机
1.1、Down:邻居状态机的初始状态,是指在过去的Dead-Interval时间内没有收到对方的Hello报文。一旦本地发出ospf的hello包进入下一个状态
1.2、Attempt:只适用于NBMA类型的接口,处于本状态时,定期向那些手工配制的邻居发送Hello报文
2、Init初始化:本状态表示已经收到了邻居的HELLO报文,但是该报文中列出的邻居中没有包含我的Router ID(对方并没有收到我发的HELLO报文)。接收到的hello包中存在本地的RID,进入下一状态
3、2way双向通信:邻居关系建立的标志;本状态表示双方互相收到了对端发送的HELLO报文,建立了邻居关系。
4、条件匹配:点到点直接进入下一状态;MA网络进行DR/BDR选举(40s),非DR/BDR间不进入下一状态
5、Exstart预启动:使用类似hello 的DBD包来进行主从关系选举,建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。RID数值大为主,优先进入下一状态;
6、Exchange准交换:使用真实的DBD包来共享数据库目录;路由器将本地的LSDB用DD报文来描述,并发给邻居。
7、Loading加载:路由器发送LSR报文向邻居请求对方的DD报文。 使用LSR/LSU/LSack来获取未知的LSA信息;
8、Full转发:邻接关系建立的标志。在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了。即,本路由器和邻居建立了邻接(adjacency)状态。
三、OSPF的工作过程
两个路由器的 Hello 过程
名词注解:
LSA:链路状态通告,在不同环境下产生不同类别的LSA:可以是拓扑也或者是路由条目;
LSDB:链路状态数据库---所有LSA的集合
LSA洪泛,LSDB同步-----OSPF收敛的称呼
结构突变:
1、 新增网段 直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
2、 断开网段 直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
3、 无法沟通 dead time 为hello time 的4倍;当dead time到时时,断开邻居关系,删除通过该邻接生成的路由协议;
四、 OSPF的各种LSA — 数据库表
什么情况下LSA会更新?
1、1800到期会周期更新。OSPF的LSA是1800会更新一次更新一次序列号会加一
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)
五、特殊区域
「1」 同时不存在ASBR
- 末梢区域—该区域拒绝4/5的LSA进入;由该区域连接骨干区域的ABR设备,向区域内发送一条3类的缺省路由;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub
注:该区域内所有设备均需要定义,否则无法建立邻居关系;
- 完全末梢区域,在末梢区域的基础上进一步拒绝3类的LSA;仅保留一条3类的缺省路由;
先将该区域配置为末梢区域,然后仅在ABR上定义完全末梢即可;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub no-summary
「2」 同时存在ASBR
- NSSA 非完全末梢区域—拒绝非本区域内部产生4/5LSA,本区域ASBR产生的5类将通过7类LSA传输,到达ABR处进入骨干区域时,由7类转换回5类;
在cisco设备中为了避免环路的出现,OSPF协议在NSSA区域配置完成后,不会自动产生缺省路由;而是由管理员在缺省网络无环的前提下,手工添加;
在华为的设备中让由该区域连接骨干0的ABR自动下发一下7类缺省;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]nssa
注:该区域内所有设备均需要定义,否则无法建立邻居关系;
- 完全NSSA – 完全的非完全末梢区域;在普通NSSA的基础上,近一步拒绝3类的LSA,由ABR产生一条3类缺省
先将该区域配置为普通的NSSA,然后仅在ABR上定义完全NSSA即可
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]nssa no-summary
特别注意事项:由于特殊区域将自动产生缺省路由,指向骨干;故ISP所连接的位置很关键,否则将可能与特殊区域产生的缺省路由互为环路;要求ISP所在位置的OSPF区域不要做任何特殊区域配置;
六、OSPF接口网络类型
七、OSPF选路规则
- AD(管理距离)无关的一种情况:
r2(config)#router ospf 1
r2(config-router)#distance 109 1.1.1.1 0.0.0.0
本地从RID为1.1.1.1的设备处学习到路由条目,管理距离修改109;
一台路由器从两个OSPF邻居处学习到了两条相同的路由时,仅比较度量值,不规则管理距离;因为仅针对一台邻居进行管理距离修改的结果是要么两台都被改,要么修改失败;-关注IOS版本—有时修改RID大路由器管理距离生效,有时需要修改RID小的设备 - AD(管理距离)无关的第二种情况
O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离;
若一条通过骨干区域传递,另一条同过非骨干区域传递–非骨干传递的路由无效 - OE 与OE
两条均为OE2、N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量)
两条均为OE2、N2,起始度量不同;优先起始度量小的路径;
注:以上设计是便于管理员快速干涉选路;
OE1路由仅比较总度量(起始度量+沿途累加) - 拓扑优于路由 1/2LSA计算所得路由优于3/4/5/7类计算所得
内部优于外部 3类优于4/5/7类
类型1优于类型2 E1优于E2,N1优于N2,E1优于N2,N1优于E2;
E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类