前言
前面我写过华为ensp中DHCP的介绍和配置,详见动态主机配置协议DHCP
与Linux(CentOS7系统)中DHCP原理与配置原理差不多,可以对比来看一下。
(1)简介
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
由Internet 工作任务小组设计开发
专门用于为 TCP/IP 网络中的计算机自分配ТСР/IP参数的协议
(2)DHCP的优点
减少管理员的工作量
避免输入错误的可能
避免IP地址冲突
当更改IP地址段时,不需要重新配置每个用户的IP地址
提高了IP地址的利用率
方便客户端的配置
(3)DHCP的分配方式
自动分配:客户机从DHCP服务器分配到一个IP地址后永久使用
手动分配:由DHCP服务器管理员专门指定IP地址
动态分配:客户机使用完后释放该IP,供其它客户机使用
客户机从DHCP服务器获得IP地址的过程称为DHCP 的租约过程
总的来说分为四个步骤,如下图
说明
(1)客户端在网络中搜索服务器
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。
此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
(2)服务器向客户端响应服务
DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机。
如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer 消息
(3)客户机选择IP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取 IP 地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机了
(4)服务器确定租约
DHCP服务器接收到 DHCP Request 消息后,以DHCP ACK 消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
当客户机收到 DHCP ACK 消息时,配置IP地址,完成TCP/IP的初始化
(5)重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
(6)更新租约
当DHCP服务器向客户机出租的IP地址租期达至50%时就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
(1)在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.100.33 -指向DHCP服务器的地址
interface Vlanif20
ip address 192.168.2.254 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.100.33
interface Vlanif100
ip address 192.168.100.254 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.100.33
(2)配置DHCP服务器
CentOS 7光盘中的 dhcp-4.2.5-58.el7.centos.x86_64.rpm
DHCP软件包的主要文件
主配置文件:/etc//dhcp/dhcpd.conf
执行程序:/usr/sbin/dhcpd、 /usr/sbin/dhcrelay
yum install -y dhcp
cat /etc/dhcp/dhcpd.conf -查看主配置文件
cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example -查看示例配置文件
(3)配置文件内容
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf -设置全局配置参数
default-lease-time 600; -默认租约为 10分钟,单位为秒
max-lease-time 7200; -最大租约为 1 小时,单位为秒
option domain-name "example.org"; -指定默认域名
option domain-name-servers 8.8.8.8; -指定 DNS 服务器地址
ddns-update-style none; -禁用 DNS 动态更新
-subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.100.0 netmask 255.255.255.0 {
-声明要分配的网段地址
range 192.168.100.10 192.168.100.20; -设置地址池
option routers 192.168.100.254; -指定默认网关地址
}
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.120;
option routers 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.200 192.168.2.220;
option routers 192.168.2.254;
}
-host主机声明(给单机分配固定的 IP 地址)
host hostname {
-指定需要分配固定 IP地址的客户机名称
hardware ethernet 00:c0:29:85:5a:98; -指定该主机的 MAC地址
fixed-address 192.168.100.166; -指定保留给该主机的 IP地址
}
-后面内容可都删除
-关上防火墙
systemctl start dhcpd
systemctl stop firewalld
setenforce 0
netstat -anpu | grep ":67"
-如果DHCP服务启动失败,可以查看日志文件
tail -f /var/log/messages
(4)Linux客户端使用 DHCP 动态获取IP
方法一:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=dhcp
ifdown ens33 ; ifup ens33
方法二:
dhclient -d ens33
查看租约文件
less /var/lib/dhcpd/dhcpd.lease
(1)ensp中SW1和SW2的设置
SW1
SW2
(2)虚拟机选择主机模式,关闭DHCP自动获取
(3)设置新网段
(4)配置ensp里cloud
(5)修改虚拟机网卡地址
(6)验证能ping通192.168.1.254、192.168.2.254、192.168.100.254
(7)安装DHCP软件
(8)找到修改dhcp的模板,并复制到目录/dhcpd.conf
(9)在配置文件/dhcpd.conf 里进行全局配置及网段声明
(10)配置DHCP中继
(11)验证
在上面实验基础上新增一个虚拟机,把它的ip地址设为192.168.100.166
(1)选择主机模式
(2)设置ip地址和DHCP为自动获取
(3)复制mac地址
(4)主机宣告
(5)验证
掌握DHCP的工作原理,修改配置文件必须以分号结尾,否则会报错。一定要选择主机模式。