实验目的:

1、通过Wireshark抓取和分析UDP和DHCP分组。

2、掌握UDP和DHCP的工作原理。

实验拓扑:

实验原理:

1、UDP简介:UDP<User Datagram Protocol,用户数据报协议>,提供面向无连接的不可靠传输的通信服务,与TCP协议一起处于传输层。UDP的特点是高效快速,常用的UDP应用有DHCP、DNS、TFTP协议等。

2、DHCP简介:DHCP< Dynamic Host Configuration Protocol, ,动态主机配置协议>,为网络中的设备提供动态IP地址信息,包括IP地址、网关、DNS等等。DHCP可以使得整个网络的地址分配变得非常简单,大大减低了网络管理员的工作量。DHCP基于UDP协议,采用端口号为67和68,其中68端口为DHCP客户端采用,67端口为DHCP服务端采用。

3、DHCP原理:DHCP采用发现、提供、请求、确认4个分组完成整个IP地址的请求和分配过程,如下:

DHCP客户端首先向局域网广播发送DHCP发现分组,源IP为0.0.0.0,目的IP为255.255.255.255,接收到发现分组的服务器会从地址池拿出一个IP出来,并返回DHCP提供分组给客户端,告知本服务器能够提供地址;当客户端收到提供分组之后,会正式向服务器发送请求分组,此时服务器发送确认分组正式将地址分配给客户端。整个DHCP地址分配过程,采用广播包方式交互,若同时有几个DHCP服务器时,则客户端能够收到多个提供分组,此时客户端优先选择最快到达本地的提供<OFFER>分组,并向其发起请求,在请求分组中夹带目的服务器的IP地址,其他服务器将地址收回。

实验步骤:

1、通过GNS3搭建实验拓扑,其中R1模拟DHCP客户端,R2模拟DHCP服务端,并开启接口配置IP地址,如下:

R1(config)#int f0/0

R1(config-if)#no shutdown

R1(config-if)#ip address dhcp

//在R1的接口开启DHCP地址自动获取

R2(config)#int f0/0

R2(config-if)#no shutdown

R2(config-if)#ip add 12.1.1.2 255.255.255.0

2、在R1和R2上开启wireshark抓包,并且在R2上部署DHCP服务,如下:

R2(config)#ip dhcp pool DHCP

//定义DHCP地址池,名字可以自定义

R2(dhcp-config)#network 12.1.1.0 /24

//定义地址池的网段

R2(dhcp-config)#default-router 12.1.1.2

//定义网关地址

R2(dhcp-config)#dns-server 8.8.8.8

//定义DNS地址

R2(dhcp-config)#lease 7

//定义地址租期,此处表示地址可用租期为7天

3、在R1上查看是否获取到地址,如下:

R1#show ip int brief

Interface       IP-Address  OK? Method Status    Protocol

FastEthernet0/0  12.1.1.1    YES DHCP   up       up   

可以看到,此处R1已经通过DHCP获取到地址。

4、打开wireshark,观察UDP和DHCP分组,如下:

(1)打开DHCP分组,打开UDP头部,如下:

以下列表对UDP头部字段进行解读:

字段

解释

Source port

源端口,DHCP客户端端口为68

Destination port

目的端口,DHCP服务端端口为67

Length

长度,标识UDP头部和上层数据的总长度

Checksum

校验和,标识此数据包是否完整或被修改

可以看得,UDP的头部非常简单,所以没有像TCP的可靠传输或流量控制功能等。

(2)打开DHCP DISCOVER<发现>分组,如下: 

以下表格详细解读了DHCP发现分组的重要字段:

字段

解释

Your (client) IP address

客户IP地址,客户端请求时为全0,服务端返回时将地址填充进来

Client MAC address

客户MAC地址,客户端发起请求时必须填充此字段,服务端分配地址后将MAC与IP绑定在本地地址池中。

Option 53

选项53,标识DHCP分组类型

Option 57

选项57,标识最大的DHCP分组长度

Option 61

选项61,客户标识符

Option 12

选项12,标识主机名

Option 55

选项55,标识客户请求参数

(3)打开DHCP OFFER<提供>分组,如下:

以下表格详细解读了DHCP提供分组的重要字段

字段

解释

Option 54

选项54,标识DHCP服务器IP地址

Option 51

选项51,标识DHCP地址租期

Option 1

选项1,标识IP地址掩码

Option 3

选项3,标识网关IP地址

Option 6

选项6,标识DNS服务器地址

(4)打开DHCP REQUEST<请求>分组,如下:

以下表格详细解读了DHCP请求分组的重要字段:

字段

解释

Option 50

选项50,标识客户端所请求的IP地址

(5)打开DHCP ACK<应答>分组,如下:

 应答分组的选项值在之前有解读,此处略过。可以看到,DHCP分组的大部分字段内容由选型值组成。此实验完成。