定义:动态主机配置协议,主要在一些大型局域网络环境中,集中管理和分配IP地址,提升地址的使用效率。
DHCP协议采用CLIENT-SERVER方式实现,而且DHCP 协议是基于UDP层之上的应用,DHCP CLIENT将采用端口号68,DHCP SERVER采用端口号67进行交互。
DHCP的三种分配IP机制:
- 自动分配方式:DHCP服务器为主机指定一个永久性的IP地址。客户端一旦第一次成功租用IP过后,后面即可永久性使用次IP地址。
- 动态分配方式:DHCP服务器为主机指定一个具有时间期限的IP地址,到期或者客户端主动放弃该地址之后,即可被其他主机使用。
- 手工分配方式:IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
DHCP与BOOTP之间的关系:
DHCP消息的格式是基于BOOTP消息格式的,但是BOOTP要求主机的硬件地址必须被手工输入到BOOTP表中。可以讲DHCP看成一个动态的BOOTP。
DHCP协议报文的种类:
1:DHCPDISCOVER:client客户端开始DHCP过程的第一个报文
2:DHCPOFFER:server服务器对DHCPDISCOVER报文的响应
3:DHCPREQUEST:client客户端开始DHCP过程中对server的DHCPOFFER报文的回应,或者是client续延IP地址租期时发出的报文
4:DHCPDECLINE:当client发现server分配给它的IP地址无法使用,如IP地址冲突时,将发出此报文,通知server禁止使用IP地址
5:DHCPACK:server对client的DHCPREQUEST报文的确认响应报文,Client收到此报文后,才真正获得了IP地址和相关的配置信息。
6:DHCPNAK:server对client的DHCPREQUEST报文的拒绝响应报文,Client收到此报文后,一般会重新开始新的DHCP过程。
7:DHCPRELEASE:client主动释放server分配给它的IP地址的报文,当Server收到此报文后,就可以回收这个IP地址,能够分配给其他的client。
8:DHCPINFORM:client已经获得了IP地址,发送此报文,只是为了从DHCP SERVER处获取其他的一些网络配置信息,如route IP,DNS IP等,这种报文的应用非常少见。
流程如下图(学习他人jpg)
图1 DHCP的工作过程图
流程解析:
1. DHCPDISCOVER寻找服务器
客户端开机或第一次登录网络时,设备发现本机没有IP设定,就会广播寻找DHCP服务器客户端此时还不知道自己属于哪一个网路﹐所以封包的来源地址会为0.0.0.0,目的地址则为255.255.255.255,然后再附上DHCP discover的信息(mac地址),向网路进行广播。 网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
2. DHCPOFFER分配IP
DHCP服务器监听到客户端发出的DHCP Discover广播后, 会针对这个客户端的硬件地址 (MAC)与本身的设定数据来进行下列工作:
a. 到服务器的登录文件中寻找该用户之前是否曾经用过某个 IP ,若有且该 IP 目前无人使用,则提供此 IP 给客户机;
b. 若配置文件针对该 MAC 提供额外的固定 IP