一、DHCP
- DHCP,Dynamic Host Configuration Protocol,动态主机配置协议。
- DHCP的前身是BOOTP协议(Bootstrap Protocol),主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
- DHCP使用UDP传输,端口号是67和68。其中67端口是server使用,68端口是client使用。discover报文采用广播形式发出,所以跨网段时需要使用dhcp relay。
二、DHCP的报文
- 1、DHCP DISCOVER :客户端开始DHCP过程发送的包,是DHCP协议的开始
- 2、DHCP OFFER :服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息
- 3、DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用。
- 4、DHCP ACK :服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。
- 5、DHCP NAK :DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。
- 6、DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址
- 7、DHCP INFORM :客户端发出的向服务器请求一些信息的报文
- 8、DHCP DECLINE :当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止
使用该IP地址。
三、DHCP工作过程

- 1、主机发送DHCP DISCOVER广播包在网络上寻找DHCP服务器;
- 2、DHCP服务器向主机发送DHCP OFFER单播数据包,包含IP地址、MAC地址、域名信息以及地址租期;
- 3、主机发送DHCP REQUEST广播包,正式向服务器请求分配已提供的IP地址;
- 4、DHCP服务器向主机发送DHCP ACK单播包,确认主机的请求。
四、DHCP relay
当dhcp client启动并进行配置初始化时,它会在本地网络广播配置请求报文;
如果本地网络存在dhcp server,则可以直接进行dhcp配置,不需要dhcp relay;
如果本地网络没有dhcp server,则与本地网络相连的具有dhcp relay功能的网络设备收到该广播报文后,将进行适当处理并转发给指定的其它网络上的dhcp server;
dhcp server根据dhcp client提供的信息进行相应的配置,并通过dhcp relay将配置信息发送给dhcp client,完成对dhcp client的动态配置;