首页 > 其他 > 详细

DHCP协议报文分析

时间:2014-11-05 00:41:23      阅读:272      评论:0      收藏:0      [点我收藏+]

DHCP协议分析


一、DHCP简介

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

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

 


二、DHCP工作过程

  1.IP 地址动态获取过程

     bubuko.com,布布扣

   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 报文,表明地址不能分配给该客户端。

 

 

三、实验环境

  bubuko.com,布布扣

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报文格式

bubuko.com,布布扣

各字段的解释如下:

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.抓包分析

  bubuko.com,布布扣

 

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

  bubuko.com,布布扣

   源地址全0

 

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

  bubuko.com,布布扣

  报文包含申请到的IP地址  

 

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

  bubuko.com,布布扣

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

 

d.RT2回复DHCP-ACK 

  bubuko.com,布布扣

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

 

 

 

七、实验补充

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




本文出自 “kk1230” 博客,转载请与作者联系!

DHCP协议报文分析

原文:http://kk1230.blog.51cto.com/9108637/1571809

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!