OSPF
- 开放式最短路径优先协议
- 无类别链路状态型路由协议
- 公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5 224.0.0.6
- 触发更新、周期更新(30min);
- 需要结构化的部署:区域划分 地址规划
- 链路状态式路由的距离矢量特征
- 区域内传拓扑,区域间传路由
一、OSPF的数据包:
- hello包 用于发现、建立、周期保活邻居关系 存在router ID----RID
全网唯一的编号,使用ip地址 - DBD包 数据库描述包 --LSA
- LSR 链路状态请求
- LSU 链路状态更新 —用于携带各种LSA
- LSack 链路状态确认
其中LSA:链路状态通告,在不同的网络条件下将产生不同类别的LSA信息来代 表拓扑或者路由条目;
LSDB:链路状态数据库 装载和存储所有各种类别的LSA;
二、OSPF的状态机:
- Down:一旦本地发出hello包就进入下一个状态
- Init初始化:接收到的hello包中,若存在本地的RID,那么进入下一状态 2way双向通信:邻居关系建立的标志
- 条件匹配:点到点网络直接进入下一状态;MA网络中将进行DR/BDR选举(40s),DRother 非DR/BDR间不得进入下一状态;
- Exstart预启动:类hello的DBD,进行主从关系选举,RID数字大者为主,优先进入下一状态
- Exchange准交换:使用真正的DBD包,进行数据库目录的共享,需要ACK确认;
- Loading 加载:使用LSR/LSU/LSack来获取未知的LSA信息;
- Full转发:邻接关系建立的标志 收敛完成的标志
三、OSPF的工作过程
- OSPF协议启动后,A向本地所有启动了OSPF协议的直连接口组播224.00.5发送hello包;本地hello包中携带本地的全网唯一的router-id;
- 之后对端B运行OSPF协议的设备将回复hello包,该hello包中若携带了A的routerid,那么A/B建立为邻居关系;生成邻居表;
- 邻居关系建立后,邻居间进行条件匹配,匹配失败就停留于邻居关系,仅hello包周期保活;
- 条件匹配成功可以开始建立邻接关系:
- 邻接间共享DBD包,将本地和邻接的DBD包进行对比,查找到本地没有的LSA信息目录;
- 之后使用LSR来询问,对端使用LSU应答具体的LSA信息,之后本地再使用ack确认,可靠;
- 该过程完成后,生成数据库表;
- 再之后本地基于数据库表,启用SPF选路规则,计算到达所有未知网段的最短路径,然后加其加载到本地的路由表中;
- 收敛完成,hello包周期保活,每30min再周期收发一次DBD来判断和邻接间数据库是否一致;
不一致也就是结构突变有三种:
1、 新增网段 直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
2、 断开网段 直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
3、 无法沟通 dead time 为hello time 的4倍;当dead time到时时,断开邻居关系,删除通过该邻接生成的路由协议;
四、OSPF的基础配置
r1(config)#router ospf 1 启动时需要配置进程号,仅具有本地意义 (1为进程号)
r1(config-router)#router-id 1.1.1.1 配置RID,要求为全网唯一;手工—环回接口最大数字—物理接口最大数字
宣告:ospf协议在宣告的同时需要进行区域划分
r1(config-router)#network 1.1.1.1 0.0.0.0 area 0
r1(config-router)#network 12.1.1.0 0.0.0.255 area 0 反掩码
OSPF区域划分规则:
1、必须为星型结构----区域0为骨干,中心站点
2、ABR–区域边界路由器
启动配置完成后,所有设备间使用hello包,发现并建立邻居关系,生成邻居表:
Hello time 为10s,dead time 为 hello time 的4倍;
r2#show ip ospf neighbor 查看邻居表
邻居关系建立后,邻居间进行条件匹配,匹配成功者间进入邻接关系;基于DBD/LSR/LSU/LSack获取未知LSA信息,生成LSDB–数据库表;
r2#show ip ospf database 查看数据库表
LSDB同步完成后,本地使用SPF最短路径选路规则,将到达未知网段的路由加载路由表:
使用字母O标识通过OSPF学习的路由;
- O 本地区域内的路由,是本地通过拓扑计算所得
- O IA 域间路由,其他区域的路由,通过ABR共享进入的
管理距离
Cisco设备定义管理距离为110;
度量值
度量为cost值=开销值=参考带宽/接口带宽
默认参考带宽为100M;整段路径cost值之和最小为最佳路径;
注:当接口带宽大于参考带宽时,cost值为1;将可能导致选路不佳,建议修改参考带宽
修改默认参考带宽
r1(config)#router ospf 1
r1(config-router)#auto-cost reference-bandwidth ?
<1-4294967> The reference bandwidth interms of Mbits per second r1(config-router)#auto-cost reference-bandwidth 1000
切记:整个网络所有设备均需要修改一致;