OSPF:开放式最短路径优先协议
无类别IGP协议;链路状态型;基于LSA收敛,故更新量较大,为在中大型网络正常工作,需要进行结构化的部署 --- 区域划分、ip地址规划
组播更新 --- 224.0.0.5 224.0.0.6 支持等开销负载均衡
支持触发更新 30min周期更新 跨层封装协议,协议号89;
数据包 --- 5种
Hello --- 邻居的发现,关系的建立,周期保活
DBD --- 数据库描述包
LSR --- 链路状态请求
LSU --- 链路状态更新 -- 携带各种LSA
LSack --- 链路状态确认
OSPF状态机
Down 一旦接收到hello包进入下一个状态机
Init 初始化 接收到的hello包中,若存在本地的RID,进入下一状态
2way 双向通讯 -- 邻居关系建立的标志
条件匹配:点到点网络直接进入下一个状态机 MA网络将进行DR/BDR选举(40S)
非DR/BDR之间不能进入下一个状态机
Exstart -- 预启动 使用不携带目录信息的DBD包进行主从关系选举,RID数值大为主,优先进入下一个状态机; 主从目的主要在于信息交互的有序性,避免同时收发造成网络拥塞
Exchange 准交换 -- 使用DBD携带目录信息,进行共享
Loading 加载 -- 查看完邻接的目录信息后,针对本地未知的LSA,使用LSR包进行查询,对端使用LSU进行应答, 本地接收到LSA后使用ack进行确认 --- 获取未知的LSA信息
Full --转发 邻接关系建立的标志
OSPF的工作过程
启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表;
邻居关系建立后,将进行条件的匹配,匹配失败将维持邻居关系,仅hello包周期保活即可;
匹配成功可以建立邻接(毗邻)关系;邻接关系间将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;获取完成后,邻接关系间数据库同步一致;--- 数据库表;
之后本地基于本地的数据库所有内容整理出有向图--->最短路径树结构--->将本地到达所有未知网段的最短路径加载于本地的路由表中;
收敛完成后,邻居间仅hello包周期保活即可;每30min邻接关系间周期比对数据库目录,
若不一致将马上使用LSU和LSACK进行不一致部分收敛;
拓扑突变 :
1)新增网段:直连新增网段设备,用LSU直接进行触发更新
2)断开网段:直连断开网段设备,用LSU直接进行触发更新
3)无法沟通:dead time 为hello time4倍;在dead time到时时将断开邻接、邻居关系,删除路由;
OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]
启动时可以定义进程号,进程号仅具有本地意义;
每一个OSPF进程均需要RID,全网唯一;生成顺序:手写--环回接口最大数值的ip地址 -- 物理接口上数值最大的ip地址
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
宣告:1)区域划分 2)激活接口--可以收发ospf的信息 3)传递接口信息--该接口信息将被共享给其他邻接
区域划分规则:
星型拓扑 --- 区域0为骨干,大于0为非骨干,所有非骨干必须连接到骨干区域方可正常共享路由
区域间必须存在ABR -- 区域边界路由器
[r2]display ospf peer 查看邻居信息
[r2]display ospf peer brief 查看邻居表
启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表;
hello包:
周期收发 hello time 10s 或30s dead time为hello time 4倍
邻居间hello包中必须完全一致的参数:否则无法建立邻居关系
1)hello 、dead time 2)区域ID --区域划分规则--ABR 3)认证字段
4)末梢区域标记 -- 特殊区域 5)华为系还要求邻居间直连接口ip的子网掩码必须一致;
[r2]display ospf lsdb 查看数据库表
LSDB-链路状态数据库--所有LSA的集合
邻居关系建立后,关注条件,条件不匹配设备间维持邻居关系,仅hello包周期保活即可;
条件匹配的设备间,将使用DBD/LSR/LSU/LSack来获取所有本地未知的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路由
邻居关系成为邻接关系的条件 --- 和网络类型有关
点到点 --- 所有邻居直接建立为邻接关系
MA---由于OSPF协议需要邻接关系间进行数据库对比,故不支持接口水分割;若两两间均为邻接关系,将可能出现大量的重复更新;因此,在MA网络中ospf协议将进行DR/BDR选举,所有非DR/BDR设备间维持邻居关系,不进行数据库共享;
选举规则:1)先比较参选接口的优先级 0-255 默认为1,大优
2)若优先级相同,比较参选的RID,数值大优
若需要干涉选举,可以修改参选接口的优先级
[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 3
切记:选举是非抢占的,故修改后该网段依然维持原有角色,若希望重新选举,需要重启该网段所有设备的OSPF进程;
<r1>reset ospf process 重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
建议直接将DR优先级修改最大,BDR次大,其他设备优先级修改为0,0标识不参选,可以不同重启任何设备的ospf进程;