1. 初识DHCP
1.1 DHCP的作用
在网络通信中,每一个设备需要与另外一方通信的前提是,它得有个IP地址,无论这个设备是PC、服务器还是路由器、交换机、防火墙。
正常来讲,我们可以给这些设备每个都手动配置一个IP地址,也就是我们所说的静态IP,所有的这些设备都支持静态IP。但需要一个一个得给这么多设备配置IP,那岂不是很麻烦,而且还容易出错。
这时候就该谈到我们的DHCP了,它是一个实时动态给设备分配IP地址的协议。需要获取IP的设备,叫DHCP客户端,比如Window、Linux等等。提供IP的设备我们称之为DHCP服务器,比如Window Server、Linux等等。
1.2 DHCP的发展
其实最早提供IP地址的协议是叫bootp,在v2.x.x的wireshark中,抓包过滤DHCP的包还是以bootp为关键字。后来由于bootp的一些问题,才重新设计了DHCP协议,而这主要是针对IPv4的,所有称之为DHCPv4协议。随着IPv4往IPv6发展,我们的DHCP协议,也有个新版本,即DHCPv6协议。
本文先讲DHCPv4协议,DHCPv6另一篇文档再讲。
1.3 DHCPv4与OSI模型
DHCPv4协议在OSI模型中属于应用层协议,底层是传输层UDP。 它占用了UDP的两个知名端口,客户端使用68/udp,服务器使用67/udp,这一点与其他应用层协议不一样。如下图,以DHCPv4 Discover报文为例。