DHCP详解

1.DHCP简介

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),是一个应用层协议,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。

2.DHCP工作流程

这里写图片描述

2.1 DHCP Client发现阶段

DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送 DHCP discover发现信息来寻找DHCP服务器,源地址为0.0.0.0目的地址为255.255.255.255。网络上每一台安装了TCP/IP协议的主机 都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

2.2 DHCP Server提供阶段

DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的 IP地址和其他设置的DHCP offer信息。

2.3 DHCP Client选择阶段

DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

2.4 DHCP Server确认阶段

DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定。
另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回之前为其提供的IP地址。

2.5 DHCP Client重新登录

以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给 DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

2.6 DHCP Client更新租约

DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户 机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的 信息。

3.DHCP报文

这里写图片描述

3.1 报文内容

Op: 报文类型,分为 两大类: Request(1) 和 Reply(2)
HW Type: 硬件类型,一般是以太网:1
HW Len: 硬件地址长度,单位字节。对应以太网:6(mac地址长度为6字节48bit)
Transaction ID:事务ID,随机数,有客户端生成,服务器Reply时,会把Request中的Transaction拷贝到Reply报文中。
Secs: 距离第一次发射IP请求或Renew请求过去的秒数
Flags:标志位,目前仅第一个bit有使用,置1 标明广播
Client IP Address:当前客户端的IP地址,如果当前客户端没有IP地址,则置0
Your IP Address: 服务器想客户端提供IP地址时,会把IP地址填入本字段
(Next)Server IP Address:客户端引导时需要的另一个服务器的IP地址
Gateway (Relay) IP Address: 网关(中继)IP地址,有DHCP 中继器在转发DHCP报文的时候填入
Server Name: Server名字,有64bytes,一般不使用,填充为0
Boot File name: boot file的路径,128bytes, 一般不使用,填充为0
Option: 选项,不定长度。

3.2 Option字段

Option名称描述
0Pad填充位
1Subnet Mask子网 掩码
3Router Address路由器地址
6DNSDNS server
15DN域名
50Requested IP Address请求的IP地址
51Address Lease Time地址租约时间
53DHCP Message TypeDHCP消息类型,如Discover、Request、Offer、ACK等
54Server Identifier服务器标识
55Parameter Request List参数请求列表
56DHCP Error MessageDHCP 错误消息
58Lease Renewal Time租约续期时间
59Lease Rebinding Time租约重新设定的时间
61Client Identifier客户标识
119Domain Search List域名查找列表
255End结束

3.3 DHCP Message Type(53)

在DHCP Option中,我们着重看下DHCP Message Type(53),DHCP Message Type标识DHCP消息类型,主要有一下类型:

DHCP 消息类型对应的Option值
DHCPDISCOVER1
DHCPOFFER2
DHCPREQUEST3
DHCPDECLINE4
DHCPACK5
DHCPNAK6
DHCPRELEASE7
DHCPINFORM8
DHCPFORCERENEW9
DHCPLEASEQUERY10
DHCPLEASEUNASSIGNED11
DHCPLEASEUNKNOWN12
DHCPLEASEACTIVE13

4.抓包分析

详细的抓包分析可以参见Wireshark分析DHCP
举例:服务器用DHCP ACK包对DHCP请求进行响应
这里写图片描述
从上图可以看出,在数据包中包含以下信息,表示将这些资源信息分配给Client.
Your(client) IP address:分配给Client的可用IP。
DHCP Message Type(53):DHCP服务器发送的消息类型(ACK)
Subnet Mask:Client端分配到的IP的子网掩码;
Router:路由器
Domain Name Server:DNS,域名服务器
IP Address Lease Time:IP租用期

参考

DHCP通信原理详解
DHCP的基本实现原理
DHCP协议 详解
Wireshark分析DHCP

  • 13
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值