DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),由Internet工作任务小组设计开发,专门用于为TCP/IP网络中计算机自动分配TCP/IP参数的协议。
DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。 默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
DHCP采用C/S架构,C-client(客户机),S-server(服务器),客户机/服务器架构
DHCP服务采用传输层UDP协议,客户机使用UDP协议的68端口,服务器使用UDP的67端口。
DHCP优点
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改lP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
DHCP的分配过程
客户机请求IP地址(DHCP Discover)
当一个DHCP客户机启动时,客户机还没有IP地址,客户机要通过DHCP获取一个合法的地址。 此时DHCP客户机以广播方式发送DHCP Discover报文发现信息来寻找DHCP服务器。
服务器响应(DHCP Offer)
DHCP服务器接收到来自客户机请求lP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机。 如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息(包含IP地址、子网掩码、DNS、租期等)。
客户机选择IP地址(DHCP Request)
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址, 之后广播发送DHCP Request消息,通告给局域网中所有的DHCP服务器,它选择了哪个DHCP服务器的哪个IP以及租约期限。 让未被选中的DHCP服务器,把未使用的地址收回。同时发出IP地址的DHCP服务器将该地址保留,该地址就不能再分配给另一个DHCP客户机。
服务器确定租约(DHCP Ack)
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。 当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化。
使用 DHCP动态配置主机地址
DHCP服务优点
- 为大量客户机自动分配地址,提供集中管理
- 减轻管理和维护成本、提高网络配置效率
可分配的地址信息主要包括
- 网卡的IP地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
DHCP报文
报文 | 说明 |
---|---|
DHCP Discover | 这是客户机首次登录网络时进行 DHCP 过程的第一个报文,用来寻找 DHCP 服务器。 |
DHCP OfferDHCP | 服务器用来响应DHCP DISCOVER报文,此报文携带了各种配置信息。 |
DHCP Request | 客户端初始化后,发送广播的 DHCP REQUEST 报文来回应服务器的 DHCP OFFER 报文。 客户端重启初始化后,发送广播的 DHCP REQUEST 报文来确认先前被分配的 IP 地址等配置信息。 当客户端已经和某个 IP 地址绑定后,发送 DHCP REQUEST 报文来延长 IP 地址的租期。 |
DHCP ACK | 服务器对客户端的 DHCP REQUEST 报文的确认响应报文,客户端收到此报文后,才真正获得了 IP 地址和相关的配置信息。 |
DHCP NAK | 服务器对客户端的DHCP REQUEST报文的拒绝响应报文,通知客户端无法分配合适的 IP 地址。 |
DHCP Decline | 客户端发送给服务器,指示地址已被使用,并且会重新向服务器申请地址。 |
DHCP Release | 客户端发送给服务器,主动释放服务器分配给它的IP地址,取消剩余租约时间。 |
DHCP Inform | 客户端发送给服务器,客户端已经获得了 IP 地址,发送此报文的目的是为了从服务器获得其他的一些网络配置信息,比如网关地址、DNS 服务器地址等。极少用到。 |
实例
设置DHCP服务器并分配地址(仅主机)
Linux虚拟机关闭防火墙和selinux。
安装 dhcp
将Linux虚拟机的网络模式改成仅主机模式。(若使用NAT则从此步开始无视之后的网络配置包括网卡配置但不包括dhcp配置)
修改网卡文件

替换dhcp配置文件
设置dhcp配置文件
win10虚拟机配置仅主机
在win10虚拟机中进行网络配置
设置完成,ip分配成功