VMware虚拟机,Linux DHCP服务器配置过程。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、实验目标(以自身情况为准)

配置DHCP服务器中继,使多个子网的客户机可以通过服务器获取动态IP地址


二、所需配置

实验所需:

一台DHCP服务器(后面简称:服务器

一台DHCP中继(后面简称:中继

一台与服务器 同网段客户机(后面简称 客户机1

一台与服务器 不同网段客户机(后面简称 客户机2

一台路由器:可由中继代替,但 客户机2 需与 中继 在同一台虚拟机上(事实上 客户机2 与 服务器 处于 同一虚拟机 也可获取 动态IP,但如此 中继 便失去其作用)

实验采取方案:

这里使用 两台 虚拟机 ,每台虚拟机配置两个网络适配器(服务器与客户机1、中继与客户机2),配置网络适配器具体如下:

1、配置虚拟网络

若需要修改或添加虚拟网络,可以先打开左上角 > 编辑 > 虚拟网络编辑器

弹出窗口后点击右下角的更改设置

本次实验本人使用虚拟网络 VMnet8(已有)和 VMnet3(待添加),实际实验中可自行选择。

VMnet8 事先已经更改好,子网为  192.168.10.0/24 ,NAT设置的网关为 192.168.10.2

点击添加网络,选择 VMnet3 > 确认 ,便加入VMnet3网络;NAT模式只有一个且用于VMnet8,所以 VMnet3 使用仅主机模式,子网地址分和 192.168.30.0/24  (子网地址可根据需求更改)

PS. 仅主机模式一般只能与真机和虚拟机连通,无法连通外网,这也是我选择 VMnet8(NAT)作为服务器和中继虚拟网络的原因(便于安装 dhcp);

使用本地DHCP服务将IP地址分配给虚拟机” 选项需要关闭,否则虚拟机开启DHCP协议将会从真机获取动态IP地址。

2、配置网络适配器(简称端口、网卡)

中继为例:右键虚拟机 > 设置 ,在设置窗口中点击 添加 > 选择网络适配器 > 完成 , 即可添加网络适配。

接着在网络适配器选择 自定义 > 分别更改为 VMnet8 (中继) 和 VMnet3 (客户机2),然后点击确定即可。(服务器所在虚拟机两个网卡皆是 VMnet8

服务器所在的虚拟机在添加网络适配器后将两个适配器皆改为 VMnet8 网络。(服务器需与中继同网段;客户机1代表直接从服务器获取动态IP的主机,所以需与服务器同网段。)


三、静态IP配置

1、配置预设(IP/子网掩码 ,网关)

服务器192.168.10.10/ 24 192.168.10.20

中继   :192.168.10.20/ 24192.168.10.2

客户机1192.168.10.11/ 24192.168.10.2

客户机2192.168.30.11/ 24 192.168.30.254

PS. PREFIX (前缀) = 24 等效于 NETMASK (子网掩码) = 255.255.255.0;

PS. 给客户机1&2 配置静态仅为个人习惯,这样容易验证网络连通性。 

2、以服务器为例

开启虚拟机,登录 root 用户 ( 注意别登错用户 )。

右键桌面或左上角点击应用程序—系统工具,打开终端(Terminal),输入命令

[root@dhcp-server ~]# ifconfig            #查看有效网络接口状态

  

确认网卡名为:ens33 ens36  ,实际实验中请以实际显示为准。

虚拟机默认拥有 ens33 网卡与其配置文件,而新加入的ens36网卡没有配置文件,需要添加。

[root@dhcp-server ~]# cd /etc/sysconfig/network-scripts    #进入网卡配置文件所在文件夹
[root@dhcp-server network-scripts]# vim ifcfg-ens33    #进入 ens33网卡 配置文件

进入 ifcfg-ens33 配置文件,将 BOOTPROTO 的值改为 static ,并添加静态 IP 地址,结果如下:

:wq 保存退出

PS. ONBOOT有些版本默认为 no ,需改为 yes。

[root@dhcp-server network-scripts]# nmcli con show        #查看网卡接口的uuid
#获得下方信息:
NAME        UUID                                  TYPE      DEVICE 
ens33       40b12189-4c13-4875-a658-51255aac7cc5  ethernet  ens33  
有线连接 1  3369ab3e-9f1e-3d88-a484-9d024af32052  ethernet  ens36

#新添加的 ens36 网卡配置文件是空白的,所以需要复制 ens36 网卡的 uuid 待添加
# uuid 以实际实验为准


[root@dhcp-server network-scripts]# cp -a ifcfg-ens33 ifcfg-ens36        #将ens33配置文件内容复制到ens36
[root@dhcp-server network-scripts]# vim ifcfg-ens36        #进入 ens36网卡 配置文件

进入ifcfg-ens36配置文件,将 NAMEDEVICE 的值从 ens33 改为 ens36 UUID的值改为 ens36 的 uuid 配置静态IP地址。结果如下:

中继所在的虚拟机网卡配置文件修改与其同理,按预设配置。(按实际实验需求配置) 

IP地址配置完成后两台虚拟机都需要重启网络

[root@dhcp-server network-scripts]# systemctl restart network    #重启网络协议


四、配置DHCP服务器

1、安装DHCP(服务器)

[root@dhcp-server network-scripts]# cd         #回到初始目录
[root@dhcp-server ~]# ping www.baidu.com        #ping百度确认能否连接外网,为安装dhcp准备
PING www.a.shifen.com (157.148.69.74) 56(84) bytes of data.
64 bytes from 157.148.69.74 (157.148.69.74): icmp_seq=1 ttl=128 time=8.85 ms
From gateway (192.168.10.20): icmp_seq=2 Redirect Host(New nexthop: gateway (192.168.10.2))      
64 bytes from 157.148.69.74 (157.148.69.74): icmp_seq=2 ttl=128 time=8.14 ms
From gateway (192.168.10.20): icmp_seq=3 Redirect Host(New nexthop: gateway (192.168.10.2))

#因为网络 VMnet8 的网关为 192.168.10.2 ,所以服务器连通外网的路径为:本机 > 192.168.10.20 > 192.168.10.2 > 外部网络 > www.baidu.com

确认可连外网后就可以安装DHCP了

[root@dhcp-server ~]# yum -y install dhcp*        #安装dhcp*

#安装完成后查看已安装的软件包
[root@dhcp-server ~]# rpm -qa|grep dhcp*        #查看dhcp*安装的软件包
dhclient-4.2.5-83.el7.centos.1.x86_64
dhcp-libs-4.2.5-83.el7.centos.1.x86_64
dhcp-devel-4.2.5-83.el7.centos.1.x86_64
dhcp-common-4.2.5-83.el7.centos.1.x86_64
dhcp-4.2.5-83.el7.centos.1.x86_64

2、配置DHCP服务器

打开配置文件        绝对路径:/etc/dhcp/dhcpd.conf

[root@dhcp-server ~]# vim /etc/dhcp/dhcpd.conf       

文件中信息可理解为:模板文件为 dhcpd.conf.example 。并有提供其绝对路径,由于只需要该文件中的小部分模板,所以这里没有整个 copy。

打开另一个终端,输入

[root@dhcp-server ~]# vim /usr/share/doc/dhcp*/dhcpd.conf.example        #进入 dhcpd.conf.example 配置文件

进入该文件后复制红框内模板复制粘贴进 dhcpd.conf 即可

有两个网段,所以第二张图需粘贴两次;修改相关配置,在第二个网段为客户机2保留IP地址。(注意“ ; ” 、“ { ” 和 “ } ”)

 

option domain-name XXX;                 :服务器名称
option domain-name-servers X.X.X.X;     :DNS服务器
default-lease-time 600;                 :默认租约时间
max-lease-time 7200;                    :最长租约时间

subnet X.X.X.X netmask X.X.X.X {        :子网网段 子网掩码
  range X.X.X.X X.X.X.X;                :动态IP地址池
  option routers X.X.X.X;               :路由IP
}

host client2 {                          :客户机名称
  hardware ethernet X:X:X:X:X:X;        :客户机_MAC地址
  fixed-address X.X.X.X;                :保留_IP地址
  }
}

客户机2MAC地址 可以通过 ifconfig ens36 获取

 dhcp -t 查错,下图为无错误截图

 

[root@dhcp-server ~]# systemctl restart dhcpd        #重启dhcp服务
[root@dhcp-server ~]# systemctl enable dhcpd         #开机自启动,可开可不开

3、测试

[root@dhcp-server ~]# dhclient ens36 -r	    #配置静态IP的情况下可能不能释放成功,则使用 ip addr flush ens36
[root@dhcp-server ~]# ifconfig ens36		#或者ip addr show ens36    查看客户机1是否释放IP成功

[root@dhcp-server ~]# dhclient ens36    #为 ens36网卡 获取 动态IP地址
[root@dhcp-server ~]# ifconfig ens36    #查看ens36网络状态

成功则客户机1获取到 地址池中第一个 IP地址(在无其它虚拟机抢占IP时,否则按顺序获取)


 五、配置DHCP中继

1、安装DHCP(中继)

首先确认是否能连通外网ping www.baidu.com

[root@dhcp-relay ~]# yum -y install dhcp*        #安装dhcp*

#安装完成后查看已安装的软件包
[root@dhcp-relay ~]# rpm -qa|grep dhcp*        #查看dhcp*安装的软件包
dhclient-4.2.5-83.el7.centos.1.x86_64
dhcp-libs-4.2.5-83.el7.centos.1.x86_64
dhcp-devel-4.2.5-83.el7.centos.1.x86_64
dhcp-common-4.2.5-83.el7.centos.1.x86_64
dhcp-4.2.5-83.el7.centos.1.x86_64
[root@dhcp-relay ~]# cp /usr/lib/systemd/system/dhcrelay.service /etc/systemd/system/        #将模板文件整个复制到 /etc/systemd/system/ 里
[root@dhcp-relay ~]# vim /etc/systemd/system/dhcrelay.service        #进入dhcrelay.service配置文件

输入红框内容  

# 192.168.10.10 为远程 DHCP服务器 的 IP地址
# -i ens33 为中继监听 DHCP请求 的端口

中继配置到此结束。

2、路由配置

一般有默认路由表 ,可使用 route -n 查看

若没有则使用

[root@dhcp-relay ~]# route add 192.168.10.0/24 gw 192.168.10.2		
或
[root@dhcp-relay ~]# route add 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.2
#上述 IP 按序依次对应 Destination(目标网段) , Genmask(前缀或掩码) , Gateway(网关)

开启数据包转发

[root@dhcp-relay ~]# vim /etc/sysctl.conf        #进入sysctl.conf配置文件
或
[root@dhcp-relay ~]# sysctl -w net.ipv4.ip_forward=1    #直接将 net.ipv4.ip_forward=1 加入sysctl.conf

sysctl.conf 尾部输入 net.ipv4.ip_forward=1 

两台虚拟机互相 ping 对方:

#客户机2 需要明确源地址
[root@dhcp-relay ~]# ping -l [源地址] [目标地址] -c [ping 的次数]

  

 

服务器直接 ping 就行  

3、跨网段测试(获取动态IP)

获取动态IP地址成功 且为 正确的保留IP,实验圆满结束。


六、防火墙配置

1、配置防火墙通过协议、端口

firewall-cmd --permenant --add-service=dhcp        #永久添加DHCP协议进入防火墙

firewall-cmd --permenant --add-port=67/udp        #永久添加 67/UDP端口 进入防火墙
firewall-cmd --permenant --add-port=68/udp        #永久添加 68/UDP端口 进入防火墙

#--permenant 永久的 、--add-? 添加 、 --remove-? 删除

#正常情况下,不添加 DHCP协议或端口 DHCP数据包 也能通过防火墙,可能是该系统版本的防火墙安全性较低,亦或是其他原因;
#若需严谨,可添加。

猜你喜欢

转载自blog.csdn.net/Line_IQ/article/details/130090365
今日推荐