DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用 UDP 协议工作。通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP 协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:
- 1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
- 2. DHCP应当可以给用户分配永久固定的IP地址。
- 3. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
- 4. DHCP服务器应当向现有的BOOTP客户端提供服务。
如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的ip地址。如果不在同一个物理网段,则需要DHCP Relay Agent(中继代理)。
用DHCP Relay代理可以省去在每个物理网段都要有DHCP服务器的必要,它可以传递消息到不在同一个物理子网的DHCP服务器,也可以将服务器的消息传给不在同一个物理子网的DHCP客户机。
网络连接方式为VMnet1,物理网段为192.168.10.0/24
DHCP Server:虚拟机Red Hat
DHCP Client:物理机Win 10
网络连接方式为VMnet8,物理网段为202.100.10.0/24
DHCP Relay:克隆的Red Hat
DHCP Client:克隆的Red Hat
网关:克隆的Red Hat,需要开启路由转发功能
分别建两个网段,拓扑图如上图所示。通过对 DHCP Server、DHCP Relay、网关的配置,使得 DHCP Client 能获得动态地址,且在不同网段的主机之间可以连通。
使用 VMware 克隆虚拟机后,若原主机网卡名称为 eth0,那么克隆后的主机使用 ifconfig 查看仅能看到一个名称为 eth1 的网卡,并且在 /etc/sysconfig/network-scripts/ 此目录下仅有 ifcfg-eth0 一个网卡配置文件,ifcfg-eth0 的 DEVICE 属性同样为 eth0。所以对于克隆的虚拟机,我们需要对 /etc/sysconfig/network-scripts/ 目录下的 ifcfg-eth0 网卡配置文件进行修改,并使其配置文件生效才能正常使用 eth1 网卡,这也就是下面实验步骤中为什么会对网卡配置文件进行修改的原因。
1、打开 VMware 的虚拟网络编辑器,分别对 VMnet1、VMnet8 进行下图所示配置:
2.1 关闭防火墙和 Selinux 服务
关闭防火墙:chkconfig iptables off
service iptables stop
关闭Selinux服务:setenforce 0
编辑网卡eth0的配置文本:vim ifcfg-eth0
2.2 对网卡 eth0 的配置进行如下图所示修改:
2.3 对编辑好的网卡 eth0 的配置进行保存,并重启网络服务
2.4 使用 ifconfig 和 route 命令,可以看到对网卡 eth0 的配置已经生效
3.1 关闭防火墙和 Selinux 服务
3.2 给网关添加一个网络适配器,使其有两个网络适配器。一个连接 VMnet1,另一个连接 VMnet8。
3.3 编辑网卡 eth1 的配置
3.4 由于一个 Linux 主机默认只有一个网卡,所以我们先要将 eth1 的配置文件复制一份,并命名为 ifcfg-eth2。然后对网卡 eth2 的配置文件进行编辑:
3.5 重启网络服务,使前面对网络接口进行的配置生效
3.6 输入命令 ifconfig,可以看到对两个网卡进行的配置已经生效。
3.7 此时 ping DHCP Server,我们会发现 ping 不通。这是因为我们未将 DHCP Server 的网络适配器切换到 VMnet1 模式。
3.8 将 DHCP Server 的网络适配器切换到 VMnet1 模式。
3.9 设置好 DHCP Server 的网络适配器后,可以看到 ‘网关’ 可以 ping 通 DHCP Server 了。
4.1 将 DHCP Relay 的网络适配器设置成 VMnet8(NAT模式)
4.2 关闭防火墙和 Selinux 服务
4.3 由于一个Linux主机默认只有一个网卡,所以我们先要将 eth0 的配置文件复制一份,命名为 ifcfg-eth1,并删掉原先的 eth0。然后对网卡 eth1 的配置文件进行编辑:
4.4 对网卡 eth1 的配置进行如下修改:
4.5 重启网络服务
4.6 查看网卡 eth1 的配置和路由情况,可以看出配置成功。
4.7 测试与网关的连通性(两者在同一网段,可以 ping 通)
4.8 测试与 DHCP Server 的连通性(两者不在同一网段,需要开启网关的路由转发功能)
5.1 方法一:对 /etc/sysctl.conf 配置文本进行编辑,使 net.ipv4.ip_forward = 1
方法二:使用命令的方法使 net.ipv4.ip_forward = 1
5.2 执行 sysctl -p 使内核生效
5.3 测试与 DHCP Server 的连通性,可以 ping 通
6.1 将 /dev 下的光驱设备挂载在 /mnt 目录下,安装 dhcp 安装包
6.2 对 dhcpd.conf 配置文件进行如下修改
6.3 获取dhcpd.conf的联机帮助信息,并将下面的内容复制、粘贴到 dhcpd.conf 的配置文件中,并进行下图所示修改:
6.4 配置完 192.168.10.0/24 网段,将其配置信息复制,粘贴在它后面的位置,并对其进行配置(202.100.10.0/24 网段)
6.5 启动dhcpd 服务程序;
6.6 如果启动失败,可输入 cat /var/log/messages 进行检查(成功的话则不需要执行这一步操作)
7.1 查询物理机 Win 10 的网络连接详细信息,需查看网络适配器 VMnet1 上的信息。从下图可以看到 Win 10 成功获取动态地址。
8.1 在 DHCP Relay(中继)上安装 dhcp 安装包;
8.2 设置允许 DHCP 中继数据的接口及 DHCP 服务器的 IP 地址;
8.3 启动 dhcrelay 中继服务程序。
9.1 修改 DHCP Client 的网络适配器,使其处于 VMnet8(NAT)模式。
9.2 执行命令ifconfig和route,可以看到DHCP Client动态获得IP地址成功。