DHCP服务原理与自动获取实验

一、DHCP的概念

DHCP(Dynamic Host Configuration Protocol )——动态主机配置协议,专门用于为TCP/IP网络中的计算机自动废品TCP/IP参数的协议,属于应用层。

在现实场景中,就是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

使用DHCP服务可以为大量客户机自动分配地址,提供集中管理,从而减轻管理和维护成本、提高网络配置效率。

可分配的地址信息主要包括:网卡的ip地址、子网掩码;对应的网络地址、广播地址;默认网关地址;DNS服务器地址。

二、DHCP的租约过程

1.Discover——发现阶段,即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

2.Offer——提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息。

3.Request——请求(选择)阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

4.ACK——确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。

5.Relogin——重新登录。以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

6.Update——更新租约。DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。

三、DHCP的优势

  • 减少管理;
  • 避免输入错误;
  • 避免IP地址冲突;
  • 提高IP地址使用率;
  • 方便客户端配置。

四、DHCP的分配方式

  1. 自动分配:当DHCP客户机第一次成功从DHCP服务器获取到一个IP地址后就永久使用这个地址
  2. 手动分配:由DHCP服务器管理员专门指定IP地址;
  3. 动态分配:当DHCP客户机第一次成功从DHCP服务器获取到一个IP地址后,并非永久使用这个地址,而是每次使用完后,DHCP客户机就会释放这个IP地址,给其他客户机使用。(PS:我自己做实验验证的时候发现:当分配的IP地址范围足够大的的情况下,主机数不多时,无论释放与否都会获取到与之前一样的IP地址,而当范围极小,比如只有一个的情况下,一台客户机获取到时其他的是无法获取的,除非其释放之后另外一台renew时才能获取)

五、DHCP动态分配实验

实验环境:Windows10宿主机,一台win10虚拟机用作验证,一台Centos7作为服务器进行配置。

实验目的:验证DHCP动态分配IP地址,原先的win10虚拟机是其他网段或者169网段的,根据你配置连接模式而定,最终可以获取到你配置的能网段范围内的ip地址。

实验过程中注意的要点:

  1. 首先是网卡配置,两台虚拟机需要同一块网卡,添加网卡需要重启宿主机;
  2. 其次是防火墙的关闭与SELinux增强型安全功能关闭;
  3. 最后是配置文件之后务必重启对应的服务!

实验过程步骤如下:

(1)下载软件包

Linux网络服务之DHCP服务原理与自动获取实验

(2)换绑网卡

Linux网络服务之DHCP服务原理与自动获取实验

Linux网络服务之DHCP服务原理与自动获取实验

(3)查看软件包配置文件和配置静态IP地址

Linux网络服务之DHCP服务原理与自动获取实验

(4)关闭防火墙和SELinux,更改DHCP配置文件并启用dhcpd服务

Linux网络服务之DHCP服务原理与自动获取实验

(5)原来的win10的ip地址是无效ip

Linux网络服务之DHCP服务原理与自动获取实验

(6)更换win10测试机的网卡进行renew测试

Linux网络服务之DHCP服务原理与自动获取实验

Linux网络服务之DHCP服务原理与自动获取实验

Linux网络服务之DHCP服务原理与自动获取实验

六、总结

本文主要介绍的是DHCP的相关概念和分配ip的原理,以及使用DHCP服务的优势,最后结合一个实验来验证DHCP服务是如何动态分配ip的小实验。