一、DHCP服务概述
DHCP全称是Dynamic Host Configuration Protocol(动态主机配置协议),该协议可以自动为局域网中的每一台计算机自动分配IP地址,并完成每台计算机的TCP/IP协议配置,包括IP地址、子网掩码、网关,以及DNS服务器等。
在DHCP机制中可以分为服务器和客户端两个部分,服务器使用固定的IP地址,在局域网中扮演着给客户端提供动态IP地址、DNS配置和网管配置的角色。客户端与IP地址相关的配置,都在启动时由服务器自动分配。
二、DHCP的工作原理
2.1 DHCP 租约的生成过程
DHCP客户端和服务器端申请IP地址、获得IP地址的过程一般分为4个阶段:
1.IP租约请求:DHCP client广播DHCPDISCOVER
2.IP租约提供:DHCP servers广播DHCPOFFER
3.IP租约选择:DHCP client广播DHCPREQUEST
4.IP租约确认:DHCP servers广播DHCPACK
(1)客户端发送广播向服务器申请IP地址。
(2)服务器收到请求后查看主配置文件dhcpd.conf,先根据客户端的MAC地址查看是否为客户端设置了固定IP地址。
(3)如果为客户端设置了固定IP地址,则将该IP地址发送给客户端。如果没有设置固定IP地址,则将地址池中的IP地址发送给客户端。
(4)客户端收到服务器回应后,客户端给予服务器回应,告诉服务器已经使用了分配的IP地址。
(5)服务器将相关租约信息存入数据库。
1.DHCP客户机发送完DHCPDISCOVER消息后,会等待DHCPOFFER消息,如果未能接受到DHCPOFFER,它就会重试4次(相隔2,4,8,16s,加上一个0到1000s之间的随机时间数)
2.如果DHCP客户机经过努力仍未获得任何有效服务器的IP地址将使用169.254.0.1~169.254.255.254这一保留地址中的一个IP地址(这也是帮助我们排错的一个根据)
3.每隔5分钟,该客户机都继续尝试发现一个DHCP服务器,如果有某个DHCP服务器成为可用,客户机将接受到合法的IP地址。
注意事项:若DHCP客户端获取的IP不是我们设置的服务器IP,则有可能是网络中其他DHCP服务器提供给DHCP客户端IP了,例如VMware就自带DHCP服务,如果要避免此类干扰,可以手动关闭该服务
2.2 DHCP 租约的自动更新过程
1.DHCP客户机在它们的租约期限已过去50%,自动尝试更新租约。
2.如果DHCP服务器可用,那么将更新。如果DHCP服务器不可用,客户机将继续使用它的当前配置。
3.当期限过去87.5% 发出广播再次更新租约。在这一阶段,DHCP客户机接受任何DHCP服务器发出的租约。如果租约已经到期(100%),客户机必须立即停止使用当前的IP地址。然后DHCP客户机开始新的DHCP租约过程,尝试租用新的IP地址。
人工手动更新租约:
如果需要立即更新DHCP配置信息,你可以使用人工方式更新IP租约。
Windows命令行实用工具:ipconfig /renew 和 ipconfig /release
三、DHCP服务器的配置与管理
3.1 DHCP 服务的安装
检测系统是否安装了DHCP相关软件 rpm -qa dhcp
默认情况下DHCP服务是没有安装的,需手动安装 yum install dhcp -y
在ubuntu中,默认软件包管理器不是yum,而是dpkg,安装软件时应使用apt-get
ubuntu下的命令:
检测是否安装了dhcp:
sudo dpkg -l dhcp3-server
sudo dpkg -l isc-dhcp-server
安装dhcp:sudo apt-get install dhcp3-server
3.2 /etc/default/isc-dhcp-server配置文件
DHCP服务的配置文件是:/etc/default/isc-dhcp-server
,用来配置DHCP服务器监听的网络接口。默认红色部分为"(服务器网卡)"
3.3 /etc/dhcp/dhcpd.conf配置文件
默认主配置文件(/etc/dhcp/dhcpd.conf)没有任何实质内容,打开查阅,发现里面有一句话“see /usr/share/doc/dhcp*/dhcpd.conf.example”。使用命令将
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
example文件内容复制到主配置文件中
3.3.1 配置文件声明
声明 {
选项或参数;
}
subnet 网络号 netmask 子网掩码 {.………} 作用: 定义作用域, 指定子网。
subnet 192.168.10.0 netmask 255.255.255.0 {
…………
}range dynamic-bootp 起始IP地址 结束IP地址 作用: 指定动态IP地址范围。
range dynamic-bootp 192.168.10.100 192.168.10.200
3.3.2配置文件参数
3.3.3 配置文件选项
选项内容都是以option关键字开始的。
option routers IP地址 作用: 为客户端指定默认网关。
option routers 192.168.10.254option subnet-mask 子网掩码 作用: 设置客户端的子网掩码。
option subnet-mask 255.255.255.0option domain-name-servers IP地址 作用:为客户端指定DNS服务器地址。
option domain-name-servers 192.168.10.1注意:以上三个选项可以用在全局配置中,也可以用在局部配置中。
3.3.4 IP地址绑定
host computer1{ //host 主机名, 用于定义保留地址
hardware ethernet 3a:b5:cd:32:65:12 //hardware类型硬件地址, 用于定义网络接口类型和硬件地址。常用类型为以太网(ethernet), 地址为MAC地址。
fixed-address 192.168.10.105 //fixed-address IP地址,用于定义DHCP客户端指定的IP地址
}
配置实例
配置完成后,需要重启dhcpd服务 systemctl restart dhcpd
四、DHCP客户端配置
4.1 linux客户端
完成上图操作,即关闭虚拟机自带的dhcp服务后,在终端输入以下命令重新获取ip地址
ifdown ens33
ifup ens33
4.2 windows客户端
Windows客户端没什么好讲的,这个比较简单,在TCP/IP属性中设置自动获取就可以。
在Windows命令提示符下,利用ipconfig可以释放IP地址后,重新获取IP地址。
释放IP地址: ipconfig /release。
重新申请IP地址: ipconfig /renew。