DHCP

百般思念 提交于 2019-12-05 19:13:32

------------恢复内容开始------------

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,使用udp协议进行工作,可以为局域网的客户端动态的分配IP地址。DHCP协议有常用的三个端口,分别为67,68和546。其中67和68号端口为DHCP Server和DHCP Client的端口,546用于DHCP Failover,需要单独开启,主要用于双机热备。

DHCP分配方式

DHCP的分配方式分为三种,分别是静态分配,自动分配和动态分配。

静态分配:管理员选择分配的IP地址,由DHCP服务器发送给客户端。这种方式为永久分配,DHCP服务器通过相关的配置将客户端MAC地址与分配的IP地址对应。

DHCP服务器配置如下:

自动分配:服务器从其IP池内分配一个IP地址给客户端,在firewall,如果租期被指定为 Unlimited 则意味着该IP地址为永久分配,此种分配方式下客户端第一次向DHCP服务器申请到该IP地址后,便可永久使用该IP地址,该地址不可分配给其他客户端。

动态分配:DHCP收到客户端的IP地址后从IP pool中选择一个IP地址进行分配,该IP地址只在租约期内有效,超出租约期后若不再续约则会被收回,此种方式可以很好的自动重复使用IP地址。

DHCP服务器配置如下:

DHCP工作过程

1、DHCP Discover:客户端以广播形式发送DHCP Discover报文,该局域网内的所有DHCP服务器都可以收到此报文。

2、DHCP Offer:DHCP服务器收到客户端发送的DHCP Discover报文后,会从配置的地址池中选择一个IP地址预分配给客户端,该IP地址封装在DHCP offer报文内以广播形式发送给客户端。

3、DHCP Request:客户端会在收到的DHCP offer报文中选择一个IP,一般为第一个收到的DHCP offer报文,但此时客户端并不能使用该IP,需要以广播形式发送DHCP Request报文给DHCP服务器。

4、DHCP Ack:DHCP服务器收到后会查看客户端选择的是否为自己分配的IP地址,如果不是,则将IP地址放回地址池,等待下一次的客户端的申请。如果选择的是自己分配的IP地址,则广播发送DHCP ACK报文给客户端,并在服务端将客户端的MAC地址和IP地址进行绑定。

5、客户端收到该报文后不会立即使用,而是利用ARP进行探测该地址是否被其他客户端所使用,如果在超时时间内没有得到回应,则客户端使用该IP地址,如果得到ARP回应,则发送DHCP DECLINE包给DHCP服务器,然后重复上述流程,向DHCP服务器申请IP地址。

DHCP客户端重新启动后不需要再发送DHCP Discover报文进行地址申请,它进行和续约类似的操作。

上述工作过程通过tcpdump抓取到的报文如下:

 

 

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,使用udp协议进行工作,可以为局域网的客户端动态的分配IP地址。DHCP协议有常用的三个端口,分别为67,68和546。其中67和68号端口为DHCP Server和DHCP Client的端口,546用于DHCP Failover,需要单独开启,主要用于双机热备。

DHCP分配方式

DHCP的分配方式分为三种,分别是静态分配,自动分配和动态分配。

静态分配:管理员选择分配的IP地址,由DHCP服务器发送给客户端。这种方式为永久分配,DHCP服务器通过相关的配置将客户端MAC地址与分配的IP地址对应。

DHCP服务器配置如下:

自动分配:服务器从其IP池内分配一个IP地址给客户端,在firewall,如果租期被指定为 Unlimited 则意味着该IP地址为永久分配,此种分配方式下客户端第一次向DHCP服务器申请到该IP地址后,便可永久使用该IP地址,该地址不可分配给其他客户端。

动态分配:DHCP收到客户端的IP地址后从IP pool中选择一个IP地址进行分配,该IP地址只在租约期内有效,超出租约期后若不再续约则会被收回,此种方式可以很好的自动重复使用IP地址。

DHCP服务器配置如下:

DHCP数据包格式

 

 

各字段含义如下:

op:报文类型,取值为1或2

1:客户端请求报文

2:服务器响应报文

Htype:硬件类型,1则表示以太网

Hlen:硬件地址长度,以太网的为6

Hops:表示当前客户端经过的中继数目,默认值为0,该值要小于等于16,大于16则会被标记为不可达。

Xid:为客户端随机挑选的随机数,用于与服务端发送的报文相对应

Secs:表示客户端获取地址或者地址租用后所用的时间,单位为s

Flags:标志为,前15为均为0,第16位表示该报文为广播还是多播

0:客户端以单播的形式发送报文给服务端

1:客户端以广播的形式发送报文给服务端

Ciaddr(client ip address):客户端IP地址。可以是服务端分配的IP地址也可以是客户端已有的IP地址,在客户端初始化状态该值为0.0.0.0。

Yiaddr(your client ip address):服务端即将分配给客户端的IP地址。在服务端进行响应时填充该字段。

Siaddr(server ip addr):客户端获取启动配置信息的IP地址。

Giaddr(gateway ip addr):第一个DHCP中继的IP地址。客户端和DHCP服务器不在同一个网段时,当客户端发送DHCP请求给第一个DHCP Relay服务器时,该服务器将自己的IP地址填充至该字段,服务器也是根据该地址进行响应报文的发送。

Chaddr(client hardware address):客户端的MAC地址。

Sname:可选,由服务器端填写,填充的为客户端获取配置信息的服务器名称。

file:可选,由服务器填写,该字段填充的是客户端需要获取的配置文件名称。

Options:DHCP选项字段。

由于DHCP协议具有局限性,只能与存在于同一网段的客户端进行通信并分配IP,为了解决这一问题,我们可以采用DHCP代理的方式,由其服务客户端和服务器端之间的报文中转。在客户端看来,DHCP代理服务器就是DHCP服务器,对于DHCP服务器来说代理服务器就是一个申请IP分配的客户端,下面简单介绍一下代理服务器进行中转报文的过程以及相关配置。

DHCP中继代理

DHCP中继代理应用于DHCP服务器和客户端不在同一网段的情况下IP地址的分配。DHCP Relay在收到客户端的DHCP Discover报文后会修改该报文中相应字段,并将报文由广播改为单播发送给指定的DHCP Server,其余报文的发送也由DHCP Relay服务器进行转发。对于客户端来说DHCP Relay服务器与DHCP Server服务器之间的通信是透明的,对于DHCP服务器来说DHCP Relay服务器与客户端之间的通信也是透明的。

架构图如下所示:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!