DHCP协议

DHCP是一种网络协议,用于自动分配IP地址和相关网络配置,减少了管理员的工作量并优化了IP地址管理。协议基于UDP,包括自动分配、动态分配和手动分配三种方式。DHCP交互过程涉及DHCPDISCOVER、DHCPOFFER、DHCPREQUEST和DHCPACK等报文交换,确保客户端能获取和更新IP租约。
摘要由CSDN通过智能技术生成

一、DHCP协议概述

1、DHCP

        DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。该协议为网络中计算机自动分配TCP/IP参数(IP地址、子网掩码、网关、DNS等)

DHCP 协议是基于UDP层之上的应用

2、DHCP分配方式

  • 自动分配:分配到一个IP地址后永久使用(固定配置)
  • 动态分配:使用完后释放该IP,供其它客户机使用
  • 手动分配:由DHCP服务器管理员专门指定IP地址(在服务器上进行IP/MAC绑定)

3、DHCP服务的好处

1、减少管理员的工作量
2、方便客户端的配置
3、提高了IP地址的利用率
4、当网络更改IP地址段时,不需要再重新配置每个用户的IP地址
5、避免护地址冲突
6、避免输入错误的可能

 二、DHCP交互过程

         DHCP使用客户服务器方式。需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文(DHCPDISCOVER)(将目的IP地址置为全1,即255.255.255.255),这时该主机就成为DHCP客户。

发送广播报文是因为现在还不知道DHCP服务器在什么地方,因此要发现(DISCOVER)DHCP服务器的IP地址

        由于这台主机目前还没有自己的IP地址,因此它将IP数据报的源IP地址设为全0。这样,在本地网络上的所有主机都能够收到这个广播报文,但只有 DHCP 服务器才对此广播报文进行回答。

        DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池(address pool)中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCPOFFER),表示“提供”了IP 地址等配置信息。

        DHCP的详细工作过程如图所示。DHCP客户使用的 UDP 端口是68,而DHCP服务器使用的 UDP 端口是 67。这两个 UDP 端口都是熟知端口。

1、DHCP服务器被动打开UDP端口67,等待客户端发来的报文

2、DHCP客户从UDP端口68发送DHCP发现报文

3、凡收到DHCP发现报文的DHCP服务器都发出DHCP提供报文,因此DHCP客户可能收到多个
DHCP提供报文

4、DHCP客户从几个DHCP服务器中选择其中的一个,并向所选择的DHCP服务器发送DHCP请求
报文

5、被选择的DHCP服务器发送确认报文DHCPACK。从这时起,DHCP客户就可以使用这个IP地址了。
这种状态叫做已绑定状态,因为在DHCP客户端的IP地址和硬件地址已经完成绑定,并且可以开始使用
得到的临时IP地址了。DHCP客户现在要根据服务器提供的租用期T设置两个计时器T1和T2,它们的超时
时间分别是0.5T和0.875T。当超时时间到了就要请求更新租用期

6、租用期过了一半(T1时间到),DHCP发送请求报文DHCPREQUEST要求更新租用期

7、DHCP服务器若同意,则发回确认报文DHCPACK。DHCP客户得到了新的租用期,重新设置计时器。

8、DHCP服务器若不同意,则发回否认报文DHCPNACK。这时DHCP客户必须立即停止使用原来的IP地址,
而必须重新申请IP地址(回到步骤2)。

若DHCP服务器不响应步骤6的请求报文DHCPREQUEST,则在租用期过了87.5%时(T2时间到),
DHCP客户必须重新发送请求报文DHCPREQUEST(重复步骤6),然后又继续后面的步骤。

9、DHCP客户可以随时提前终止服务器所提供的租用期,这时只需向DHCP服务器发送释放报文 
DHCPRELEASE 即可。

        如果每一个网络上都设置一个 DHCP 服务器,因为这样会使 DHCP 服务器的数量太多。因此现在是使每一个网络至少有一个DHCP中继代理(relay agent),它配置了DHCP 服务器的IP 地址信息。当DHCP 中继代理收到主机 A以广播形式发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机A。

三、DHCP报文格式

  • DHCP报文字段

DHCP服务的8种报文的格式是相同的,不同类型的报文只是报文中的某些字段取值不同

报文字段说明:

  • Message type:消息类型(1表示请求,2表示响应)
  • Option:参数字段,包含报文的类型、有效租期、DNS服务器的IP地址、WINS服务器的IP地址等配置信息。
  • Magic cookie:固定字节流,当server看到这个Magic cookie固定字节流后,就能知道后面是options field
  • Client hardware address padding:客户端硬件地址填充
  • Client MAC address:客户端MAC地址
  • Relay agent IP address:中继代理IP地址
  • Next server IP address:DHCP客户端获得启动配置信息的服务器的IP地址
  • Your(client)IP address:服务器分配给客户端的IP地址。当服务器进行DHCP响应时,将分配给客户端的IP地址填入此字段
  • Client IP address:客户机 IP 地址
  • Bootp flags:此字段在BOOTP中保留未用,在DHCP中表示标志字段
  • Seconds elapsed:由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数,目前没有使用,固定为0
  • Transaction ID:事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配;该ID由客户端设置并由服务器返回,为32位整数
  • Hops:表示当前的DHCP报文经过的DHCP中继的数目。该字段由客户端或服务器设置为0,每经过一个DHCP中继时,该字段加1;此字段的作用是限制DHCP报文所经过的DHCP中继数目
  • Hardware address length:硬件地址长度
  • Hardware type:硬件类型(以太网接口类型为1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值