在仿真平台上抓取报文或者分析网络,基本步骤为:

  • 建立网络拓扑结构
  • 配置网络参数
  • 模拟网络操作,抓取报文(比如想抓HTTP报文,那就打开浏览器访问网页服务器),分析网络

先建立网络拓扑结构:

单区域OSPF配置如下图所示:

抓包的数据标注了OSPF说明了什么_抓包的数据标注了OSPF说明了什么


对R1配置如下:

R1(config)#interface gig0/0
 R1(config-if)#ip address 172.16.2.1 255.255.255.252
 R1(config-if)#no shutdown
 R1(config-if) #exit
 R1(config)#interface gig0/2
 R1(config-if)#ip address 172.16.1.1 255.255.255.252
 R1(config-if) #no shutdown
 R1(config-if)#exit
 R1(config)#interface gig0/1
 R1(config-if)#ip address192.168.1.1 255.255.255.0
 R1(config-if)#no shutdown
 R1(config-if) #exit
 R1(config)#router ospf 1
 R1(config-router) #network 172.16.1.0 0.0.0.3 area0
 R1(config-router) #network 172.16.2.0 0.0.0.3 area 0
 R1(config-router) #network 192.168.1.0 0.0.0.255 area 0
对R2配置如下:
 R2(config)#interface gig0/0
 R2(config-if)#ip address 172.16.3.1 255.255.255.252
 R2(config-if)#no shutdown
 R2(config-if) #exit
 R2(config)#interface gig0/2
 R2(config-if)#ip address 172.16.2.2 255.255.255.252
 R2(config-if) #no shutdown
 R2(config-if)#exit
 R2(config)#interface gig0/1
 R2(config-if)#ip address192.168.2.1 255.255.255.0
 R2(config-if)#no shutdown
 R2(config-if) #exit
 R2(config)#router ospf 1
 R2(config-router) #network 172.16.1.0 0.0.0.3 area0
 R2(config-router) #network 172.16.2.0 0.0.0.3 area 0
 R2(config-router) #network 192.168.1.0 0.0.0.255 area 0对R3配置如下
 R3(config)#interface gig0/0
 R3(config-if)#ip address 172.16.3.2 255.255.255.252
 R3(config-if)#no shutdown
 R3(config-if) #exit
 R3(config)#interface gig0/2
 R3(config-if)#ip address 172.16.1.2 255.255.255.252
 R3(config-if) #no shutdown
 R3(config-if)#exit
 R3(config)#interface gig0/1
 R3(config-if)#ip address192.168.3.1 255.255.255.0
 R3(config-if)#no shutdown
 R3(config-if) #exit
 R3(config)#router ospf 1
 R3(config-router) #network 172.16.1.0 0.0.0.3 area0
 R3(config-router) #network 172.16.3.0 0.0.0.3 area 0
 R3(config-router) #network 192.168.3.0 0.0.0.255 area 0

以R1为例查看路由器的路由表信息:

R1#show ip route

抓包的数据标注了OSPF说明了什么_OSPF_02


从上述查询结果可以看出,R1的路由表中有3条直连路由和3条OSPF路由。其中172.16.1.0/30网段、172.16.2.0/30网段和192.168.1.0/24网段是三条直连路由,172.16.3.0/30网段、192.168.2.0/24网段和192.168.3.0/24网段是通过OSPF进程产生的OSPF路由。下面进行仿真过程运行:

抓包的数据标注了OSPF说明了什么_R3_03


部分数据包如下:

抓包的数据标注了OSPF说明了什么_路由器_04


首先 router1的报文格式如下
IP部分

抓包的数据标注了OSPF说明了什么_R3_05

OSPF hello报文

抓包的数据标注了OSPF说明了什么_网络_06

运行后过程:
1.Router1 组播形式发送hello报文

抓包的数据标注了OSPF说明了什么_OSPF_07

抓包的数据标注了OSPF说明了什么_OSPF_08


抓包的数据标注了OSPF说明了什么_路由器_09


抓包的数据标注了OSPF说明了什么_R3_10


报文内容大致如下

该设备在千兆以太网0/2上多播一个OSPF Hello包。

该设备将数据封装到IP包中。

设备在数据包上设置TTL。

目标IP地址是广播或多播地址。设备将目标地址设置为下一个跃点

下一跳IP地址是多播。ARP过程将帧的目的MAC地址设置为多播MAC地址。
PDU封装在以太网帧中。

Gig0/2端口将帧发送出去

Router3收到router1的hello报文

抓包的数据标注了OSPF说明了什么_R3_11

抓包的数据标注了OSPF说明了什么_R3_12


抓包的数据标注了OSPF说明了什么_路由器_13


抓包的数据标注了OSPF说明了什么_抓包的数据标注了OSPF说明了什么_14


Gig0/2端口收到帧

帧的目标MAC地址与接收端口的MAC地址、广播地址或多播地址相匹配。
设备将PDU从以太网帧中拆下封装

设备在CEF表中查找目标IP地址。
CEF表有一个设备接收此数据包的条目。设备将数据包发送到上层。
设备接收OSPF数据包。
OSPF包是一个Hello包。
Hello包来自一个现有的邻居。设备重置此邻居的计时器。

Router1 通过端口gig0/1 继续发送hello包

抓包的数据标注了OSPF说明了什么_OSPF_15

抓包的数据标注了OSPF说明了什么_OSPF_16

PC1收到router1 的hello包

抓包的数据标注了OSPF说明了什么_网络_17

抓包的数据标注了OSPF说明了什么_R3_18


抓包的数据标注了OSPF说明了什么_网络_19

抓包的数据标注了OSPF说明了什么_R3_20

目标IP不是广播地址,它与端口的IP地址不匹配。设备丢弃数据包。

其他路由器过程基本同router1

抓包的数据标注了OSPF说明了什么_R3_21


抓包的数据标注了OSPF说明了什么_抓包的数据标注了OSPF说明了什么_22

重复此过程

抓包的数据标注了OSPF说明了什么_OSPF_23

下面讲一下数据包中出现的CDP

抓包的数据标注了OSPF说明了什么_路由器_24

CDP(思科发现协议)

  • CDP是Cisco Discovery Protocol的缩写,它是由思科公司推出的一种私有的二层网络协议,它能够运行在大部分的思科设备上面。通过运行CDP协议,思科设备能够在与它们直连的设备之间分享有关操作系统软件版本,以及IP地址,硬件平台等相关信息。
  • 思科发现协议(Cisco DiscoveryProtocol,CDP)是一个处于OSI七层模型中数据链路层的协议。CDP 用来获取相邻设备的协议地址及发现这些设备的平台,可为路由器的使用提供相关接口信息,是一种独立媒体协议。它运行在所有思科制造的设备上,包括路由器、交换机或其它网络设备,因为它是思科的私有协议,所以那些非思科的设备不能使用CDP协议。
  • CDP协议工作在数据链路层,是cisco私有的一种协议,并且和传输介质和与协议无关。只要物理层和数据链路层正常,CDP就可以正常工作。运行在包括的所有Cisco生产的设备: 路由器 、网桥 、接入服务器、交换机。可以通过CDP协议来发现直接相连的cisco设备的信息。在默认情况下,cisco设备启用CDP协议,并周期性60s发送CDP通告给直接相连的cisco设备。使用组播MAC地址01:00:0C:CC:CC:CC.

报文格式如下

抓包的数据标注了OSPF说明了什么_网络_25

Router1

抓包的数据标注了OSPF说明了什么_网络_26

抓包的数据标注了OSPF说明了什么_抓包的数据标注了OSPF说明了什么_27

CDP过程构造一个CDP框架并将其发送出去。

PDU封装在以太网帧中。

抓包的数据标注了OSPF说明了什么_路由器_28


抓包的数据标注了OSPF说明了什么_网络_29


抓包的数据标注了OSPF说明了什么_R3_30


三个端口都会发Router2收到Router1发送的CDP

抓包的数据标注了OSPF说明了什么_OSPF_31


抓包的数据标注了OSPF说明了什么_OSPF_32


抓包的数据标注了OSPF说明了什么_路由器_33


1.帧的目标MAC地址与接收端口的MAC地址、广播地址或多播地址相匹配。

2.设备将PDU从以太网帧中拆下封装。

3.框架是CDP框架。CDP过程处理它。

4.CDP进程接收到一个邻居设备ID。

5.CDP进程接收到地址TLV。

6.CDP进程接收到一个邻居端口ID。

7.CDP进程接收到邻居能力。

8.CDP进程接收到邻居版本。

9.CDP进程接收到一个邻居平台。

10.邻居已经在表里了。CDP过程重置保持计时器。PC1收到Router1的CDP

抓包的数据标注了OSPF说明了什么_OSPF_34


抓包的数据标注了OSPF说明了什么_网络_35

1.帧的目标MAC地址与接收端口的MAC地址、广播地址或多播地址相匹配。
2.设备没有接受此帧的服务。丢弃该帧

Router3收到router1的CDP

抓包的数据标注了OSPF说明了什么_OSPF_36

抓包的数据标注了OSPF说明了什么_路由器_37


抓包的数据标注了OSPF说明了什么_网络_38


抓包的数据标注了OSPF说明了什么_路由器_39

值得注意的是,通过仿真过程抓取的ospf数据包得到的结论与ospf原理相吻合:

抓包的数据标注了OSPF说明了什么_OSPF_40


抓包的数据标注了OSPF说明了什么_抓包的数据标注了OSPF说明了什么_41


发现:
(周期性60s发送CDP通告给直接相连的cisco设备)

抓包的数据标注了OSPF说明了什么_路由器_42


抓包的数据标注了OSPF说明了什么_R3_43


路由器周期性(默认为10s)向邻居路由器的接口发送hello报文,用来建立和维护相邻路由器之间的链接关系。