DHCP原理与配置
什么是DHCP
-
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议,是一个应用层协议,使用UDP的67和68端口。
-
DHCP的前身是BOOTP协议(BootstrapProtocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。
DHCP的好处
由于上网时间的不确定性以及使用人员的技术水平不同,为每位用户分配一个固定的IP地址,不仅造成了IP地址的浪费,也会为ISP服务商带来高额的维护成本。而使用DHCP服务有以下好处:
-
减少管理员的工作量
-
避免输入错误的可能
-
避免IP地址冲突
-
当更改IP地址段时,不需要重新配置每个用户的IP地址
-
提高了IP地址的利用率
-
方便客户端的配置
为什么使用DHCP
DHCP 服务避免了因手动设置 IP 地址所产生的错误,同时也避免了把一个 IP 地址分配给多台工作站所造成的地址冲突。DHCP 提供了安全、可靠且简单的 TCP/IP 网络设置,降低了配置 IP 地址的负担。
DHCP 是 C/S 模式,DHCP 服务端和客户端需要保持通信,DHCP 基于 UDP 协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。
DHCP的租约过程
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
分为4个步骤
客户机请求IP地址
- 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
- 此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
服务器响应
- DHCP服务器接收到来自客户机请求lP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
- 如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息
客户机选择lIP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
服务器确定租约
- DHCP服务器接收到DHCP Request消息后,以DHCPACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
- 当客户机收到DHCPACK消息时,配置IP地址,完成TCP/IP的初始化
重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCPDiscover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
使用DHCP动态配置主机地址
安装DHCP服务器
主配置文件
ddns-update-style interim; ###全局配置参数
subnet 192.168.100.0 netmask 255.255.255.0 { ###网段声明
option routers 192.168.100.1; ###配置选项
.....
default-lease-time 21600; ###配置参数
......
host hostname { #指定需要分配固定IP地址的客户机名称
hardware ethernet xx:xx:xx:xx:xx:xx; #指定该主机的MAC地址
fixed-address 192.168.100.100; #指定保留给该主机的IP地址
}
设置全局配置参数
[root@localhost /etc/dhcp]#vim dhcpd.conf
option domain-name "example.org" ; //指定默认搜索域,本地域名
option domain-name-servers ns1.example.org, ns2.example.org; //指定DNS 服务器地址,多台用逗号隔开
default-lease-time 600; //默认租约为600秒
max-lease-time 7200; //最大租约为2小时,在客户端没有特殊的租约时间请求的时候,都会统一的指派默认租约时间(多数情况)。如果客户端请求了自定义的租约时间,服务器将会启用最大租约时间作为限制,客户端自己请求的租约时间不能大于该值
ddns-update-style none; //禁用DNS 动态更新,提高DHCP的效率,减少带宽的使用,默认注释了
ignore client-updates: //与ddns-update-style设定相关,客户端可以通过DHcP服务器来更新DNs相关信息,这里暂时不予考虑,所以设置成igore.
subnet 网段声明(作用域整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.100.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 192.168.100.200 192.168.100.220; #设置地址池
option routers 192.168.100.254; #指定默认网关地址
}
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.120;
option routers 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.120;
option routers 192.168.2.254;
}
开启DHCP服务
systemctl start dhcpd #开启dhcp服务
systemctl stop firewalld #关闭防火墙
sentenforce 0 #关闭防火墙
netstat -naup | grep 67 #查看服务是否启动
tail -f /var/log/messages #如果启动失败,可以通过查看日志文件来排查错误
客户端验证:
ipconfig /release
ipconfig /renew
配置DHCP实验
1.进入vim /etc/dhcp/dhcpd.conf
2、添加以下4行,声明网段地址,设置地址池,指定默认网关地址,定义DNS服务器
3、重启一下dhcpd,然后查看状态是否开启
4、开启一台win10,按win+R进入cmd界面,然后ipconfig /release释放租约
5、ipconfig /renew重新申请IP地址,配置成功
拓扑图
1.ensp上设置云服务器主机
2、ensp上配置二层交换机LSW1
3、ensp上配置三层交换机LSW2(中继器)
接下来进入虚拟机来配置
配置网卡IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
2、点击网络适配器进行设置,选择自定义VMnet1(仅主机模式)
3、进入虚拟网络编辑器
4、打开自己电脑(不是虚拟机),点击网络适配器,更改VMnet1属性
5、更改完配置之后,打开虚拟机,此时虚拟机登不进去,必须用root登录。重启网卡,查看网卡信息。
6、安装DHCP
先rpm查看一下是否安装,没有安装就用yum install -y dhcp安装
7、备份dhcp的配置文件(/etc/dhcp/dhcpd.conf)
8、进入DHCP的配置文件,修改配置
9、配置获取完成后通过dhcp的ipconfig /release 来动态获取主机的IP地址,也可通过ipconfig /renew来刷新ip信息
Yp5nvqM-1655212133132)]
9、配置获取完成后通过dhcp的ipconfig /release 来动态获取主机的IP地址,也可通过ipconfig /renew来刷新ip信息
[外链图片转存中…(img-tMhVgoSy-1655212133132)]
[外链图片转存中…(img-kCWgAclu-1655212133133)]
[外链图片转存中…(img-PH8EtHnx-1655212133133)]