手把手教你搭建DHCP服务器
目录
DHCP实现原理
DHCP定义
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。它是一种流行的Client/Server协议,一般用于为主机或者为路由器等指定相关的配置信息。DHCP服务在企业和家庭中得到了大量的应用,它能够自动分配ip地址以及一些其他的相关信息,整个过程对客户透明。
DHCP分配方式
- 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
- 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
- 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
DHCP工作过程
DHCP客户机在启动时,会搜寻网络中是否存在DHCP服务器。如果找到,则给DHCP服务器发送一个请求。DHCP服务器接到请求后,为DHCP客户机选择TCP/IP配置的参数,并把这些参数发送给客户端。 如果已配置冲突检测设置,则DHCP服务器在将租约中的地址提供给客户机之前会使用Ping测试作用域中每个可用地址的连通性。这可确保提供给客户的每个IP地址都没有被使用手动TCP/IP配置的另一台非DHCP计算机使用。
根据客户端是否第一次登录网络,DHCP的工作形式会有所不同。
初次登录
初次登录时DHCP工作包括四个步骤
1、寻找DHCP服务器
当DHCP客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover发现信息来寻找DHCP服务器,即向255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。
2、分配IP地址
在网络中接收到DHCP discover发现信息的DHCP服务器就会做出响应,它从尚未分配的IP地址池中挑选一个分配给DHCP客户机,并向DHCP客户机发送一个包含分配的IP地址和其他设置的DHCP offer提供信息。
3、接受IP地址
DHCP客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。
4、IP地址分配确认
当DHCP服务器收到DHCP客户端回答的DHCP request请求信息之后,便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户端可以使用它提供的IP地址。然后,DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的DHCP服务器外,其他的DHCP服务器将收回曾经提供的IP地址。
重新登录
以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。
1、如果客户端DHCP request 内的IP地址在服务器端没有被使用,DHCP服务器回复DHCP ACK继续使用IP。
2、如果客户端DHCP request 内的IP地址在服务器端已被使用,DHCP服务器回复DHCP NACK告诉客户端IP已被使用。
3、回复NACK后,重新开始DHCP初次登录时的流程
更新租约
DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限到达租约的50%时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。
搭建DHCP服务器
实验目的
手动搭建一台DHCP服务器,使其达到该网段内的所有主机,都能通过该服务器自动获取ip地址,并且获取到的ip地址是自己在DHCP服务器上所指定的网段
实验环境
操作系统:CentOs7
工具:VMvare软件
实验步骤
1、在CentOS7上安装DHCP软件包
[root@CentOs7 ~]# yum -y install dhcp
2、修改DHCP的配置文件
[root@CentOs7 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
将样板拷贝到并替换配置文件。
在配置文件中加入这么一段
subnet 172.25.0.0 netmask 255.255.0.0{
range 172.25.0.50 172.25.0.253;
}
其中subnet 和netmask分别代表网段号和子网掩码号。可以按需求选择三种private ip中的任意一种。
range代表你要划分的ip池的范围。
3、关闭VMvare自带的dhcp服务器,如下所示,然后所有需要分配ip的主机都使用这一张网卡。
例如,我们图中所示的例子。我使用的是VMNET网卡2来进行相关的配置。
我们取消掉该网卡的DHCP服务,并且让所有主机都接入这张网卡。
4、服务机上启动DHCP服务器
[root@CentOs7 ~]# systemctl start dhcpd.service
5、Client上重新启动网卡
[root@CentOs7 ~]# systemctl restart network
实验结果
每台主机都得到了指定范围的ip地址,我们使用pssh命令查询我所开的四台客户端的情况,如图所示:
这四台客户机的ip刚好是我们在配置文件中分配的ip!0