在仿真平台上抓取报文或者分析网络,基本步骤为:
- 建立网络拓扑结构
- 配置网络参数
- 模拟网络操作,抓取报文(比如想抓HTTP报文,那就打开浏览器访问网页服务器),分析网络
先建立网络拓扑结构:
单区域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
从上述查询结果可以看出,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路由。下面进行仿真过程运行:
部分数据包如下:
首先 router1的报文格式如下
IP部分
OSPF hello报文
运行后过程:
1.Router1 组播形式发送hello报文
报文内容大致如下:
该设备在千兆以太网0/2上多播一个OSPF Hello包。
该设备将数据封装到IP包中。
设备在数据包上设置TTL。
目标IP地址是广播或多播地址。设备将目标地址设置为下一个跃点
下一跳IP地址是多播。ARP过程将帧的目的MAC地址设置为多播MAC地址。
PDU封装在以太网帧中。
Gig0/2端口将帧发送出去
Router3收到router1的hello报文
Gig0/2端口收到帧
帧的目标MAC地址与接收端口的MAC地址、广播地址或多播地址相匹配。
设备将PDU从以太网帧中拆下封装
设备在CEF表中查找目标IP地址。
CEF表有一个设备接收此数据包的条目。设备将数据包发送到上层。
设备接收OSPF数据包。
OSPF包是一个Hello包。
Hello包来自一个现有的邻居。设备重置此邻居的计时器。
Router1 通过端口gig0/1 继续发送hello包
PC1收到router1 的hello包
目标IP不是广播地址,它与端口的IP地址不匹配。设备丢弃数据包。
其他路由器过程基本同router1
重复此过程
下面讲一下数据包中出现的CDP
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.
报文格式如下
Router1
CDP过程构造一个CDP框架并将其发送出去。
PDU封装在以太网帧中。
三个端口都会发Router2收到Router1发送的CDP
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
1.帧的目标MAC地址与接收端口的MAC地址、广播地址或多播地址相匹配。
2.设备没有接受此帧的服务。丢弃该帧
Router3收到router1的CDP
值得注意的是,通过仿真过程抓取的ospf数据包得到的结论与ospf原理相吻合:
发现:
(周期性60s发送CDP通告给直接相连的cisco设备)
路由器周期性(默认为10s)向邻居路由器的接口发送hello报文,用来建立和维护相邻路由器之间的链接关系。