概念
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。
建立条件
1、拥有真实物理网卡,或者连接广播域的真实物理网卡;
2、该接口或者该物理网卡必须有一个合理的ip地址;
Firstinput firstoutput 先进先出的问题,所以有两台dhcp服务器时使用的是最先用最先配置的dhcp服务器
DHCP有三种机制分配IP地址
自动分配方式(Automatic Allocation)
DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
动态分配方式(Dynamic Allocation)
DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
手工分配方式(Manual Allocation)
客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
工作原理
DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口。详细的交互过程如下图。
(1)客户端:利用广播数据包发送搜索DHCP服务器(dhcp discover)
若客户端网络设置使用DHCP协议取得IP,则当客户端开机或者是重新启动网卡时,客户端主机会发送出查找DHCP服务器的UDP数据包(discover)给所有物理网段内的计算机。因为客户端还不知道自己属于哪一个网络,所以该数据包的来源地址会为0.0.0.0,而目的地址则为255.255.255.255。一般主机接收到这个数据包之后会直接丢弃,若局域网内有DHCP服务器,则会开始后续行为。
(2)服务器端:提供客户端网络相关的租约以供选择。(dhcp offer)
DHCP服务器在监听到客户端发出的dhcp discover广播后,会针对这个客户端的硬件地址( MAC)与本身的设置数据进行下列工作:
到服务器的日志文件中查找该用户之前是否曾经租用过某个IP,若有且该IP目前无人使用,则提供此IP给客户端。
若配置文件针对该MAC地址提供特定的固定IP时,则提供该固定的IP给客户端。
若不符合上述两个条件,则随机选取当前没有被使用的IP参数给客户端,并记录下来。
(3)客户端:决定选择DHCP服务器提供的网络参数租约并向服务器确认。(dhcp request)
由于局域网内可能并非仅有一台DHCP服务器,但客户端仅能接收一组网络参数租约,因此客户端只会挑选其中一个DHCP offer(通常是最先抵达的那个)。当决定好使用此服务器的网络参数租约后,客户端便开始使用这组网络参数来配置自己的网络环境。此外,客户端会发送一个dhcp request广播数据包给所有物理网段内的主机,告知已经接受该服务器的租约(此时若有两台以上的DHCP服务器