DHCP
全称:Dynamic Host Configuration Protocol
动态主机设置协议
是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;给用户用于内部网管理员作为对所有计算机作中央管理的手段。
功能:
通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:
- 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
- DHCP应当可以给用户分配永久固定的IP地址。
- DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
- DHCP服务器应当向现有的BOOTP客户端提供服务。
DHCP有三种机制分配IP地址:
1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。
工作原理:
DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的68号端口,DHCP服务器回应应答消息给主机的67号端口。
1、DHCP Client以广播的方式发出DHCP Discover报文。
2、所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。
注:DHCP Offer报文含有DHCP Server能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址也放在其中,用于区分不同DHCP Server。
3、DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。
DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
4、DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
5、DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。
6、DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。
centos7部署DHCP服务
一、系统环境:
平台:VMware workstation 14
centos 7.4系统
网络使用的是仅主机模式
ip地址:192.168.80.100
使用yum方式安装dhcp服务,此处使用的是本地yum源。
注:使用本地yum源,需要挂载光盘
如上图,/dev/sr0就是光盘。
二、开始部署dhcp服务:
1、关闭防火墙以及selinux
[root@lq1 ~]# systemctl stop firewalld
[root@lq1 ~]# setenforce 0
2、使用yum安装dhcp服务:
yum install -y dhcp
3、修改配置文件
vi dhcpd.conf
如图,进入配置文件中,里面什么内容都没有。
但是,里面告诉我们一个配置文件的模版:
/usr/share/doc/dhcp*/dhcpd.conf.example
可以将这个模版里面的内容拷贝过来
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
修改配置文件:
subnet 192.168.80.0 netmask 255.255.255.0 { ##网段和掩码
range 192.168.80.50 192.168.80.90; ##地址范围
option domain-name-servers 202.96.128.166; ## dns服务器地址
option domain-name "rosen.com"; ##该网段的域名,可以省略
option routers 192.168.80.2; ##网关
option broadcast-address 192.168.80.255; ##广播地址
default-lease-time 300; ## 租约时间
max-lease-time 7200; ## 最大租约时间
}
注:每段配置项结尾,一定要有“;”结尾,否则会报错
4、启动dhcp服务:
[root@lq1 dhcp]# systemctl start dhcpd
5、查看dhcp状态,看udp的67端口有没有起来。
6、验证
这里我开启一台windows7 虚拟机来验证,但注意的是,要让windows与dhcp服务器在同一个模式下,不然获取不到ip地址。
在windows 7中设置如下:
如图,一定全部设置自动获得。
在详细信息中可以看到,windows 7 网卡中的很多信息都是我们在dhcp中设置的。
也可以在centos 7系统中查看:
cat /var/lib/dhcpd/dhcpd.leases
从上图可以看出,win 7的mac地址 00:0c:29:53:30:50,以及租约时间。
到此,dhcp搭建成功。
三、为目标指定一个固定的ip地址
此处,为windows 7 指定一个固定ip地址192.168.80.188
1、修改dhcp配置文件
vi /etc/dhcp/dhcpd.conf
末尾新增:
host win7 { ----主机声明,host后面的内容自定义
hardware ethernet 00:0c:29:53:30:50; ----指定其它pc(打印机)mac地址
fixed-address 192.168.80.188; ----固定地址
}
2、重启dhcp服务:
[root@lq1 dhcp]# systemctl restart dhcpd
3、验证:
将本地连接,先禁用,再启用。
转载于:https://blog.51cto.com/13496696/2358884