目录
一、DHCP服务基础
1.1.DHCP服务概述
Dynamic Host Configuration Protocol ,动态主机配置协议,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
1.2.DHCP的优点
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
1.3.DHCP的分配方式
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:由DHCP服务器管理员专门指定IP地址
- 动态分配:使用完释放该IP,供其它客户机使用
1.4.DHCP的租约过程
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
分为四个步骤:
1.4.1 客户机请求IP地址
- 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。
- 此时DHCP客户机以广播方式发送DHCP Discover发送信息来寻找DHCP服务器
1.4.2 服务器响应
●DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的P地址池中查找是否有合法的IP地址提供给客户机
●如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息
1.4.3.客户机选择IP地址
●DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP名。
1.4.3 服务器确定租约
●DHCP服务器接收到DHCP Request消息后,以DHCPACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。
●当客户机收到DHCPACK消息时,配置lP地址,完成TCP/IP的初始化
1.4.4 重新登录
●ODHCP客户机每次重新登录网络时,不需要再发送DHCPDiscover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
1.4.5 更新租约
●当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
●客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
注意:当主机分配到169.254.0.0 的网段地址,说明dhcp未分配到地址给客户机,此时应该查看DHCP的服务器
二、DHCP动态配置主机地址
2.1.DHCP服务
●为大量客户机自动分配地址,提供集中管理
●减轻管理和维护成本、提高网络配置效率
2.2.可分配的地址信息主要包括
●网卡的IP地址、子网掩码
●对应的网络地址、广播地址
●默认网关地址
●DNS服务器地址
2.3.配置DHCP服务实验步骤如下
第一步:将网卡信息地址配置为软连接,便于后面的操作
ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 /root/ens33
第二步:关闭网络管理器NetworkManager
systemctl stop NetworkManager
第四步:关闭防火墙
systemctl stop firewalld
第三步:通过yum 下载安装dhcp
yum -y install dhcp
2.3.1 故障排查
- 报错信息为:
- 问题描述:以上信息显示为无法拉取镜像文件,表示无法连接外网,通过ping www.baidu.com 的方式进行尝试
- 查看路由是否存在。
- 缺少出去的默认路由
route add default gw 192.168.1.2 dev ens33
- 再次尝试ping www.baidu.com
- 网络已经通了,重新下载安装
- 以上通过rpm -q dhcp 查询服务已经安装成功
第三步:通过rpm -qc dhcp 查看配置文件位置
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
第四步:通过vim命令打开/etc/dhcp/dhcpd.conf 复制 文本中/usr/share/doc/dhcp*/dhcpd.conf.example
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
第五步:将/usr/share/doc/dhcp*/dhcpd.conf.example 中的内容拷贝到/etc/dhcp/dhcpd.conf
cat /usr/share/doc/dhcp*/dhcpd.conf.example > /etc/dhcp/dhcpd.conf
第六步:修改/etc/dhcp/dhcpd.conf 在subnet 最后的代码模块下添加一个新的subnet
# subnet 后面跟的是网段 netmask后面是子网掩码
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.3 192.168.1.100; #网址分配范围
option routers 192.168.1.2; # 网关地址
default-lease-time 600; #分配后默认有效时间
max-lease-time 7200; #最大有效时间
}
第七步:启动dhcp服务
systemctl start dhcpd
第八步: 查看dhcp服务启动状态
[root@localhost ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2021-05-06 09:05:49 CST; 56s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Main PID: 77007 (dhcpd)
Status: "Dispatching packets..."
Tasks: 1
CGroup: /system.slice/dhcpd.service
└─77007 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
2.3.2.查看dhcpd 分配租约时间
2.3.3.查看dhcpd的日志
less -m /var/lib/dhcpd/dhcpd.leases
2.3.3.抓包
dhcp 的前身时bootp
2.3.4.安装抓包工具
yum -y install wireshak*
2.3.5 查看dhcp客户端的分配状态
三、实现DHCP中继服务
3.1.实验网络拓扑图
3.2.步骤
3.2.1.配置ensp模拟器上的设备
- PC2和PC3 配置相同
- cloud1 配置如下
需要先在虚拟机上进行如下操作
添加网络适配器
后给could1 进行配置如下
sw1:
sys #进入系统
sys sw1
vlan b 10 20 30 #创建vlan 10 20 30
#以下是给接口进行设置vlan
int e0/0/2
p l a
p d v 10
int e0/0/3
p l a
p d v 20
int e0/0/4
p l a
p d v 30
int e0/0/1
p l t
p t a v a
RW1:
sys
sys RW1
dhcp enable
vlan b 10 20 30
int g0/0/1
p l t
p t a v a
int vlanif 10
ip add 192.168.10.254 24
dhcp select relay
dhcp relay server-ip 192.168.1.20
int vlanif 20
ip add 192.168.20.254 24
dhcp select relay
dhcp relay server-ip 192.168.1.20
int vlanif 30
ip add 192.168.1.2 24
3.2.2.DHCP 服务器配置
yum -y install dhcp
3.2.3 验证网络适配器是否添加成功
通过ifconfig -a 的命令进行验证
3.2.4 配置网卡信息
第一步:cp -a /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37
第二步:vim /etc/sysconfig/network-scripts/ifcfg-ens37
第三步设置网卡信息
TYPE=Ethernet
BOOTPROTO=static
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.2.2
GATWAY=192.168.2.254
#DNS1=114.114.114.114
第四步:保存
第五步:重启网卡
systemctl restart network
第六步:关闭linux自身的网络管理器,避免被干扰
systemctl stop NetworkManager
第七步:设置网络管理器的开机自启动为关闭状态
systemctl disable NetworkManager
3.1.5.验证网卡信息是否配置成功
执行:ifconfig 命令查看
3.1.6.设置dhcp 配置文件
第三步:通过rpm -qc dhcp 查看配置文件位置
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
第四步:通过vim命令打开/etc/dhcp/dhcpd.conf 复制 文本中/usr/share/doc/dhcp*/dhcpd.conf.example
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
第五步:将/usr/share/doc/dhcp*/dhcpd.conf.example 中的内容拷贝到/etc/dhcp/dhcpd.conf
cat /usr/share/doc/dhcp*/dhcpd.conf.example > /etc/dhcp/dhcpd.conf
第六步:修改/etc/dhcp/dhcpd.conf 在subnet 最后的代码模块下添加一个新的subnet
# subnet 后面跟的是网段 netmask后面是子网掩码
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.3 192.168.1.100; #网址分配范围
option routers 192.168.1.2; # 网关地址
default-lease-time 600; #分配后默认有效时间
max-lease-time 7200; #最大有效时间
}
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.3 192.168.20.100; #网址分配范围
option routers 192.168.20.254; # 网关地址
default-lease-time 600; #分配后默认有效时间
max-lease-time 7200; #最大有效时间
}
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.3 192.168.10.100; #网址分配范围
option routers 192.168.10.254; # 网关地址
default-lease-time 600; #分配后默认有效时间
max-lease-time 7200; #最大有效时间
}
第七步:启动dhcp服务
systemctl start dhcpd
第八步: 查看dhcp服务启动状态
[root@localhost ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2021-05-06 09:05:49 CST; 56s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Main PID: 77007 (dhcpd)
Status: "Dispatching packets..."
Tasks: 1
CGroup: /system.slice/dhcpd.service
└─77007 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid