DHCP简介
DHCP是一个工作在应用层的局域网网络协议,数据传输时使UDP不可靠传输协议工作,通常被应用在大型的局域网络环境中, 主要作用是网络资源的分配,服务器的集中管理。(集中管理:DHCP服务端拥有分配资源的功能,所有被分配的服务器都要链接到DHCP服务端,那么DHCP服务端就可以作为终端管理机来管理这些服务器,可能DHCP服务端也是当前所在局域网的网关,那么所有服务器的数据包都要从DHCP服务器走才能出去,DHCP服务端就拥有是否允许数据包通过的权限。)
一、DHCP概述
DHCP协议
Dynamic Host Configuration Protocol ,动态主机配置协议
动态的进行IP地址分配
服务端的监听端口:67/udp
客户端监听端口:68/udp
网络架构:C/S
DHCP的优势
提高配置效率,减少配置错误
DHCP的分配方式
手动分配,自动分配,动态分配
应用场景
更加准确的配置网络参数的情况下,网络环境较大时。
注意:同一个网络环境下不允许存在多个DHCP服务器
二、工作流程
1、 当客户端配置为自动获得IP地址时,客户端发送discover广播包(发现),用来寻找网络中的DHCP服务器
2、假如网络存在DHCP服务器,此时服务器给出回应,向客户端发送Offer广播包,携带了IP地址的信息,询问客户端是否使用该IP地址
3、假如客户端使用上述IP地址,向服务端发送Request广播包,并将请求信息写入到该包内。
4、 服务端向客户端发送Ack广播包,并确定IP地址的租约期。
何时更新租约:当租约期达到50%时
当客户端重启后
客户端直接发送Request包
IP地址空闲:服务端直接回应Ack
IP地址被占用:服务端回应noAck(客户端需要将上述“工作流程”完整执行一遍)
客户端类型
Linux:DHCP服务器不存在,没有IP
Windows:DHCP不存在,会启用备用IP地址,169.254.0.0/16 ~ 168.254.255.255/16
实验报告(搭建DHCP)
基础环境(一个新的客户机,需要的一些基础配置)
配置yum源
cd /etc/yum.repos.d
mkdir backup
mv CentOS-* backup
vim local.repo(写入)
[local] name=local baseurl=file:///mnt enabled=1 gpgcheck=0 |
mount /dev/sr0 /mnt
配置静态ip
关闭防火墙及SElinux(关闭与不关闭都可以)
systemctl stop NetworkManager ; systemctl disable NetworkManager
ip配置文件
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.1.254 PREFIX=24 |
systemctl restart network或ifdown ens33 && ifup ens33
配置文件存储路径
默认配置文件副本路径
数据文件存储路径
核心配置文件
/etc/dhcp/dhcpd.conf
vim dhcpd.conf
核心配置文件移动修改(需要修改配置DHCP分配的地址池,并指定ip段)
第一步:先用默认配置文件副本覆盖掉核心配置文件(这里说下为什么要覆盖掉核心配置文件:
这个文件删了,自己创建也可以前提是能写出来里面的内容,拷贝过来相当于给了个模板,所以更方便)
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
第二部:修改配置项,并配置DHCP分配的地址池
注释掉所有subnet(只留配置池)
配置池修改:如下,仅供参考
重启DHCP服务器:systemctl restart dhcpd这时弹了这个错误大概意思是:启动DHCPv4服务器守护进程失败
查看日志:systemctl status dhcpd
怀疑防火墙没有关闭好,关闭试试
再次关闭防火墙后重启DHCP服务器
重启后没有报错后
安装一个新的虚拟机并修改虚拟机设置后面补充,修改好后开机链接网络,ip a查看网络是否是DHCP分配的地址,192.168.100段证明DHCP环境搭建成功(这里可以用抓包软件抓一下数据包是否是DHCP分配过来的地址更准确)
虚拟机设置补充
一、设置网络适配器为自定义(VMnet1)模式
二、修改虚拟网络编辑器,去掉使用本地DHCP服务器IP地址分配给虚拟机
DHCP中继功能实验
实验目的:实现DHCP的中继功能
实验机器:四台
1)虚拟机1:DHCP(VMnet1)
2)虚拟机2:Client(VMnet1)
3)虚拟机3:DHCP中继服务器
4)虚拟机4:Client(VMnet2)
实验想法:虚拟机2、3、4由虚拟机1自动配备地址并把虚拟机3实现DHCP中继功能,虚拟机2网段与虚拟机4网段不同的情况下进行通讯
虚拟机1、2已经配置好我们直接配置虚拟机3,也就是中继机器
首先加一块网卡:一块网卡为(VMnet1)一块为(VMnet2) 并修改虚拟网络编辑器后开机
开机后ip a 查看网卡
一个ens33 一个ens37
修改ens33和ens37配置文件
修改好后复制一份修改ens37配置文件
修改好后重启两张网卡
网卡修改好后配置安装yum源并关闭防火墙
编写路由转发:修改配置文件永久生效(也有临时生效重启失效的)
etc/sysctl.conf
net.ipv4.ip_forward = 1
修改后sysctl -p 生效
全部配置好后使用DHCP中继命令进行指向:dhcrelay(指向中继服务器虚拟机1)
首先查看中继服务器ip地址为192.168.100.1
回到虚拟机3路由设备指向 dhcrelay 192.168.100.1
做好中继后,需要去修改DHCP服务器的配置也就是虚拟机1:
vim /etc/dhcp/dhcpd.conf
复制一份subnet并修改成第二个网段地址
修改网关地址
修改好后重启DHCP服务器
此时路由转发和实验配置搭建好后安装第四台新的虚拟机或克隆,并修改VMnet为2
开机并打开网络连接
自动分配地址到192.168.200.2证明实验搭建成功
用虚拟机4 ping 192.168.100.1