DHCP原理与实现

2021-03-08  本文已影响0人  梁帆

DHCP,DNS和HTTP是3种常见的高层协议。

一、动态主机配置协议DHCP

1、DHCP简介

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。后面可以看到,在用Wireshark过滤显示DHCP包,需要输入过滤条件BOOTP,而不是DHCP,但或许是因为我使用的Wireshark版本是比较旧的1.12.9,没有在新版本中尝试过,也许可以输入DHCP让其只显示DHCP包。

2、DHCP的实现

交互图

DHCP的实现分为4步,分别是:

第一步:Client端在局域网内发起一个DHCP Discover包,目的是想发现能够给它提供IP的DHCP Server。

第二步:可用的DHCP Server接收到Discover包之后,通过发送DHCP Offer包给予Client端应答,意在告诉Client端它可以提供IP地址。

第三步:Client端接收到Offer包之后,发送DHCP Request包请求分配IP。

第四步:DHCP Server发送ACK数据包,确认信息。

3、linux上的实现过程

linux过程演示

从以上演示可以看出这四步的实现过程:

DHCPDISCOVER:DHCP客户端eth0这个网卡发起了一个广播,发送DHCPDISCOVER数据包,访问服务器端的67端口。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

第一步

DHCPOFFER:DHCP的服务器是192.168.199.254这个机器,服务器端发送DHCPOFFER数据包给用户端,表示可以提供192.168.199.130这个IP地址给它。在网络中接收到DHCPDISCOVER发现信息的DHCP服务器都会做出响应,然后从尚未出租的IP地址中挑选一个分配给DHCP客户机。

第二步

DHCPDISCOVER:DHCP用户端再次以发起广播的方式,正式向服务器请求分配已提供的IP地址(即192.168.199.130)。正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它所有发送DHCPOFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址。

第三步

       以广播方式回答,简单来说,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。此外,如果发送给DHCP客户端的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息。

DHCPACK:DHCP服务器端向DHCP客户端发送DHCPACK单播包,确认用户端的请求。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。

第四步
上一篇 下一篇

猜你喜欢

热点阅读