DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
1、 DHCP原理
1.DHCP Discover:Client开始DHCP过程中的第一个请求报文,源地址为 0.0.0.0,目的地址为 255.255.255.255,附有MAC地址和计算机名,向网络进行广播
2.DHCP Offer:Server对DHCP Discover报文的响应,提供IP地址
3.DHCP Request:Client对DHCP Offer报文的响应,选择IP 。客户端收到最先抵达DHCP Offer,并向网络发送一个DHCP Request广播封包
4.DHCP Declient:Client网络发送一个ARP 封包,发现Server分配给它的IP地址无法使用,如IP地址发生冲突时,将发出此报文让Server禁止使用这次分配的IP地址同时重新发送 DHCP Discover 信息
5.DHCP Ack:Server对 DHCP Request 报文的响应,Client收到此报文后才真正获得了IP地址和相关配置信息。
6.DHCP Nak:此报文是Server对Client的DHCP Request报文的拒绝响应,Client 收到此报文后,一般会重新开始DHCP过程。
7.DHCP Release:此报文是Client主动释放IP地址,当Server 收到此报文后就可以收回IP地址分配给其他的Client
8.DHCP使用UDP67和UDP68端口
2、DHCP工作过程:
3、DHCP报文类型
DHCP共有八种报文,分别为DHCP Discover、DHCP Offer、DHCP Request、DHCP ACK、DHCP NAK、DHCP Release、DHCP Decline、DHCP Inform。
DHCP Discover | DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。 |
DHCP Offer | DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关、DNS服务器等),构造一个Offer报文,发送给用户,告知用户本服务器可以为其提供IP地址。< 只是告诉client可以提供,是预分配,还需要client通过ARP检测该IP是否重复> |
DHCP Request | DHCP客户端可能会收到很多Offer,所以必须在这些回应中选择一个。Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器,并回应一个广播Request报文,通告选择的服务器。DHCP客户端成功获取IP地址后,在地址使用租期过去1/2时,会向DHCP服务器发送单播Request报文续延租期,如果没有收到DHCP ACK报文,在租期过去3/4时,发送广播Request报文续延租期。 |
DHCP ACK | DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录,如果有则发送ACK报文作为回应,通知用户可以使用分配的IP地址。 |
DHCP NAK | 如果DHCP服务器收到Request报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则发送NAK报文作为回应,通知用户无法分配合适的IP地址。 |
DHCP Release | 当用户不再需要使用分配IP地址时,就会主动向DHCP服务器发送Release报文,告知服务器用户不再需要分配IP地址,DHCP服务器会释放被绑定的租约。 |
DHCP Decline | DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的IP地址不可用。 |
DHCP Inform | DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端。< 极少用到> |
补充:
DHCP中继!