一、复习OSDF
1.OSDF的数据包类型
(1)hello包
周期发现、建立和保活邻居关系
hello包默认以10s为周期来进行周期保活---hello时间
OSPF中进行失效判断的时间为4倍的hello时间----dead time 死亡时间
因为OSPF需要收集网络拓扑信息,所以就必须区分和标定不同的路由器
我们给每台路由器设定了一个RID
- 全网唯一(OSPF网络中)
- 格式统一(必须按照IP地址的格式来进行配置)
这个RID也可以手工配置-----手工配置仅需满足以上两个条件即可
RID也可自动生成
- 若存在环回接口,则在环回接口中取IP地址最大的为RID
- 若不存在环回接口,则需要在所有的物理接口中选择IP地址最大的作为RID
hello包中会携带RID
(2)DBD包-----数据库描述报文
存放LSA(链路状态通告)的数据库,存放拓扑信息目录的数据库
携带的是路径信息的摘要(相当于是目录信息)
目的:节约、减少占用资源
(3)LSR包-----链路状态请求报文
相当看完路径摘要,告诉另一台路由器我需要的路径摘要是什么
基于DBD包请求位置的LSA的信息
(4)LSU包-----链路状态更新报文
真正携带LSA信息的数据包
(5)LSACK包-----链路状态确认报文-----确认包
2.OSDF的状态机
(1)DOWN
一旦接收到hello包即进入下一个状态机(启动OSPF)
(2)Init(初始化)
一旦接收到的hello包中存在本地的RID进入下一个状态
(3)Two-way(双向通讯)
标志着邻居关系的建立
条件匹配---在MA网络中,若所有的设备均为邻接关系,则将出现极大的重复更新,所以需要进行DRBDR的选择,所有非DR/BDR(DROther)之间仅维持邻居关系即可。
条件匹配,若条件匹配成功则可以进入下一个状态机;若条件匹配失败,则仅保持邻居关系,周期性地发送hello包进行保活即可。
(4)Exstart(预启动)
使用未携带目标信息的DBD包进行主从关系的选举(目的:节约、减少占用资源),RID大的为主,优先进入下一个状态。解决了目录共享时的无序。
LSDB---链路状态数据库
使用未携带数据的DBD包进行主从关系的选举主要目的是为了和之前的邻居状态区分。DBD报的确认使用的不是ACK确认包(显性确认),而是通过数据包中的数据参数隐性确认。
(5)Exchange(准交换)
使用携带目标信息的dbd包,共享本地数据库目录;
(6)Loading(加载)
查看完邻接的DBD信息后,对比本地,然后基于本地未知的LSA进行查询;
使用LSR 向对端查询,对端使用LSU来传输这些LSA信息,本地收到后需要LSACK来进行确认
(7)Full
邻接关系建立的标志; 意味着邻接间,数据库同步(一致)
邻接设置的目的是为了和之前的邻居关系作区分。
3.OSDF的工作过程
启动配置完成后,邻居间开始收发hello包;hello包中将携带本地及本地所有已知邻居的rid;之后生成邻居表;邻居间需要关注是否可以成为邻接的条件;若不能建立为邻接,将保持为邻居关系,仅hello包周期保活即可;
若可以建立邻接关系;将使用DBD进行本地数据库目录的对比;之后基于对比的结果,使用LSR/LSU/LSack来获取本地未知的LSA信息;使邻接关系间数据库(lsdb)完成同步(一致),生成数据库表;
之后本地基于lsdb,使用spf算法,生成有向图—>最短路径树——>计算本地到达所有未知网段的最短路径,将其加载到本地路由表中;收敛完成;
收敛完成后,邻居和邻接关系间均hello每10s保活;每30min一次邻接关系间周期数据库比对,保障一致;
结构突变:
新增网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK确认
断开网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK确认
无法沟通 : dead time 为hello time的4倍;在4次周期内未收到对端的hello包,将断开与其的邻居关系;删除通过该邻居计算所得路由;
4.OSDF的基本配置
(1)启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1
启动时,需要定义进程号;进程号仅具有本地唯一性; 建议同时配置全网唯一的router-id; 生成顺序—手工 本地环回接口中最大ip地址数值 本地物理接口中最大数值的ip地址 。
[r1-ospf-1]
(2)创建区域
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]
(3)宣告
激活接口
发布路由
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
先进入区域,之后再该区域内宣告属于该区域的接口,宣告时必须携带反掩码
反掩码:有连续的0和连续的1组成,0对应位不可变,1对应位可变;可进行精准宣告,也可进行范围宣告
[r1]display ospf peer 查看邻居表
[r1]diaplay ospf peer bridf 查看邻居关系简表
[r1]display ospf lsdb 查看数据库表
[r1]display ospf lsdb router 2.2.2.2 展开一条LSA信息
[r1] display ip routing-table 查看路由表
5.补充
指定路由器:DR--和MA网络中其他的所有设备建立邻接关系
备份指定路由器:BDR---和MA网络中其他的所有设备建立邻接关系
在BDR和DR都存在的情况下,一个MA网络中至少需要四台设备才能看到邻居关系
DR和BDR虽然叫做指定路由器(备份指定路由器),但其工作范围是在一个MA网络中,所以其 实质概念是接口的概念。
DR/BDR选举
1.比较接口优先级,优先级最大的为DR,次大的为BDR(优先级的初始值为1)
[r1-GigabitEthernet 0/0/0] ospf dr -priority 3
(若将一个接口的优先级修改为0,则代表改接口放弃DR/BDR选举)
2.当优先级相同时,则比较RID。RID大的路由器对应的接口为DR,次大的为BDR
注:DR/BDR选举为非抢占模式的选举----选举的最大时间等同于死亡时间
OSPF:开放式最短路径优先协议 无类别链路状态型路由协议
公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5(TTL值为1) ,224.0.0.6
触发更新、周期更新(30min);
需要结构化的部署:区域划分 地址规划
COST=参考带宽/真实带宽
华为设备默认的参考带宽为100Mbps
开销值如果是个小于一的小数,则直接按照一来算,如果是个大于一的小数,则直接取整数部分
修改默认带宽 [r1-ospf -1]bandwidth-reference 1000
修改参考带宽需要将所欲的OSPF网络中的设备都改成相同的。
二、再谈OSPF五种数据包
1.OSPF报文头部(ospf五中数据包中的公共内容)
版本----OSPF协议版本------OSPFV2版本字段为2
类型----OSPF 数据包的类型
hello包-----1
DBD包-----2
LSR包-----3
LSU包-----4
LSACK包-----5
报文长度-----整个OSPF数据报文的长度,单位字节
路由器ID(RID)------表示发出这个数据包的路由器的RID
区域ID----发出数据包的接口所在的区域的ID
校验和----保证数据传输完整
认证类型和认证数据------OSDF在进行认证时需要先比对认证类型,认证类型相同才比对认证数据
OSPF的认证类型
1.null-----空认证-------0
2.simple-----明文认证--------1
3.MD5------比对摘要值---------2
2.hello包(重要)
网络掩码(子网掩码)发出hello包接口的ip地址对应的掩码信息
【华为设备设定邻居建立双方要求子网掩码必须相同,否则将无法建立邻居关系(对P2P网络不生效,仅针对MA网络)】
hello时间和死亡时间(hello间隔和路由器失效时间)
邻居双方hello时间和死亡时间必须相同,否则将导致邻居关系建立失效
8位可选项------8个标记位,每一个标记位置1则代表其符合OSPF的某种特性
其中存在OSPF特殊区域标记位,邻居双方如果特殊区域标记位不同,则无法正常建立邻居关系。
路由器优先级-----发出该数据的接口其DR/BDR选举时的优先级
制定路由器和备份路由器-----携带的是DR/BDR接口的IP地址,在DR/BDR未选举出来之前使用0.0.0.0进行填充
邻居-----本地已知的邻居的RID
hello包中限制邻居关系的参数
1.子网掩码
2.hello时间
3.dead时间
4.OSPF特殊区域的标记
5.认证
3.DBD包(重要)
接口的最大传输单元(MTU)
华为设备默认不开启MTU值检测功能,可以再接口使用ospf mtu-enable 来开启
若两端都开启MTU值检测功能则双方的MTU值必须相同,如若不同,则将停留在Exchange(准交换)状态,无法向下进行
I-----init(初始化)---该位置1则代表这个DBD包时进行主从选举的数据包,所以这样的数据包不包含LSA的头部内容-----在主从关系为选出之前,所有设备都认为自己是主
M------More---该位置1则代表后面还有其他的DBD包要发送
---该位置0则代表这是子后一个DBD包,后面无其他的DBD包
MS------Master-----该位置1则代表发送这个数据包的设备为主
-----该位置0则代表发送这个数据包的设备为从
DD序列号---在DBD报文收发过程中,会逐次加1,用于确保报文传输有序性即可靠性(隐性加密)
最后“从”会再发一个DBD包表示收到了“主”的信息,用以确认
4.LSR包
链路状态类型、链路状态ID、通告路由器------“LSA三元组”-----通过这三个参数可以唯一表示出一条LSA
5.LSU包
6.LSACK包
三、OSPF的网络接口类型
接口在某种网络类型下默认的一种工作模式
OSPF的接口网络类型-----指的是OSPF 接口在不同的网络类型下默认的不同工作方式
[r1]display ospf interface g0/0/0 查看OSPF接口的网络类型
四、OSPF的不规则区域
1.区域划分的要求
- 区域间必须存在ABR设备
- 区域划分必须按照星型拓扑结构划分
2.不规则区域的分类
- 远离骨干的非骨干区域
- 不连续骨干
3.解决不规则区域的方法
(1)使用VPN隧道使非法的ABR合法化
缺点:1、周期更新、保活,触发更新对中间穿越区域产生资源占用
2.选路不佳 -- 当ospf学习到两条相同目标,但不同区域同时过来时,优选骨干区域;
3.Tunnel区域应该宣告在同一个区域
(2)使用OSPF虚链路解决不规则区域问题
- 虚链路 --- 在合法与非法ABR上建立虚链路,由合法ABR为非法ABR进行授权;
使得非法ABR可以进行区域间路由的共享;
因为并没有增添新的路径,故不存在选路不佳的问题;
[r2-ospf-1]area 1 两台ABR共同所在的区域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID
Cisco为了避免周期信息对中间区域的占用,取消虚链路上的所有周期行为;---不可靠
华为在虚链路上依然保持周期的保活、更新 --- 对中间区域的资源占用
(3)多进程双向重发布
多进程--- 同一台设备上,不同的进程可以工作在不同的接口上,建立各自的邻居关系,生成各自的数据库(不共享);仅将各自计算所得路由加载于同一张路由表内;一个接口只能被一个进程来宣告;
双向重发布,ASBR(自治系统边界路由器、协议边界路由器),将不同进程或不同协议产生的路由进行双向共享;
[r2]ospf 1
[r2-ospf-1]import-route ospf 2
[r2-ospf-1]q
[r2]ospf 2
[r2-ospf-2]import-route ospf 1
五、OSPF的各种LSA
<r1>display ospf lsdb
<r1>display ospf lsdb router 1.1.1.1
类别名 link-id(在目录中的编号)
所有类别的LSA,均携带以下信息
Type : Router 类别名 此处为1类
Ls id : 1.1.1.1 link-id 在目录中的编号
Adv rtr : 1.1.1.1 通告者 --- 该LSA的更新源设备的RID
Ls age : 1359 老化时间 1800s周期刷新为0 触发更新归0 最大3609s
Len : 48
Options : E
seq# : 8000000c 序列号
chksum : 0x818c 校验码
OSPF的LSA是1800会更新一次更新一次序列号会加一
LSA的新旧比较
1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条
什么情况下LSA会更新:
1、1800到期会周期更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)
类别名 传播范围 通告者 携带的信息
1类LSA-router 本区域内 本区域内的每台路由器 该区域每台设备的直连拓扑
2类LSA-Network 本区域内 该网段的DR 该网段的拓扑
3类LSA-summary 整个OSPF域 ABR O IA 域间路由
4类LSA-asbr 除ASBR所在区域外的 ABR ASBR的位置
整个ospf域;ASBR所在区域使用
1类标记位置
5类LSA-ase 整个OSPF域 ASBR O E 域外路由
7类LSA-nssa 单个的NSSA区域内 ASBR O N 域外路由
类别名 link-id 通告者
1类LSA-router 通告者的RID 本区域内的每台路由器
2类LSA-Network DR接口的ip地址 每个MA网段中的DR
3类LSA-summary 域间路由的目标网络号 ABR,在经过下一台ABR时,修改为新的ABR
4类LSA-asbr ASBR的RID ABR,在经过下一台ABR时,修改为新的ABR
5类LSA-ase 域外路由的目标网络号 ASBR 在ospf内部传递时不变
7类LSA-nssa 域外路由的目标网络号 ASBR