14-1 OSPF邻接建立抓包分析
实验一
抓包理解邻接建立全过程
拓扑
配置
AR1
<Huawei>sys
[Huawei]sys AR1
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ip addr 12.1.1.1 255.255.255.0
[AR1-GigabitEthernet0/0/0]inte lo 0
[AR1-LoopBack0]ip addr 1.1.1.1 32
[AR1-LoopBack0]q
[AR1]ospf 1 router-id 1.1.1.1 \\创建一个OSPF进程,进程号为1,将此路由器的标识路由ID为1.1.1.1
[AR1-ospf-1]area 0 \\将此路由器划分到OSPF的区域0中
[AR1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0 \\宣告12.1.1.1这个地址到区域中
[AR1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 \\宣告1.1.1.1这个地址到区域中
AR2
<Huawei>sys
[Huawei]sys AR2
[AR2]inte gi 0/0/0
[AR2-GigabitEthernet0/0/0]ip addr
[AR2-GigabitEthernet0/0/0]ip address 12.1.1.2 255.255.255.0
[AR2-GigabitEthernet0/0/0]inte gi 0/0/1
[AR2-GigabitEthernet0/0/1]ip addr 13.1.1.1 255.255.255.0
[AR2-GigabitEthernet0/0/1]inte lo 0
[AR2-LoopBack0]ip addr 2.2.2.2 255.255.255.255
[AR2-LoopBack0]q
[AR2]ospf 1 router-id 2.2.2.2
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 13.1.1.1 0.0.0.0
AR3
<Huawei>sys
[Huawei]sys AR3
[AR3]inte gi 0/0/0
[AR3-GigabitEthernet0/0/0]ip addr 13.1.1.2 255.255.255.0
[AR3-GigabitEthernet0/0/0]inte lo 0
[AR3-LoopBack0]ip addr 3.3.3.3 255.255.255.255
[AR3-LoopBack0]q
[AR3]ospf 1 router-id 3.3.3.3
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 13.1.1.2 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
AR1和AR2邻接建立过程分析
[AR1]dis ospf peer //AR1查看邻居表
OSPF Process 1 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 12.1.1.1(GigabitEthernet0/0/0)'s neighbors //从GE0/0/0口发现的邻居
Router ID: 2.2.2.2 Address: 12.1.1.2 //邻居对象的routeid,和地址
State: Full Mode:Nbr is Master Priority: 1 //状态为FULL,标识已经成功同步LSDB,在进行DD交换时协商出来邻居为Master(RouterID大)
DR: 12.1.1.1 BDR: 12.1.1.2 MTU: 0
Dead timer due in 34 sec
Retrans timer interval: 5
Neighbor is up for 00:04:38
Authentication Sequence: [ 0 ]
[AR1]dis ospf lsdb //查看LSDB表
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 338 60 80000007 1 //从RouteID为2.2.2.2的邻居学习到的LS
Router 1.1.1.1 1.1.1.1 512 48 80000006 1
Router 3.3.3.3 3.3.3.3 338 48 80000006 1
Network 13.1.1.2 3.3.3.3 338 32 80000002 0
Network 12.1.1.1 1.1.1.1 512 32 80000002 0
在AR1的GE0/0/0处抓包,分析AR1和AR2建立邻接全过程
第一步
no.103,AR1发出HELLO报文,以此发现邻居对象,当前邻居表为空状态
第二步
no.104 接收到来自AR2的HELLO报文,将AR2加入到邻居表中,并且状态AR2为Init,此时AR2也接收到来自AR1的HELLO报文,将AR1加入到邻居表中,状态为Init
第三步
no.105 AR1发送HELLO报文,其中包括邻居对象AR2的routerID 2.2.2.2,AR2接收到后将邻居表中的AR1对象状态更改为Two way
第四步
no.125 AR1接收到来自AR2的HELLO报文,其中HELLO报文中有AR1的routerID 1.1.1.1,AR1将AR2的状态转换为Two way(包的序号靠后问题是wireshark的问题)
第五步
no.111 经过前四步,AR1和AR2都进入Two way,邻居表中都将对方转换为Ex-start状态,此时开始协商主从关系,AR1发送没有携带LSDB摘要的DD报文,序列号为1544
第六步
no.110 接收到来自AR2的协商主从的空DD报文,序列号为1540
第七步
no.112 经过RouterID比较后,AR2的RouterID大,所以AR1为从,AR2为主,AR1将AR2的状态更改为Exchange,且发送自己LSDB中的LSA的DD报文,且序列号为主的DD报文的序列号1540
第八步
no.115 AR2接收到AR1的带有摘要的DD报文后,将AR1状态转换为Exchange,并且发送自己的LSDB摘要DD报文,且基于发来的序列号进行加1,1541
第九步
no.118 AR1发送DD报文确认主路由的DD报文,序列号为1541
第10步
no.117 交换完DD摘要信息后,双方都将对方的状态转换为Loading,经过比对,AR1向AR2请求LSA信息,发送LSR请求
第11步
no.119 AR2回复LSU报文
第12步
no.124 AR1向AR2确认接收到了LSA的更新,AR1和AR2同理10~12步交互LSDB中不一样的LSA,最后同步成一样的,双方都将对方在邻居表中设置为FULL状态
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现