DHCP原理与配置
理论
概述
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
由Internet工作任务小组设计开发
专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
使用DHCP的好处
减少管理员的工作量
避免输入错误的可能
避免IP地址冲突
当更改IP地址段时,不需要重新配置每个用户的IP地址
提高了IP地址的利用率
方便客户端的配置
DHCP的分配方式
自动分配∶分配到一个IP地址后永久使用
手动分配∶由DHCP服务器管理员专门指定IP地址
动态分配∶使用完后释放该IP,供其它客户机使用
DHCP的租约过程
客户机请求IP地址
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCPDiscover发现信息来寻找DHCP服务器
服务器响应
DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
如果有,DHCP服务器将此IP地址做上标记,加入到 DHCP Offer的消息中,然后广播一则DHCP Offer消息
客户机选择IP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取 IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
当客户机收到DHCPACK消息时,配置IP地址,完成 TCP/IP的初始化 DHCP服务器
重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
DHCP服务
为大量客户机自动分配地址,提供集中管理
减轻管理和维护成本、提高网络配置效率
当DHCP服务器故障,DNCP服务获取失败,系统会自动分配给169.0.0.0网段
可分配的地址信息主要包括
网卡的IP地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址
配置DHCP
首先检查DHCP是否安装,挂载光盘
yum install -y dhcp
进入安装的dhcp目录中查看到空的配置文件 dhcpd.conf,里面会指引去哪里查看格式(/usr/share/doc/dhcp-4.2.5/),将其覆盖到配置文件中,然后进去全局配置参数
cd /etc/dhcp/
ls
less dhcpd.conf
cd /usr/share/doc/dhcp-4.2.5/
ls
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
设置全局配置参数
default-lease-time 21600; 默认租约为 6 小时,单位为秒
max-lease-time 43200; 最大租约为 12 小时,单位为秒
option domain-name "benet.com"; 指定默认域名
option domain-name-servers202.106.0.20,202.106.148.1; 指定 DNS 服务器地址
ddns-update-style none; 禁用DNS动态更新(可以加快DNS解析速度)
subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet也可以配置DNS租期等,如果设置根据自己设置的,不然根据全局地址池里配置分配
subnet 192.168.80.0 netmask 255.255.255.0 { 设置地址池
range 192.168.80.10 192.168.80.20; 设置地址池
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;
option routers 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.20 192.168.2.30;
option routers 192.168.2.254;
}
关闭防火墙
格式:systemctl stop firewalld
关闭LinuxSE 安全系统0为最低等级
格式:setenforce 0
host主机声明(给单机分配固定的 IP 地址)
host hostname { 指定需要分配固定 IP地址的客户机名称
hardware ethernet 00:c0:c3:22:46:81; 指定保留给该主机的 IP地址
fixed-address 192.168.4.100; 指定该主机的 MAC地址
}
后面内容可都删除
systemctl start dhcpd
systemctl stop firewalld
setenforce 0
netstat -anpu l grep ":67"
如果DHCP服务启动失败,可以查看日志文件
tail -f /var/log/messages
查看租约文件
格式:less /var/lib/dhcpd/dhcpd.lease