一、了解DHCP服务
1、概念
DHCP:动态主机配置协议,由internet工作任务小组设计开发,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议;使用的udp67、68端口,服务器端使用67/udp,客户端使用68/udp。
2、DHCP的好处
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
3、DHCP的分配
3.1、DHCP的分配方式
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:有DHCP服务器管理员专门制定IP地址
- 动态分配:使用完后释放该IP,供其他客户机使用
3.2、DCHP的可分配信息
- 网卡的ip地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
4、DHCP的工作原理(租约过程)
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程,分为四个步骤,见下图
①:客户端从零开始,所以源ip:0.0.0.0,不知道目标ip,所以需要发广播,目标地址:255.255.255.255,源端口:68,目标端口:67;
②:客户端发现DCHP服务器,源ip:DHCP服务器,仍需要发送广播,目标ip:255.255.255.255,源端口:67,目标端口offer同时携带ip地址、网关、dns等参数;
③:因为广播域中不止存在一台DHCP服务器,有多台DHCP都向服务器发送的offer时,客户端需要发广播,源ip:0.0.0.0,目标ip:255.255.255.255,且默认服务器确认收到的第一个offerr,其余offer不接收,源端口:68,目标端口:67;
④:是服务器需要跟客户端再次确认IP地址,所以还是发广播。第四步结束之后才获得IP地址。
再三广播确认是因为使用的是UDP协议,UDP协议本身是不稳定的,需要再三确认;若使用的TCP协议的话,本身TCP协议的搭建在三次握手的基础上,在很稳定的基础上就可以直接获得ip地址。
5、DHCP的租期
租期是整个DHCP过程的基础,DHCP服务器提供每个IP地址都有相应的租用期。
- IP租约期限到达50%时,DHCP客户端就会请求更新IP地址租约;
- DHCP客户端在租约期限到达87.5%时,还没有收到服务器相应,会申请重新绑定IP;
- 如果IP租约到期前都没有收到服务器的响应,客户端停止使用此IP地址;
- 如果DHCP客户端不再使用分配的IP地址,也可以主动向DHCP服务器发送DHCP RELEASE 报文,释放该IP地址
需要说明一点的是,并不是到87.5%就释放了,若回应UNack,先回到RELEASE,时间到了100%,IP地址释放,再回到DISCOVER状态。
6、DHCP的优点
- 为大量客户机自动分配地址,提高集中管理
- 减轻管理和维护成本,提高网络配置效率
7、配置文件-租约配置文件、dhcp日志目录
7.1、租约配置文件
/var/lib/dhcpd/dhcpd.leases #查看租约配置文件
随dhcp安装就有的,但是没有获得dhcp的ip是不通的
7.2、dhcp的日志目录
/var/log/messages
tail -100 /var/log/messages:查看后一百条日期内容
二、安装DHCP服务器
1、安装步骤
2、结合试验
2.1、安装DHCP并启用服务,并要求虚拟windows10可以获得IP地址,同时可以连接其余虚拟机
- 关闭防火墙和网络管理服务
systemctl stop firewalld.service #关闭防火墙
systemctl stop NetworkManages # 关闭网络管理服务
- yum安装DHCP,需要设置虚拟机为net模式,可以上网下载
- 添加一款新的网卡(可添加可不添加,不添加就用本身的网卡)
vim /etc/sysconfig/network-scripts/ifcfg-ens37
cp -p /etc/sysconfig/network-scripts/ifcfg-ens37 /etc/sysconfig/network-scripts/ifcfg-ens37.nat # 备份网卡ens37
- 更改网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens37
systemctl restart network # 重启网络服务
主要更改配置文件必须重启网络
这时ifconfig查看接口信息,发现ens37的ip地址已存在
- 查看dhcp的配置文件 /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf #编辑配置文件
发现配置文件内只有以下内容,并没有配置相关的内容;告知需要访问/usr/share/doc/dhcp*/dhcpd.conf
vim /usr/share/doc/dhcp*/dhcpd.conf #发现配置文件内容在里面
把内容复制到dhcp的配置文件内
这时再次打开配置文件vim /etc/dhcp/dhcpd.conf
6. 编辑网卡配置文件的内容
配置文件里面看到sunet这个单词,说明:单词以下是局部的,以上部分是全局的
subnet:声明;声明一个网段;给客户端分配哪个网段地址
range:配置地址池
option domain-name:全局已经配置过,局部就不用配置了;若是全局和局部都定义了,生效是按照局部生效
option routers:网关
option broadcast-address:广播地址可配可不配
7. 修改完配置文件启动服务,并验证端口是否开启
systemctl start dhcpd
8. 设置windows相关系统配置
设置仅主机模式,使其无法上网
给windos10,配置自动获取地址
ifconfig,获取不到结果
那就释放ip地址再重新获取
ipconfig /release
ipconfig /relnew
这时windows已经获取了DHCP的ip
2.2、使得DHCP服务器可以与其他虚拟机相连
1、这时更换一个网卡ens33,更改配置文件
/etc/sysconfig/network-scripts/ifcfg-ens33:配置BOOTPROTO为dhcp
重启网络服务
这时即可与其他虚拟机相连
2.3、DHCP服务器配置固定IP
- 配置mac地址(物理地址)
查询虚拟windows上的物理地址,并进行绑定
编辑主配置文件
vim /etc/dchp/dchpd.conf
“-”改成“:":
host里面配置的ip超出subnet的地址池没有关系,但是要在同一个网段
然后重启网络服务,检测端口
这时要释放之前的再重新获取
2.4、虚拟机抓包演示
- 更改ens37虚拟机为net模式,并修改其配置文件
安装抓包软件 yum -y install wireshark*
把另一个网卡ens33改为net模式,ens33的配置文件的网关跟net模式设置的网关要保持一致
net设置是固定的,若ens33配置文件内的网关配置错了是无法连上网络的
虚拟机上–应用程序–互联网–打开抓包软件
抓包用bootp
这时在windows上,ipconfig /renew查询, wireshark工具筛选出DHCP,需要输入bootp;下图所示,网卡ens37配置的是192.168.88.10,还展示了dhcp的工作过程
这里讲解一个命令,可以查看dhcp的状态
dhclient -d ens33 #查询网卡ens33的dhcp状态
2.5、虚拟机实现DHCP中继代理
两台客户机,一台服务机,是典型的C/S架构
- 想要dhcp虚拟服务器与二层交换机相连,需要双击cloud3,按照下图去配置,其中UDP是固定的,其次选择网卡对应的虚拟机类型
- 配置二层交换机四个端口
- 三层交换机作为中继器,需要开启dhcp:dhcp enable
并且开启中继模式 dhcp select relay
进入vlan 10 、vlan20,vlan192,配置开启中继模式
配置指向服务端的ip,即网卡ens37的ip
pc1和pc2选择dhcp
-
虚拟机配置地址池
进入配置文件:vim /etc/dhcp/dhcpd.conf
把pc1和pc2 两台客户机的网段、ip地址池、网关配置好
-
重启网络服务和查看端口已开启
-
增加网卡ens37的网关
route -n 查询一下,发现ens37的网关已经增加上去
重启网络服务
-
这时在pc1上面 获取下ip,获取到dhcp的ip:最好先释放(ipconfig /release),再获取ip(ipconfig /renew),如下图,已获得网ip地址
转载:https://blog.csdn.net/weixin_56667320/article/details/117089318