一.DHCP中继
在实际应用中可能会遇到一个比较大的物理网络中存在多个ip子网,而每个ip子网的主机都需要DHCP服务器来动态分配ip地址,实现的方法有两种:
第一种是在每一个子网中设置DHCP服务器,将其分别为每个子网分配ip地址,但此方法会增加开销,浪费资源;
第二种就是只在一个子网内设置DHCP服务器,通过这台DHCP服务器来为所有的子网分配ip地址,这个方法比第一种节省,是可行的,这就要用到DHCP中继代理了
在整个DHCP租约产生的过程中,DHCP服务器和客户端都是使用广播进行通信的,我们知道,网络上的流量分为单播、广播、组播,单播和组播可以顺利的通过路由器,广播不可以通过路由器,路由器隔离广播,这样就会产生一个问题,如果DHCP客户端和DHCP服务器之间要跨越子网时,中间的路由器会进行阻拦,路由器看到是广播包立马就会扔掉,那怎么办呢?很简单,只需要让这个广播包在进入路由器之前变成单播就行了,这就是中继代理的原理
1 DHCP中继工作过程
DHCP中继代理的过程
(1)DHCP客户端广播dhcp discover包
(2)DHCP中继代理将dhcp discover包以单播发送到DHCP服务器
(3)DHCP服务器以单播发送DHCP offer包给DHCP中继代理
(4)DHCP中继代理广播dhcp offer包
(5)DHCP客户端广播dhcp request包
(6)DHCP中继代理以单播转发dhcp request包给DHCP服务器
(7)DHCP服务器以单播发送dhcp ack包给DHCP中继代理
(8)DHCP中继代理广播dhcp ack包给客户端。
二.部署DHCP中继
1.DHCP中继架构图
2.IP地址规划
服务器类型 | IP地址 | 网络 |
---|---|---|
DHCP服务器 | 192.168.1.100 | vmnet4 |
DHCP中继 | 192.168.1.110 | vmnet4 |
192.168.2.110 | vmnet10 | |
客户端 | 未知 | vmnet10 |
3.配置DHCP服务
配置DHCP,配置2个子网,分别是192.168.1.0和192.168.2.0,如下:
完成后启动DHCP服务
[root@localhost ~]# systemctl restart dhcpd
DHCP服务器一切正常!至此DHCP服务器的配置已经完成,下一步配置DHCP中继代理服务器
4.配置DHCP中继服务器
1) 由于中继服务器会涉及到跨子网,因此需要配置2个网卡,并且将分属于不同的网络环境中
2)IP地址配置如下
注意:中继服务器的网卡IP地址必须是DHCP服务器的网关地址。而且网卡ens33属于vmnet4是和192.168.1.0/24相连的,网卡ens36属于vmnet10是和192.168.2.0/24相连接的。
3)安装dhcp服务
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# rpm -qa dhcp
dhcp-4.2.5-47.el7.centos.x86_64
#注意dhcp包含dhcp中继服务
[root@localhost ~]# rpm -ql dhcp |grep dhcrelay
/usr/lib/systemd/system/dhcrelay.service
/usr/sbin/dhcrelay
/usr/share/man/man8/dhcrelay.8.gz
4)打开DHCP中继服务器路由转发功能
编辑/etc/sysctl.conf
文件在文件添加一行内容为:
“net.ipv4.ip_forward=1”,开启路由转发功能
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1
执行sysctl -p
使配置生效:
5)开启DHCP中继服务
5.客户端测试
将客户端的网卡调整成DHCP获取IP地址的方式,并将网络设置成vmnet10环境;
可以发现已经获取到了192.168.2.0网段的地址,也可以正常进行通信,说明实验成功了!
三、DHCP超级作用域
3.1 DHCP超级作用域应用场景
在工作中,有时候我们会遇到在一个办公场景下一个网段的IP地址不够用的情况,而这种情况下,我们要解决IP地址不够用的方式一般有2种
1)、更换IP地址更多的网段来容纳更多的IP
2)、在原有的基础上增加新的IP地址
显然,第一种方案更换新的网段会导致已经分配出去的IP地址被回收导致网络会中断,并不是很合理,所以只能在原有的基础上增加新的网段和IP地址来解决这个问题
那如何解决这个问题呢,所以我们就需要使用到–超级作用域,DHCP可以为单个局域网内的客户端分配多个不同作用域的IP地址
3.2 什么是超级作用域?
DHCP(动态主机配置协议)超级作用域是指一个组织中的多个子网可以通过共享一个DHCP服务器来使用相同的IP地址池。超级作用域是在DHCP服务器上配置的,并且它将多个子网绑定在一起,以使其能够共享IP地址池。
DHCP超级作用域使得网络管理员能够更轻松地管理多个子网,因为他们可以使用单个DHCP服务器来分配IP地址。这有助于减少网络管理的复杂性,并且可以提高网络的可伸缩性和可靠性。此外,DHCP超级作用域还可以提供更高的安全性,因为管理员可以更精细地控制哪些设备可以连接到特定的子网。
3.3 部署超级作用域
3.3.1 架构图
拓扑图说明:在这个网络环境下,我们模拟有1个DHCP服务器,用于承担IP地址的分配任务,另外两台客户端1和客户端2用于模拟测试收到的IP地址,这里会使用到2个不同的网段,为了确保在不同的网段下能正常相互通信,因此我们需要使用到路由的功能(单臂路由),使不同网段能相互通信
扩展:单臂路由出现的目的就是为了解决不同vlan(逻辑划分的子网)之间的通信问题,原理是在路由器的一个入网的接口上同时配置2个不同网段的IP地址,当客户端1网段的IP地址需要和客户端2的IP地址通信的时候,路由先发送到路由器,路由器收到请求后,通过路由转发的功能将路由信息从本接口的另一个IP地址发送到目标的网络段内完成通信,这就是单臂路由的功能。
5.3.2 IP地址规划
服务器类型 | IP地址 | 网络环境 |
---|---|---|
DHCP服务器 | 192.168.1.100 | vmnet4 |
192.168.2.100 | vmnet4 | |
客户端 | 未知 | vmnet4 |
3.2.3 配置作用域
1)DHCP服务器网卡配置
2)配置DHCP的作用域
跳转到文件结尾,修改后的配置如下:
说明:
1-2只是代表了一个名称,可以随意写
option routers 代表的是网关
3)重启dhcp服务
[root@localhost dhcp]# systemctl restart dhcpd
4)开启路由转发功能
编辑/etc/sysctl.conf
这个文件,在最后加入
net.ipv4.ip_forward=1 #1代表开启,0代表关闭
加载配置生效
sysctl -p
5)准备2台客户端测试
注意:第一个网段的IP地址可以分配的IP地址设置成1个,当第一个网段的IP地址分配完后,才会分配第二个网段的IP地址,将2台客户端的IP地址都设置成DHCP的模式:
2台客户端都获取到了IP地址,说明DHCP工作是正常的,但是还要实现192.168.1.200到192.168.2.200的网络互通
能正常通信,说明路由的功能也是正常的!