动态路由协议OSPF

NE阶段内容
RIP的缺陷
最大跳数限制了网络规模以跳数为度量无法准确判断最优路径路由更新发送完整路由表消耗网络带宽收敛速度慢协议会产生路由自环
定义
开放式最短路径优先,基于链路状态特征工作在IP层,协议号89
OSPF初始化流程
1.建立邻居和邻接关系
- 发送hello报文发现和建立邻居关系,组播地址224.0.0.5
接口UP双方接口IP地址在同一网段双方接口在同一区域
- 选举DR/BDR,建立邻接关系
- DR/BDR选举
- 选举原因:
广播网络 中使路由信息交换更加高速有序 - 选举范围:
每条广播链路上都需要选举出一个DR和BDR - 选举规则
优先级数字大的优先 默认优先级都是1Router-id大的优先
- Router-id
- 定义:
Rid,标识路由器身份 - 产生方法
手动配置一个IPv4地址格式作为Rid- 自动选举
1.在所有环回口中选举IP地址最大的作为Rid2.在所有物理接口中选举IP地址最大的作为Rid
- 建议手动配置一个本地环回口的IP地址作为Rid
- 定义:
- 选举原因:
- 关系状态
DRother与DR建立邻接关系。DRother(其他路由器既不是DR,又不是BDR)DRother与BDR建立邻接关系DR与BDR建立邻接关系两个DRother之间保持邻居关系
- DR/BDR选举
2.邻接路由之间交换链路状态信息,实现区域内链路状态数据库同步
- 相关概念
- 链路状态通告
LSA用来描述路由器的接口、路由条目的相关信息
- 链路状态数据库
LSDB存储本地所有LSA
- 链路状态通告
- 工作流程
1.向邻接路由发送DD(数据库描述)报文,通告本地LSDB中所有LSA的摘要信息2.收到DD后,与本地LSDB对比,向对方发送LSR(链路状态请求) 报文,请求本地所需的LSA的完整信息3.收到LSR后,把对方所需的LSA的完整信息打包为一条LSU(链路状态更新)报文,发送至对方4.收到LSU后,向对方回复LSAck报文,进行确认
3.每台路由器根据本机链路状态数据库,计算到达每个母的网段的最优路由,写入路由器
OSPF报文类型
- Hello报文
- DD报文 数据库描述报文,用于描述本地LSDB所有的LSA的摘要
- LSR报文 链路状态请求
- LSU报文 链路状态更新
- LSAck报文 链路状态确认
OSPF分区域管理
分区域的原因
加快收敛速度把网络故障隔离在区域内部
路由器角色
IR 内部路由器,所有接口都处于同一个区域ABR 区域边界路由器,连接不同区域的路由器ASBR 自治系统边界路由器,连接外部自治系统的路由器
区域类型
- 骨干区域
只能有一个骨干区域,一般是区域0骨干区域必须是连续的
- 非骨干区域
非骨干区域必须连接到骨干区域为了防止区域间形成路由环路
常用命令
[h3c]ospf 'process id' 'router-id' 'rid' //开启OSPF进程,指定Router-id,进入OSPF协议视图
[h3c-ospf-1]area 'area id' //进入区域视图
[h3c-ospf-1-area 0.0.0.0]network 'ip address' 'wild -mask' //宣告网段
‘wlid-mask’ 掩码通配符,0对应的部分需要匹配一致,1对应的部分不检查
[h3c-ospf-1]silent-interface 'interface id' //配置静默接口
[h3c-GigabitEthernet 0/0] ospf dr-pririty 'priotity' //修改OSPF接口优先级
[h3c-GigabitEthernet 0/0]ospf cost 'cost' //修改接口OSPF开销
<h3c> reset ospf 'process id' process //重置OSPF进程
[h3c]display ospf peer //查看OSPF邻居关系
FULL:邻接关系 2-Way:邻居关系
[h3c]display ospf lsdb //查看OSPF链路状态数据库
[h3c]display ospf routing //查看OSPF路由
SE阶段内容
OSPF基本原理
OSPF的三张表
- 邻居表 记录邻居状态和关系
- 拓扑表 链路状态数据库
- 路由表 记录由SPF算法计算的路由
OSPF路由器类型
- 区域内路由器 IR,所有接口都在同一区域
- 骨干路由器 BR,有接口在骨干区域
- 区域边界路由器 ABR,连接骨干区域和非骨干区域
- 自治系统边界路由器 ASBR,连接外部自治系统,并引入外部路由
OSPF网络类型
定义
- 对于不同的二层链路类型的网段,OSPF会生成不同的网络类型
- 不同的网络类型,DR/BDR选举,LSA细节,协议报文发送形式等会有所不同
类型
Broadcast:
- 广播网络,以太网默认的网络类型
- 组播发送协议报文:224.0.0.5所有运行OSPF的接口会监听 224.0.0.6所有DR/BDR的接口会监听
- 需要选举DR/BDR
- hello time 10秒
- dead-time 40秒
NBMA
- 非广播多点可达,帧中继默认的网络类型
- 单播发送协议报文,需要手动指定邻居
- 需要选举DR/BDR
- hello-time 30秒
- dead-time 120秒
P2MP
- 点到多点网络,由其他网络类型手动更改
- 模拟组播发送协议报文,可以自动发现邻居
- 不选举DR/BDR
- hello-time 30秒
- dead-time 120秒
P2P
- 点到点网络,PPP默认的网络类型
- 组播发送协议报文
- 不选举DR/BDR
- hello-time 10秒
- dead-time 40秒
OSFP邻接建立过程
Down 关闭状态(稳定状态)
Init 单方发现状态
收到了对方的Hello报文,但没有收到对方的hello确认报文
Attempt 只会出现NBMA网络中
发出了Hello包,但未收到对方的hello包
2-way 邻居状态(稳定状态)
邻居双方互相发现,并确认了DR/BDR角色:
当选举完毕,就算出现一台更高优先级的路由器,也不会替换成为新的DR/BDR需要原DR/BDR失效,或者重置OSPF进程才会成为新的DR/BDR
2-way的前提: Router-id无冲突 修改Router-id需要重置OSPF进程使生效
掩码长度一致、区域ID一致、验证密码一致、hello-time一致、dead-time一致
Exstart 交换开始状态
发送第一个DD报文: 不转发LSDB摘要、仅用于确认LSA传递的主从
DD报文置位符:
I Init位、置位则表示此报文是第一个DD报文
M more位、置位则表示还有后续DD报文
MS master位、置位则表示本端为主
Exchange 交换状态、发送后续DD报文,用于通告LSDB摘要
Loading 读取状态、进行LSA的请求、加入和确认
Full 邻接状态(稳定状态)、两端LSDB同步
Full的前提:
两端网络类型一致 否则邻居状态FULL,但无法学习路由
两端MTU一致 否则邻居状态卡在Exstart、Exchange
LSDB更新
更新流程
I.收到LSA更新后,在本地LSDB中查询此LSA,未查到则加入LSDB
II.查到此LSA,则把收到的LSA和本地LSA进行序列号对比
III.如本地LSA序列号大,则丢弃更新,否则加入LSDB
OSPF开销计算
参考带宽
计算开销的基准带宽值默认参考带宽是100M建议把网络中最高的链路带宽设置为参考带宽
计算方法
链路带宽大于等于参考带宽 cost=1
链路带宽小于参考带宽 cost=参考带宽、链路带宽(MB)
常用命令
1 | [h3c]router-id 'router-id' #配置全局Router-id的优先级更高,协议内指定router-id的优先级更高 |









