DHCP协议报文分析

DHCP协议分析

一、DHCP简介

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来为网络设备动态地分配 IP地址等网络配置参数。

DHCP 采用客户端/服务器通信模式,由客户端向服务器提出请求分配网络配置参数的申请,服务器返回为客户端分配的 IP 地址等配置信息,以实现 IP 地址等信息的动态配置。

二、DHCP工作过程

1.IP 地址动态获取过程

2.主要通过四个阶段进行:

A.发现阶段,即 DHCP 客户端寻找 DHCP 服务器的阶段。客户端以广播方式发送DHCP-DISCOVER 报文。

B.提供阶段,即 DHCP 服务器提供 IP 地址的阶段。DHCP 服务器接收到客户端的DHCP-DISCOVER 报文后,根据 IP 地址分配的优先次序选出一个 IP 地址,与其他参数一起通过 DHCP-OFFER 报文发送给客户端。

C.选择阶段,即 DHCP 客户端选择 IP 地址的阶段。如果有多台 DHCP 服务器向该客户端发来DHCP-OFFER 报文,客户端只接受第一个收到的 DHCP-OFFER 报文,然后以广播方式发送DHCP-REQUEST 报文,该报文中包含 DHCP 服务器在 DHCP-OFFER 报文中分配的 IP 地址。

D.确认阶段,即 DHCP 服务器确认 IP 地址的阶段。DHCP 服务器收到 DHCP 客户端发来的DHCP-REQUEST 报文后,只有 DHCP 客户端选择的服务器会进行如下操作:如果确认将地址分配给该客户端,则返回 DHCP-ACK 报文;否则返回 DHCP-NAK 报文,表明地址不能分配给该客户端。

三、实验环境

RT2是DHCP服务器,RT1是客户端;RT2 GE0/0端口配置IP地址10.0.0.254/24,地址池为10.0.0.0/24;RT1 GE0/0端口配置IP地址自动获取。

三、实验内容

1.RT2配置

[Rt2]interface GigabitEthernet 0/0

[Rt2-GigabitEthernet0/0]ip address 10.0.0.254 24

[Rt2-GigabitEthernet0/0]quit

[Rt2]dhcp enable       \\开启DHCP服务

[Rt2]dhcp server ip-pool 10     \\创建DHCP地址池

[Rt2-dhcp-pool-10]network 10.0.0.0 24      \\配置为客户端分配的IP地址

[Rt2-dhcp-pool-10]gateway-list 10.0.0.254   \\配置DHCP客户端使用的网关地址

[Rt2-dhcp-pool-10]quit

[Rt2]dhcp server forbidden-ip 10.0.0.254  \\配置DHCP地址池中不参与自动分配的IP地址

2.RT1配置

[RT1]interface GigabitEthernet 0/0

[RT1-GigabitEthernet0/0]ip address dhcp-alloc   \IP地址自动获取

3.现在RT1已经获取到IP地址。

[RT1]display ip interface GigabitEthernet 0/0 brief

(s): spoofing  (l): loopback

Interface                Physical Protocol IP Address      Description

GE0/0                    up       up       10.0.0.1        --

4.RT1路由表里多了一条优先级为70的默认路由

[RT1]display ip routing-table

Destinations : 13       Routes : 13

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          Static  70  0           10.0.0.254      GE0/0

0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0

10.0.0.0/24        Direct  0   0           10.0.0.1        GE0/0

10.0.0.0/32        Direct  0   0           10.0.0.1        GE0/0

10.0.0.1/32        Direct  0   0           127.0.0.1       InLoop0

10.0.0.255/32      Direct  0   0           10.0.0.1        GE0/0

127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0

127.0.0.0/32       Direct  0   0           127.0.0.1       InLoop0

127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0

127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0

224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0

255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

原因是在RT2配置了gateway-list 10.0.0.254,如果配置这条命令,RT1里就会存在这条默认路由。

四、实验分析

1.DHCP报文格式

各字段的解释如下:

a. op:报文的操作类型,分为请求报文和响应报文,1 为请求报文;2 为响应报文。具体的报文类型在 options 字段中标识。

b. htype、hlen:DHCP 客户端的硬件地址类型及长度。

c. hops:DHCP 报文经过的 DHCP 中继的数目。DHCP 请求报文每经过一个 DHCP 中继,该字段就会增加 1。

d. xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。

e. secs:DHCP 客户端开始 DHCP 请求后所经过的时间。目前没有使用,固定为 0。

f. flags:第一个比特为广播响应标识位,用来标识 DHCP 服务器响应报文是采用单播还是广播方式发送,0 表示采用单播方式,1 表示采用广播方式。其余比特保留不用。

g. ciaddr:DHCP 客户端的 IP 地址。如果客户端有合法和可用的 IP 地址,则将其添加到此字段,否则字段设置为 0。此字段不用于客户端申请某个特定的 IP 地址。

h. yiaddr:DHCP 服务器分配给客户端的 IP 地址。

i. siaddr:DHCP 客户端获取启动配置信息的服务器 IP 地址。

j. giaddr:DHCP 客户端发出请求报文后经过的第一个 DHCP 中继的 IP 地址。

k. chaddr:DHCP 客户端的硬件地址。

l. sname:DHCP 客户端获取启动配置信息的服务器名称。

m. file:DHCP 服务器为 DHCP 客户端指定的启动配置文件名称及路径信息。

n. options:可选变长选项字段,包含报文的类型、有效租期、DNS 服务器的 IP 地址、WINS 服务器的 IP 地址等配置信息。

2.抓包分析

a.首先RT1以广播方式发送DHCP-DISCOVER 报文。

源地址全0

b.RT2收到后回复DHCP-OFFER,以广播的方式。

报文包含申请到的IP地址

c.RT1发送DHCP-REQUEST报文请求使用申请到的地址。

此时RT1还没有使用申请到的地址,源地址还是全0,目的地址是依然是广播地址。

d.RT2回复DHCP-ACK

RT2广播发送DHCP-ACK,确认分配10.0.0.1。

七、实验补充

客户端收到服务器返回的 DHCP-ACK 确认报文后,会以广播的方式发送免费 ARP 报文,探测是否有主机使用服务器分配的 IP 地址,如果在规定的时间内没有收到回应,客户端才使用此地址。否则,客户端会发送 DHCP-DECLINE 报文给 DHCP 服务器,并重新申请 IP 地址。

时间: 2024-10-10 09:24:49

DHCP协议报文分析的相关文章

协议分析 - DHCP协议解码详解

协议分析 - DHCP协议解码详解 [DHCP协议简介] DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议. DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器.DHCP为客户端分配地址的方法有三种:手工配置.自动配置.动态配置. DHCP最重要的功能就是动态分配

很好的 DHCP协议与dhcpcd分析【转】

本文转载自:http://blog.csdn.net/gjsisi/article/details/18052369 第一部分 DHCP工作过程 DHCP的工作过程主要分为以下六个阶段:     发现阶段,即DHCP客户端寻找DHCP服务器的阶段.DHCP客户端首先以广播方式发送DHCP DISCOVER发现信息来寻找DHCP服务器(因为DHCP服务器的IP地址对于客户端来说是未知的),即客户端向地址255.255.255.255发送特定的广播信息.请求信息主要包含客户端的网卡MAC地址还有客户

Wireshark数据包分析之DHCP协议包解读

*此篇博客仅作为个人笔记和学习参考 DHCP协议包格式 DHCP报文类型 DHCP Discover.DHCP Offer.DHCP Request.DHCP ACK.DHCP NAK.DHCP Release.DHCP Decline.DHCP Infrom; DHCP Discover数据包分析(发现) Bootstrap Protocol (Discover)Message type: Boot Request (1) #DHCP消息类型,这是一个请求包,所以选项值为1;#Hardware

DHCP协议中的报文

DHCP DISCOVER :客户端开始DHCP过程发送的包,是DHCP协议的开始 DHCP OFFER :服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr).客户端的MAC地址.租约过期时间.服务器的识别符以及其他信息 DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应.在续约租期的时候同样会使用. DHCP ACK :服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文.在建立连接的时候,客户端

dhcp协议交互报文

DHCP共有八种报文,分别为DHCP Discover.DHCP Offer.DHCP Request.DHCP ACK.DHCP NAK.DHCP Release.DHCP Decline.DHCP Inform.各报文类型功能如下所述: DHCP Discover DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发

DHCP协议详解

DHCP协议详解 定义:DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,主要作用是为局域网内的主机自动分配IP地址.DCHP工作在应用层,是BOOTP(Bootscrap Protocol)的一种扩展,使用UDP协议进行运输,UDP67和UDP68端口分别作为DHCPServer和DHCP Client的服务端口.DHCP协议内容在RFC2131中定义,而DHCP Options在RFC2132中定义. DHCP的4次握手 测试方法:为了抓到D

【转】DHCP协议详解

协议分析 - DHCP协议解码详解 DHCP协议简介 DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议. DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器.DHCP为客户端分配地址的方法有三种:手工配置.自动配置.动态配置. DHCP最重要的功能就是动态分配.除

dhcp协议简介

协议分析 - DHCP协议解码详解 DHCP协议简介 DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议. DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器.DHCP为客户端分配地址的方法有三种:手工配置.自动配置.动态配置. DHCP最重要的功能就是动态分配.除

Python的网络编程[4] -> DHCP 协议 -> DHCP 的基本理论

DHCP协议 / DHCP Protocol 目录 DHCP 基本理论 DHCP 通信流程 DHCP 完整报文 DHCP 的 Optional 字段 DHCP 的报文类型 1 DHCP 基本理论 DHCP (Dynamic Host Configuration Protocol, 动态主机配置协议) 是一种局域网的网络协议,使用UDP协议进行工作,主要有两个用途,在RFC 2131中有详细的描述, 1. 给内部网络或网络服务供应商自动分配IP地址; 2. 给用户或者内部网络管理员作为对所有计算机