DHCP
作用
DHCP动态主机配置协议作为服务端负责集中给客户端分配各种网络地址参数(主要包括IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址)
传输协议端口
服务端 UDP 67端口
客户端 UDP 68端口
工作原理
1) 客户端广播发送DISCOVER报文寻找服务端
2) 服务端广播发送OFFER报文响应给客户端,报文中还包含地址池中的一个可用IP
3)客户端只会接收第一个发来的OFFER报文并提取出可用IP,再向服务端广播发送REQUEST报文请求使用这个可用IP
4) 服务端广播发送ACK报文响应给客户端,告知IP合法可用并提供租期信息
5)重新登录 DHCP客户机重新登录网络,不需要再发送DHCP DISCOVER,而是直接发送包含前一次所分配的IP地址的DHCP REQUEST请求信息
6)更新租约 DHCP服务器向客户机出租的IP地址租期到达50%时,就要更新租约。客户机向租约服务器发送DHCP REQUEST包,要求更新现有的地址租约
配置DHCP服务器
安装dhcp
yum install -y dhcp
查看配置文件
cd /etc/dhcp/ ls less dhcpd.conf
根据配置文件提示查看相关文档
cd /usr/share/doc/dhcp-4.2.5/ ls less dhcpd.conf.example
复制dhcp示例文件,依照示例修改参数
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #yes vim /etc/dhcp/dhcpd.conf #设置全局配置参数 default-lease-time 21600; #默认租约为 6 小时,单位为秒 max-lease-time 43200; #最大租约为 12 小时,单位为秒 option domain-name "benet.com"; #指定默认域名 option domain-name-servers 202.106.0.20, 202.106.148.1; #指定 DNS 服务器地址 ddns-update-style none; #禁用 DNS 动态更新,提高效率 #subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数) subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址 range 192.168.80.10 192.168.80.20; #设置地址池 对应网卡1地址 option routers 192.168.80.254; #指定默认网关地址 } subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; #若多个网卡多个地址,可以设置多个subnet项 option routers 192.168.1.254; #对应网卡2地址 } subnet 192.168.2.0 netmask 255.255.255.0 { range 192.168.2.20 192.168.2.30; #对应网卡3地址 option routers 192.168.2.254; } #host主机声明(给单机分配固定的 IP 地址) host hostname { #指定需要分配固定 IP地址的客户机名称 hardware ethernet 00:c0:c3:22:46:81; #指定该主机的 MAC地址 fixed-address 192.168.4.100; #指定保留给该主机的 IP地址 } #后面内容可都删除
开启服务 检查
systemctl start dhcpd netstat -lnup | grep dhcpd netstat -lnup | grep 67
若不能访问需要关闭selinux和防火墙
systemctl stop firewalld setenforce 0
如果DHCP服务启动失败,可以查看日志文件
netstat -anpu | grep ":67" #如果DHCP服务启动失败,可以查看日志文件 tail -f /var/log/messages
使用windows虚拟机查看DHCP服务器是否成功设置
创建vmnet2,设置仅主机模式 取消本地DHCP服务器,更改两虚拟机网络为vmnet2(同一内网)
若要模拟内网与外网,可以一机使用vmnet2(内网),一机使用vmnet3(外网)(都是仅主机模式)
Linux虚拟网络配置器设置2网卡,vmnet2(内网)、vmnet3(外网)。ifconfig查看两网卡ip地址,dhcp配置文件中对应两网卡地址设置内网与外网两网段的地址、地址池等
修改物理机vmnet2网址(虚拟机使用的也是vmnet2)保持物理机与虚拟机为同一个网段,使其能够被ssh连接
禁用再启用网络适配器
ip获取成功
在ensp中配置DHCP 中继 基本不用 没有意义
dhcp enable #开启DHCP功能
#
interface Vlanif10
ip address 192.168.1.254 255.255.255.0
dhcp select relay #开启DHCP中继功能
dhcp relay server-ip 192.168.80.10 #指向DHCP服务器的地址
#
interface Vlanif20
ip address 192.168.2.254 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.80.10
#
interface Vlanif100
ip address 192.168.80.254 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.80.10
Linux客户端使用 DHCP 动态获取IP
#方法一:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=dhcpifdown ens33 ; ifup ens33
#方法二:
dhclient -d ens33
查看租约文件
less /var/lib/dhcpd/dhcpd.lease