一、DHCP协议
为了实现客户端/服务器模型的自启动功能,需要使得连接到网络的计算机知道自己的IP地址。但对于无盘站,这是不可能实现的,因此TCP/IP协议族为解决这个问题,先后出现了三种方案。
1、RARP(反向地址解析协议)存在三个缺陷
- RARP工作在底层,必须直接访问硬件
- RARP的响应中信息量太少
- RARP使用计算机的硬件地址识别机器,无法用于动态分配的网络。
2、BOOTP:是一种引导协议,基于IP/UDP协议,是DHCP协议的前身。BOOTP用于无盘工作站的局域网中,通过BOOTP协议可以为局域网中的无盘工作站从中心服务器上获得动态IP地址,可以看成是简单版的DHCP,是对主机的静态配置,而DHCP可以依据一些策略对主机进行动态配置。
3、DHCP(动态主机配置协议)
- DHCP报文除了可以获取IP地址外,还能够获取子网掩码。
- DHCP允许计算机快速、动态地获得IP地址。
- 报文通过UDP传输的,所以是不安全的。
二、DHCP三种地址分配类型:
- 手动分配:手工方法配置DHCP客户机的IP地址。当客户机要求网络服务时,DHCP服务器把手工配置的IP地址传递给DHCP客户机,服务器采用此分配方法。
- 自动分配:当客户机第一次向DHCP服务器租用到IP地址后,这个地址就永久地分配给了该DHCP客户机,而不会再分配给其他客户机。
- 动态分配:当客户机向DHCP服务器租用IP地址时,服务器只是暂时分配给客户机一个IP地址。只要租约到期,这个地址就会还给DHCP服务器,以供其他客户机使用。
三、DHCP的优点
- DHCP 避免了手动键入值而引起的配置错误。
- DHCP 防止重复分配IP地址而引起的地址冲突。
- 使用 DHCP 服务器可以大大降低用于配置和重新配置网上计算机的时间。
- 方便使用移动或便携式计算机频繁更改位置的用户。
四、DHCP工作过程
1、广播DHCPdiscover。客户端广播一个DHCPdiscover消息到本地网络,确定任何可用的DHCP服务器。
2、响应DHCPoffer。DHCP服务器发送DHCPoffer消息给客户端。DHCPoffer消息包含了一系列DHCP配置参数和DHCP作用域的可用IP地址。如果DHCP服务器上有一个保留IP地址与客户端的MAC地址匹配,那么它会为客户端提供这个保留的IP地址。可能会有超过一个的DHCP服务器应答客户端。客户端接受的是最先收到的DHCPoffer。
3、响应DHCPrequest。DHCP客户端响应其中一个DHCPoffer消息,请求包含在DHCPoffer消息中的IP地址。
4、DHCPack确认。如果DHCP客户端请求的IP地址仍然有效,DHCP服务器使用DHCPack确认消息应答。现在客户端可以使用这个IP地址(默认租约为8天)。客户机在接收到DHCP ACK后,会向网络发送三个针对此IP地址的ARP解析请求以执行冲突检测,查询网络上有没有其它机器使用该IP地址;如果DHCP客户端发现分配的IP地址已经被使用,则向DHCP服务器发出DHCP Decline报文,通知DHCP 服务器禁用这个IP地址,然后DHCP客户端开始新的地址申请过程。

5、当租约过一半时,客户机会自动更新租约;当租约过了87.5%时,客户机仍然无法联系到当初的DHCP服务器,就会联系其他服务器,如果仍无法联系到, 将会停用IP。
6、四次申请之后,如果仍未能收到服务器的回应,则运行Windows 的DHCP客户机将从169.254.0.0/16这个自动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他操作系统的DHCP客户机将无法获得IP地址。
例:下面是DHCP协议工作的4种消息,正确的顺序应该是( ①②③④ ) 。
① DHCP Discovery ② DHCP Offer
③ DHCP Request ④ DHCP Ack

例:当客户端收到多个DHCP服务器的响应时,客户端会选择( A )地址作为自己的IP地址。
A.最先到达的
B.最大的
C.最小的
D.租期最长的
例:当DHCP服务器拒绝客户端的IP地址请求时发送( D )报文。
A.DhcpOffer
B.DhcpDecline
C.DhcpAck
D.DhcpNack
例:若一直得不到回应,DHCP客户端总共会广播 ( B )次请求。
A.3
B.4
C.5
D.6
五、DHCP客户端相关命令
ipconfig /all 查看客户机TCP/IP的详细配置信息;
ipconfig /release 手工释放IP地址;
ipconfig /renew 向DHCP服务器重新申请IP地址。
六、DHCP服务器中继代理
DHCP客户端向DHCP服务器发送的IP地址租用请求是不能够跨越路由器的(除非路由器支持RFC1542标准),如果想利用一台DHCP服务器给多个物理网段的计算机分配IP地址,就要在没有DHCP服务器的网段创建一个DHCP服务器中继代理。

它可以将本网段内客户端的IP地址租用请求发给DHCP服务器,起到一个“中继”作用。
要将Windows服务器设置为DHCP中继代理,只需在“路由和远程访问–工具”中添加一个名为“DHCP中继代理程序”的新路由选择协议。
例:下列关于DHCP服务的叙述中,正确的是( D)。
A. 一台DHCP服务器只能为其所在网段的主机分配IP地址
B. 对于移动用户设置较长的租约时间
C. DHCP服务器不需要配置固定的IP地址
D. 在Windows 客户机上可使用ipconfig/release释放当前IP地址
例:采用DHCP动态分配IP地址,如果某主机开机后没有得到DHCP服务器的响应,则该主机获取的IP地址属于网络( D )。
A. 192.168.1.0/24
B. 172.16.0.0/24
C. 202.117.0.0/16
D. 169.254.0.0/16
七、DHCP服务器配置
- 通过“服务器管理器”->”角色”,来安装DHCP服务。
- 配置DHCP服务。
八、Linux DHCP服务器的配置
Linux下默认安装DHCP服务的配置文件为/etc/dhcpd.conf。
ddns-update-style none;
default-lease-time 21600; //默认租约时间(秒)
max-lease-time 43200; //最大租约时间(秒)
option domain-name “linuxde.net”; //域名服务器的名称
option domain-name-servers 192.168.3.200; //域名服务的ip地址
subnet 192.168.3.0 netmask 255.255.255.0 { //表示子网属性
range 192.168.3.100 192.168.3.200; //分配的ip地址范围
option subnet-mask 255.255.255.0; //分配ip地址的子网掩码
option routers 192.168.3.1; //网关为192.168.3.1
host server1 { //为某机器配置固定ip地址
hardware ethernet b0:c0:c3:22:46:81;
fixed-address 192.168.3.100;
}
}