OSPF协议
- 1. OSPF概述
- 2. OSPF原理
- 3. OSPF router id
- 3.1 概念
- 3.2 选举方式
- 4. OSPF常见结构
- 4.1 单区域
- 4.2 多区域(特色)
- 5. OSPF配置介绍
- 5.1 反掩码(通配符)
- 5.2 配置思路
- 5.3 查看三个表
- 5.4 OSPF状态FULL不起来的情况几种情况
- 5.4.1 认证方式/密码不一致
- 5.4.2 Router id冲突
- 5.4.3 Hello时间不一致
- 5.4.4 区域area不一致
- 5.4.5 网段不通
- 5.5 认证方式
- 6. OSPF开销计算方式
- 7. DR&BDR
- 7.1 原理介绍
- 7.2 配置方法
1. OSPF概述
- OSPF
- O:open 公有协议
- SPF:最短路径优先算法,用于破除环路
- LSDB:链路状态数据库
- area(区域的概念)
- 核心区域, area 0
- 非核心区域,area1 或者 area2
2. OSPF原理
- 第一步:每个设备运行OSPF,宣告相应网段
- 第二部:地图–>LSDB形成
- R1向R2传输LSA(链路状态通告,非路由)
- R2向R3传输LSA
- 所有的LSA组成LSDB(每个路由器上都有)
- 第三步:每个设备执行SPF(最短路径优先)算法,处理LSDB,计算出最短路径树
- 第四步:把最优路径存储到路由表中
3. OSPF router id
3.1 概念
- router id:和IP地址类似的32位的值,每个路由器的唯一标识符。
3.2 选举方式
- 手动配置(优先生效)
router id 8.8.8 //本地全局生效(其他协议也可能会使用该router id)
ospf 1 route-id 8.8.8 //本地ospf进程生效,生产环境优先选择
- 配置自动选举(不建议)
- 选举规则推荐
- 手动配置ospf路由器的 Router ID(通常建议手动配置)
- 如果没有手动配置 Router ID,则路由器使用 Loopback 接口中最大的IP作为 Router ID(因为是逻辑接口,不容易出问题)
- 如果没有配置 Loopback 接口,则使用物理接口中最大的IP地址作为 Route ID
- 注意:
- 华为这边,优先选择第一个UP起来(物理或者逻辑)的接口的IP地址作为设备的 Router ID
- OSPF的路由器 Router ID 重新配置后,可以通过重置ospf进程来更新 Router ID
display ospf peer //显示ospf的router id
//注意区别一下命令
display router id //显示路由器的全局router id,在任何进程下均为全局router id
<Huawei>reset ospf process ------Y //重启ospf进程,重新选举(需要先配置,再重启)
4. OSPF常见结构
4.1 单区域
- 区域划分是以接口进行划分的,而不是网段
- 强制:路由器的每个接口都在区域中
- 如果ospf是单区域,那个区域建议是 area 0
- area 0 必须有,且仅有一个
4.2 多区域(特色)
- 如果 ospf 的区域结构是多区域的话,一定会有 area 0 区域,另外还有非骨干区域,比如 area 1 或者 area 2 等
- 所有的非骨干区域,一定要连接到 area 0 周围(因为OSPF的特殊结构,抗环)
- 优点:
- 扩展性好
- 降低设备性能压力
5. OSPF配置介绍
5.1 反掩码(通配符)
- 计算方式:反掩码=255.255.255.255 - 掩码
- 举例
- 192.168.1.1 /16
- 反掩码=255.255.255.255 - 255.255.0.0 = 0.0.255.255
- 注意(用于网络宣告)
- 反掩码中的0表示的意思是精确值
- 有人会写反掩码:0.0.0.0,0.0.0.0表示精确匹配
- 反掩码中的255表示的意思是人任意值
5.2 配置思路
- 底层IP地址的配置
- 测试直连是否能够ping通,通过display ip interface brief检查IP是否配错
- 每台路由器上配置ospf的router id
- 在ospf进程里面创建区域和宣告网段
interface loopback 0 //创建环回接口
ipaddress 1.1.1.1 32 //配置环回接口地址
ospf 10 route-id 1.1.1.1 //配置进程号为 10 的 ospf 的 route id 为 1.1.1.1,进程号随意
ospf 10 //进入进程号为 10 的 ospf 进程
area 1 //创建区域1 中
//宣告网络两种方式,推荐第一种,宣告接口
network 192.168.12.1 0.0.0.0 //在区域中宣告接口,推荐,精确宣告
network 192.168.12.0 0.0.0.255 //在区域1中宣告192.168.12.0的网段,反掩码为:0.0.0.255
5.3 查看三个表
- 邻居表
- Neighbor id是指对端的router id
- state状态需要是FULL
- FULL 邻接状态
- 2-way 邻居状态
display ospf peer brief //显示邻居表
display ospf peer //打印我的route id
//重置ospf的router id,先配置
reset ospf process //用户视图中,重置进程,重新选举route id,需要输入 Y 确认
- 路由表
display ip routing-table protocol ospf
- 数据库表
display ospf lsdb //查看ospf当中的LSDB
5.4 OSPF状态FULL不起来的情况几种情况
5.4.1 认证方式/密码不一致
- R1配置认证,R2不配置认证
- R1配置simple认证,R2配置MD认证
- R1和R2的认证密码不一致
5.4.2 Router id冲突
5.4.3 Hello时间不一致
5.4.4 区域area不一致
area 不一致导致
5.4.5 网段不通
5.5 认证方式
- 认证模式
- 分类:区域认证、接口认证
- 区域认证:在区域下认证
- 接口认证:在接口下认证
- 只要认证的方式一样,区域和接口问题不大,如果两个密码不一致,state 会 从 FULL 变成 DOWN(从邻居表中消失)
- 认证方式
- null(不认证)
- simple(明文认证)
- MD5(密文认证)
- 两边的key ID需要保持一致,否则会 down 掉
- key ID的作用是平滑过渡
- 如果需要修改密码等情况,可以通过再配一个不同的key id的认证,再删除以后,可以实现网络不down的情况下,删除原有的加密数据。真机可以,模拟器不支持。
- 当simple和Md5都存在时,优先使用接口方式认证
//明文认证,密码password
authentication-mode simple plain password //在area中添加认证,需要在对应area下敲
ospf authentication-mode simple plain password //在接口中添加认证,需要在接口下敲
6. OSPF开销计算方式
- rip 通过调数计算,OSPF通过带宽来计算。
- 开销修改
- 公式(带宽参考值/带宽)计算
- 作用范围:本路由器是能所有OSPF的接口
- cost = 参考带宽 / 实际带宽,参考带宽默认100M,当计算有小数的时候,只取整数位,结果小于1是,cost取1
- 注意:所有路由器都需要修改,确保选路一致性
- 出接口上面修改开销(推荐)
- 直接在接口上面配置,作用范围仅限于本接口
ospf cost 20
- 开销计算
- RTA 到达192.168.3.0/24 的 累计cost = G1 + G3(出接口之和)
7. DR&BDR
7.1 原理介绍
- DR:网络中设备比较多的情况下,所有设备将数据报给DR,DR统一分配给各个设备,节约带宽
- DR和其他设备间state状态为FULL,因为需要交互
- BDR:备份设备
- DROther:非DR设备
- 除了和DR,其他设备间state状态为2-way状态,不用直接交互,因为所有数据都发给DR,由DR统一分配
7.2 配置方法
- DR选举
- 自动选举
- 手动选举
- DR选举原则
一个广播域(网络)会选择一个DR设备和一个BDR设备,广播域不等于area,一个area可以有多个DR
- 比较路由器接口的优先级,默认情况下为1,数值越大,优先级越高
- 当接口优先级一样的时候,比较这个广播域当中网络设备router id,越大优先级越高
- 当接口优先级为0时,该设备不参与选举
- DR是非抢占的,DR状态生成以后,修改接口优先级以后,不会变化
//可以通过查看路由器接口的ospf状态
display ospf interface g0/0/0 //查看接口下ospf运行状态,有DR和BDR的状态
//修改ospf接口优先级
ospf dr-priority 1 //在接口下修改优先级为1,越大优先级越高,修改后不会变化
reset ospf process //用户视图下,重启ospf进程后重新生成DR
- 查看结果
- Priority:R1该接口的优先级,默认为1
- State:DR&BDR状态