拓扑
配置
[1-ospf-1]are 0
[1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0
[1-ospf-1-area-0.0.0.0]net 12.1.1.1 0.0.0.0
[1]interface LoopBack 0
[1-LoopBack0]ip ad
[1-LoopBack0]ip address 1.1.1.1 32
[1-LoopBack0]int g0/0/0
[1-GigabitEthernet0/0/0]ip ad
[1-GigabitEthernet0/0/0]ip address 12.1.1.1 24
[2]ospf 1 router-id 2.2.2.2 //创建一个OSPF进程,进程号为1,将此路由器的标识路由ID为2.2.2.2
[2-ospf-1]are 0// 将此路由器划分到OSPF的区域0中
[2-ospf-1-area-0.0.0.0]net
[2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0 //宣告12.1.1.1这个地址到区域中,其他同理
[2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[2-ospf-1-area-0.0.0.0]network 23.1.1.1 0.0.0.0
[2]interface LoopBack 0
[2-LoopBack0]ip add 2.2.2.2 32
[2-LoopBack0]int g0/0/0
[2-GigabitEthernet0/0/0]ip add 12.1.1.2 24
[2-GigabitEthernet0/0/0]ip add 23.1.1.1 24
[3]ospf 1 router-id 3.3.3.3
[3-ospf-1]p
[3-ospf-1]are 0
[3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[3-ospf-1-area-0.0.0.0]net 23.1.1.2 0.0.0.0
[3]int LoopBack 0
[3-LoopBack0]ip add 3.3.3.3 32
[3]int g0/0/2
[3-GigabitEthernet0/0/2]ip add 23.1.1.2 24
AR1和AR2邻接建立过程分析
[1]dis ospf peer //AR1查看邻居表
OSPF Process 1 with Router ID 1.1.1.1//ospf进程为1Router 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 //state邻居状态:
Down:该状态为邻居的初始状态。表示没有邻居收到任何信息。在NBMA网络上,Hello报文在该状态时仍然可以收发,周期为Poll Interval(Hello Interval<Poll Interval)
Attempt:该状态只存在于NBMA网络上,表明正在尝试建立邻居关系。此时,Hello报文的收发周期为Hello Interval(Hello Interval<Poll Interval)
Init:该状态表明已经接收到了从邻居发送来的Hello报文
2-Way:该状态表明已经接收到了从邻居发送过来的Hello报文,并且该Hello报文的Neighbor List中包含本地Router ID,即双方可以互通
ExStart:该状态为建立Adjacency的第一步,进行主从关系、DD Sequence Number的协商
Exchange:从该状态开始,进行LSDB同步操作,交互的报文有DD报文、LSR报文、LSU报文
Loading:LSDB正在进行同步操作,交互的报文有LSR报文和LSU报文
Full:该状态说明,邻居的LSDB已经同步完成,双方建立了Full邻接关系
DR: 12.1.1.1 BDR: 12.1.1.2 MTU: 0 //DR:指定路由器 BDR:备份指定路由器
Dead timer due in 38 sec
Retrans timer interval: 5
Neighbor is up for 27:09:11
Authentication Sequence: [ 0 ]
[1]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 336 60 8000003F 1
Router 1.1.1.1 1.1.1.1 565 48 8000003C 0
Router 3.3.3.3 3.3.3.3 344 48 8000003A 1
Network 23.1.1.1 2.2.2.2 336 32 80000038 0
Network 12.1.1.1 1.1.1.1 565 32 80000038 0
[1]display ospf routing//查看ospf路由表
OSPF Process 1 with Router ID 1.1.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
1.1.1.1/32 0 Stub 1.1.1.1 1.1.1.1 0.0.0.0
12.1.1.0/24 1 Transit 12.1.1.1 1.1.1.1 0.0.0.0
2.2.2.2/32 1 Stub 12.1.1.2 2.2.2.2 0.0.0.0
3.3.3.3/32 2 Stub 12.1.1.2 3.3.3.3 0.0.0.0
23.1.1.0/24 2 Transit 12.1.1.2 2.2.2.2 0.0.0.0
Total Nets: 5
Intra Area: 5 Inter Area: 0 ASE: 0 NSSA: 0
报文解析
hello报文参考
DD报文参考
LSR报文参考
报文交互大概
在AR1的GE0/0/0处抓包,分析AR1和AR2建立邻接全过程
1.AR1发出HELLO报文,以此发现邻居对象,当前邻居表为空状态
2.接收到来自AR2的HELLO报文,将AR2加入到邻居表中,并且状态AR2为Init,此时AR2也接收到来自AR1的HELLO报文,将AR1加入到邻居表中,状态为Init
3.no.105 AR1发送HELLO报文,其中包括邻居对象AR2的routerID 2.2.2.2,AR2接收到后将邻居表中的AR1对象状态更改为Two way
4.AR1接收到来自AR2的HELLO报文,其中HELLO报文中有AR1的routerID 1.1.1.1,AR1将AR2的状态转换为Two way
5.经过前四步,AR1和AR2都进入Two way,邻居表中都将对方转换为Ex-start状态,此时开始协商主从关系,AR1发送没有携带LSDB摘要的DD报文,序列号为63959
6.接收到来自AR2的协商主从的空DD报文,序列号为63962
7.经过RouterID比较后,AR2的RouterID大,所以AR1为从,AR2为主,AR1将AR2的状态更改为Exchange,且发送自己LSDB中的LSA的DD报文,且序列号为主的DD报文的序列号63962
8AR2接收到AR1的带有摘要的DD报文后,将AR1状态转换为Exchange,并且发送自己的LSDB摘要DD报文,且基于发来的序列号进行加1,63963
9.AR1发送DD报文确认主路由的DD报文,序列号为63963
10.交换完DD摘要信息后,双方都将对方的状态转换为Loading,经过比对,AR1向AR2请求LSA信息,发送LSR请求
11. AR2回复LSU报文
12.AR1向AR2确认接收到了LSA的更新,AR1和AR2同理10~12步交互LSDB中不一样的LSA,最后同步成一样的,双方都将对方在邻居表中设置为FULL状态