ospf是运行在网络层之上的路由协议,协议号:89
Router lD
用于在自治系统中唯一标识一台运行OSPF的路由器,每台运行OSPF的路由器都有一个Router lD。
router-id:
1、router-id是作为0SPF路由器的唯一标识,作为OSPF路由器的身份证,理论上来说,是不可以冲突的
官方的说法:
1、建议手动配置oSPF的router-id(可以不是接口的IP地址)
2、如果没有手动配置,那么会使用环回接口IP地址最大的作为router-id
3、如果路由器没有环回接口,那么会使用物理接口IP地址最大的作为router-id
实际情况:
1、建议手动配置oSPF的router-id(可以不是接口的IP地址)
2、如果没有手动配置,会使用路由器全局router-id作为0SPF的router-id
[AR1]display router id //查看路由器全局router-id
RouterID:12.1.1.1
3、全局router-id是咋来的呢?路由器第一个UP的接口将会作为全局router-id
OSPF报文
224.0.0.5:组播ip
Hello报文:组播,10秒发送一次,40秒没有收到对应端发送来的Hello包代表邻居中断
ospf通用报文:
Version 2 OSPF版本信息(版本2 版本3)
Message Type: OSPF报文类型 1 2 3 4 5
Packet length: OSPF报文长度(头部+具体报文)
Source OSPF router: 发出该报文的路由器router-id
Area ID 区域ID 骨干区域和非骨干区域之分
Auth type 认证类型
auth data 认证类型认证数据(秘钥)
—————————————————————————————
hello包:
Network Mask 发出该报文接口的子网掩码
Hello Interval hello时间
option 特殊区域标记
E=1说明是普通区域(可以是骨干区域,也可以是非骨干区域)
E=0 N=0说明这是stub区域
E=0 N=1说明这是NSSA区域
router PRI 路由器接口的DR优先级
Router Dead Interval 邻居失效时间,一般是he1lo时间的4倍
DR 选举出的DR是谁
BDR 选举出的BDR是谁
Active Neighbor 激活的邻居router-id,用来标识存在的邻居信息
—————————————————————————————
DD报文:
Interface MTU 发出该报文接口的MTU值,默认为0。(华为在实现0SPF时,忽略了MTU的比较,可以手动开启检测功能)
option 特殊区域标记
E=1说明是普通区域(可以是骨干区域,也可以是非骨干区域)
E=0 N=0说明这是stub区域
E=0 N=1说明这是NSSA区域
DB description 数据库描述信息
I初始DD报文,用来选举主从关系master slave
M 用来标识是否还有后续报文,如果为0,代表这是最后一个摘要信息
如果为1,代表后续还有摘要信息
MS 代表主从置位,如果为1:代表我是master
如果为0:代表我是slave
DD seq 序列号:用来做隐式确认
LSA LSA的摘要信息
—————————————————————————————————————————
LSR报文: 链路状态信息请求报文(携带LSA的三要素)
Lsu报 文: 携带真正的LSA信息
LSACK报文: 确认报文(使用LSA摘要信息做确认)
接口
一个接口在宣告了ospf以后会发送hello包,此接口会从down变成waiting(等待接口的选举【DR/BDR】)40s。
只有当广播网络的DR,BDR,DROTHER角色选出来以后,才能决定两个路由器之间要不要到达full状态
从先发出摘要,主先更新
OSPF邻居建订过栏概述:
1、2台路由器宣告了OSPF,会发送He1lo报文。
2、2台路由器收到了对方发来的He11o包后,会将对方的router-id放到自己的Hel1o包,
作为active neighbor,发出。此时邻居状态为init,也叫1-way
3、2台路由器再次收到对方发来的携带了active neighor为自己的Hel1o包以后,建立邻居,此时为2-way
在init到2way这个阶段,0SPF要判断是否和邻居建立邻接关系。也决定着路由器是否要发送DD报文给邻居
4、2台路由器分别发送DD报文,init=1 m=1 ms=1 开始选举主从,2台路由器都认为自己是主,此时为exstart
5、比较router-id后,从路由器开始发送DD-LSA摘要信息,init=0 m=0 ms=0 其中M为取决于后续是否还有摘要信息。
此时从路由器为exchange,主路由器依然exstart
6、主路由器收到DD摘要后,发送LSR。之后发送DD摘要给从路由器,init=0m=0ms=1,
M取值取决于后续是否还有摘要信息。此时从路由器为loading,主路由器为exchange
7、从路由器收到DD摘要后,发送LSR。之后发送DD报文给主路由器,这个DD报文没有摘要,init=0m=0 ms=0
为了告知主路由器摘要已经交换完毕。此时主路由器为1oading
8、路由器之间更新LSU后,回复LSACK,后置位为FUll、
注释:DD报文的三个作用:
a.选举主从
b.传递摘要信息
c.摘要传递完毕,将对方置位loading
当路由器发送了第一个DD报文后,从2way变成exstart 用来选举主从
当从路由器认怂,发送第一个DD携带LSA摘要报文后,从路由器变成exchange
当主路由器发送完LSR后,给从路由器发送DD携带LSA摘要报文后,主路由器变为exchange,
此时从路由器由于收到了主路由器的最后一个DD摘要报文,所以从路由器变为exchange
当从路由器交换完lsa摘要后,会给主路由器发送一个空DD报文,m=0,用来帮助主路由器进入loading。
LSR LSU和邻居状态的变化无关,当LSU全部发送完毕后,会发送LSACK作为确认,使路由器进入到FULL状态
oSPF报文确认机制
oSPF报文确认机制:
1、hello包 10s 40s Deadinterval
2、DD seq 序列号来做隐式确认
3、LSR 使用Lsu来确认
4、LSU
5、LSACK 本身就是一个确认报文,确认所有Lsu同步完成
隐式确认
DD报文的隐式确认过程:
R2--->R1 第一个DD 用来选主从,此时SEQ:129
R1--->R2 第一个DD 用来选主从,此时SEQ:124 以上2个SEQ是没有人任何关联性的
R1--->R2 第2个DD,认怂,自己是从路由器,此时SEQ:129(此时的SEQ会使用和R2给R1发送的第一个DD报文的SEQ)
用来给R2做隐式确认的。
R2--->R1第2个DD,自己仍然是主路由器,发送了LSR后会给从路由器发送DD摘要,此时EQ为 129+1=130
R1--->R2最后一个DD,从路由器认为LSA摘要全部交换完毕,发送空DD帮助主路由器进入1oading状态,此时空DD的SEQ=129+1
DD报文中的MTU
DD报文中的MTU:
1、DD报文中第一个字段就是MTU,正常来说,0SPF邻居建立是要求2个接口的MTU值一致,否则无法建立邻接
但是华为在实现邻居建立过程时,对于MTU的检测默认是忽略的。所以MTU值对于华为设备默认不影响。
(友商默认情况下是检查MTu的)
2、可以人为使用命令开启MTU检测
[AR1-GigabitEthernete/0/0]ospf mtu-enable
MTU检测功能如果只在一端开启,另一端默认,那么不影响邻接建立
所以,两端都要开启
DR/BDR
fullmesh:全互连
选举规则:DR/BDR的选举是基于接口的。
1、接口的DR优先级越大越优先。
2、接口的DR优先级相等时,RouterID越大越优先,
标签:报文,摘要,基础,id,router,OSPF,DD,路由器 From: https://www.cnblogs.com/malk/p/18508369