一、概述
(一).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%时
(三).当客户端重启后
(1)客户端直接发送Request包
IP地址空闲:服务端直接回应Ack
IP地址被占用:服务端回应noAck,客户端需要将上述“工作流程”完整执行一遍
三、客户端类型
(一).Linux
DHCP服务器不存在,没有IP
(二).Windows
DHCP不存在,会启用备用IP地址
范围:169.254.0.0/16 ~ 168.254.255.255/16
四、部署基础环境
(一).配置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
(二).关闭防火墙及SELinux
(1) 命令
systemctl stop firewalld && systemctl disable firewalld
(2) 查看SElinux状态
getenforce
(3)设置宽容模式
setenforce 0
(4)关闭SElinux
vim /etc/selinux/config
SELINUX=enforcing 改为 SELINUX=disabled
注:重启才能生效
(三)配置静态IP
(1)关闭网络图形化工具
systemctl stop NetworkManager ; systemctl disable NetworkManager
(2) 具体配置
cd /etc/sysconfig/network-scripts/
(3)vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.254
PREFIX=24
systemctl restart network
4.安装DHCP软件包
yum install -y dhcp
五、配置
(一).配置文件存储路径
/etc/dhcp
(二).默认配置文件副本路径
/usr/share/doc/dhcp-4.2.5/
(三).数据文件存储路径
/var/lib/dhcpd
(四).核心配置文件
(1) 打开配置文件
/etc/dhcp/dhcpd.conf
(2) 找到演示文件地址将其拷贝到本地址并覆盖
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
(3) 打开现有的dhcpd.conf
(4)配置项
(5)subnet
配置DHCP分配的地址池
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.2 192.168.100.253;
option domain-name-servers 8.8.8.8;
option domain-name "internal.example.org";
option routers 192.168.100.1;
option broadcast-address 192.168.100.255;
default-lease-time 600;
max-lease-time 7200;
}
(6)host
固定IP地址,指定分配给对应的MAC地址的主机
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address IP address;
}
(五).重启DHCP服务器
systemctl restart dhcpd
六、中继配置
中继实现的是分配多个地址段
(一).创建一个dhcp中继服务器
(1)创建第二块网卡
(2) 创建以VMnet2为网卡的客户端服务器
(二)为dhcp中继服务器两块网卡配地址
(1)关掉中继的防火墙和SELinux
(2) 关掉网络图形化工具
systemctl stop NetworkManager ; systemctl disable NetworkManager
(3) 修改网卡配置参数
3.1 第一块网卡
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.1
PREFIX=24
3.2 第二块网卡
cp ifcfg-ens33 ifcfg-ens34
vim ifcfg-ens34
(三).配置文件
(1)添加内容
进入文件 vim /etc/sysctl.conf 中添加一行内容
net.ipv4.ip_forward = 1
(2)文件生效
sysctl -p
注:由此可见此时中继已具有路由器的性质
注:DHCP中继第一块网卡的IP地址必须设置为DHCP服务器的网关地址。
(四).重启网络服务,并查看配置
(五).配置中继的本地源,并安装DHCP
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
yum install -y dhcp
(六)设置DHCP的中继命令
dhcrelay 服务器IP
(七).回到DHCP服务器,修改dhcp配置文件,添加多网段内容
vim /etc/dhcp/dhcpd.conf
粘贴内容后修改相应内容,保存退出
重启DHCP服务
配置网关
(八).验证另一个网段下的客户端能否正确获得地址
well done
七、案例
(一) 分配一个地址段,固定分配某个IP给特定主机
(1)设置好一个dhcp服务端主机,打开配置文件/etc/dhcp/dhcpd.conf
(2)将客户端的MAC地址输入服务端DHCP配置文件中的hardware ethernet
(3)在fixed-address后输入想要指定分配的IP
(4)验证