OSPF报文分析
1.HELLO 发现邻居并建立和维护邻居关系
2.Database Description 检查所有路由器的LSDB是否同步(数据库报文DBD)
3.Link—StateRequest 向另一台路由请求特定的链路状态记录(链路请求报文LSR)
4.Link-State Update 发送被请求的链路状态记录 (链路回应报文LSU)
5.Link-State Acknowledgment 对其他类型的分组进行确认
1、传送的LSA link status advertisement 链路状态通告,包括拓扑信息
具体包括:网段的前缀 掩码 连接的路由器的哪些接口 直连哪些路由器
LSA分为7中类型
某些包含的是拓扑信息 但是有些包含的是路由信息
2、LSDB 他是LSA的的集合 链路状态数据库
对此进行spf 算法 得到spf 树 (基于cost代价)再得出最优的路由 并将其加入到路由表中
3、既支持vlsm 可变掩码、又支持 cidr(无类别域间选路)
4、封装
layer2| ip |ospf| fcs
直接封装到IP报头内 上层协议号为89 eigrp为88
开始实验
OSPF验证试验
实验案列:使用eNSP验证OSPF优先级
实验环境
B公司做了新的设备,顺手实验下OSPF的优先级,以备不时之需。
需求描述
使用eNSP制作拓扑。
将制作的OSPF路由以此关闭,验证优先级。
推荐步骤
1.为R1,R2,R3配置命令。
2.抓包看看谁是带头大哥 。
3.关闭大哥验证剩下两个谁优先。
步骤如下:
根据要求构建拓扑
启动设备
SW1命令
sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 13.0.0.1 24
[R1-GigabitEthernet0/0/0]q
[R1]ospf 1 rou
[R1]ospf 1 router-id 1
[R1]ospf 1 router-id 1?
IP_ADDR<X.X.X.X> OSPF Private router ID value
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 13.0.0.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
Error: Unrecognized command found at ‘^’ position.
[R1-ospf-1-area-0.0.0.0]q
[R1-ospf-1]int Loo 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q
SW2命令
Enter system view, return user view with Ctrl+Z.
[Huawei]SYS R2
[R2]
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 13.0.0.2 24
[R2]int loo 0
[R2-LoopBack0]ip add 2.2.2.2 255.255.255.255
[R2-LoopBack0]q
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 13.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]q
SW3
sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 13.0.0.3 24
[R3-GigabitEthernet0/0/0]q
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 13.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]q
然后全部save
然后关机
然后开机,瞬间抓包
看到DR是R1 13.0.0.1,BDR是R2 13.0.0.2
关闭R1,再次抓包
发现DR变成了R2,BDR变成了R3
在开启R1
发现DR与BDR不变
再关闭R2
发现DR变成了R3,BDR变成R1
试验结束
观察结果
详解
一、hello发送周期分为10s和30s两种,hello hold的时间为发送时间*4即40s或120s
二、dbd数据库描述报文 包含lsa的报头 即告诉邻居路由器 本地的lsdb中包含哪些LSA信息
同步lsdb过程中如果没有此描述可能会发送重复的LSA 造成资源的浪费导致低效LSA中除了拓扑
或路由信息的载荷外还有LSA的报头也叫LSA的摘要,报头中包含此LSA的标识,从而避免发送重复的LSA信息
三、路由器请求邻居有但是本地没有的LSA,以保证lsdb一致,根据交互的dbd,
将没有的LSA的报头放在LSAR中,表明需要的LSA
四、根据上面的一条 将邻居请求的LSA信息 放在LSU中由本地路由器发送给邻居
LSU包含完整的LSA信息
五、LSACK为确认机制 由OSPF定义的确认机制
ospf定义了两类的确认 一种为显式的确认 另一类为隐式的确认(基于序列号的确认机制)
前者收到一个报文 针对此报文 生成一个单独的确认报文