实验目标

通常情况下,我们使用红帽官方提供的课程资料包制作成的教室实验环境是使用封闭式的内网环境,如果我想让教室环境里面的虚机可以访问到外网,以便获取到互联网上的一些镜像仓库提供的服务,这也不难,只需要打通虚拟机到宿主机的物理接口再到物理网关的链路,然后正确配置ip地址、网关、DNS即可;但如果要让虚拟机能够访问到github这种仓库资源,就要额外下一番功夫了, 因为众所周知的原因,github仓库在国内的访问性是飘忽不定的,本次实验的目的正在于此。

实验环境

物理机:DELL R730

虚拟化平台:ESXI 8.0

红帽教室环境:DO374(课程代码DO374—Ansible 自动化平台)

物理网关:192.168.1.1/24

DNS:192.168.1.1

软路由:OpenWrt(依托于ESXI平台实现,是一台虚拟设备)

ESXI 网络规划较为简单,如下图,默认的标准交换机vSwitch0上有一个端口组VM Network,该标准交换机绑定服务器的物理接口Port-4,通过一根网线直连物理网关,Port-4既是ESXI 虚拟机访问外网的出口,也是ESXI 平台的管理网口,管理IP地址为192.168.1.120/24;另外两台vSwitch则是手动创建的,与之绑定的网口并没有物理连线,只是作为标准交换机使用而已;所有的物理网卡均已开启混杂模式。

实验记录:红帽教室环境接入互联网_DO374

实验记录:红帽教室环境接入互联网_红帽教室环境_02

现在的情况是:DO374教室环境的虚机网卡已桥接到vmnic3(Port-4)。

实验步骤

配置软路由

编辑openwrt 虚机,配置两块网卡, 网络适配器1使用VM Network 端口组,网络适配器2使用vSW1-PG1 端口组,一个作为软路由的WAN 口,一个作为LAN 口,注意MAC 地址与网络适配器的对应关系,系统中显示的网卡顺序可能与这里显示的不一致。

实验记录:红帽教室环境接入互联网_红帽教室环境_03

OpenWrt 开机进入系统后,查看eth0、eth1分别与网络适配器1、网络适配器2 对应,这说明顺序没有错乱

实验记录:红帽教室环境接入互联网_DO374_04

实验记录:红帽教室环境接入互联网_红帽教室环境_05

WAN 口就是eth0 口,IP地址是192.168.1.254/24,网关和DNS均已配置妥当;LAN 口则是br-lan,这是一个LinuxBridge,成员接口则只有一个eth1 口,IP地址是172.26.0.1/24,这个IP地址也即是DO374 虚拟机访问外网的网关了。

实验记录:红帽教室环境接入互联网_DO374_06

实验记录:红帽教室环境接入互联网_DO374_07

OpenWrt 虚机已配置好WAN 口防火墙放行所有流量,所以可以直接通过访问192.168.1.254来进入web 控制台,输入用户名密码:root/password 登录:

实验记录:红帽教室环境接入互联网_DO374_08

需要对这台软路由进行一系列的设置:

可以看到接口的状态:

实验记录:红帽教室环境接入互联网_DO374_09

确保LAN口开启了DHCP服务:

实验记录:红帽教室环境接入互联网_红帽教室环境_10

防火墙放行所有的流量,WAN口开启NAT功能(IP动态伪装):

实验记录:红帽教室环境接入互联网_红帽教室环境_11

接下来配置国际互联网服务,内容比较敏感,就不附上截图了...

软路由配置完成以后,来开始配置DO374 虚拟机环境:

配置DO374虚机

现在DO374 这台虚机只有一块网卡,使用端口组VM Network:

实验记录:红帽教室环境接入互联网_DO374_12

先不作修改,开机看看再说,输入默认的用户密码kiosk/redhat 登录:

实验记录:红帽教室环境接入互联网_DO374_13

在红帽教室环境中,有为DO374这门课程准备的KVM 虚拟机,除classroom 默认是开启的状态,其他节点均已关闭:

实验记录:红帽教室环境接入互联网_DO374_14

在开始新一轮的实验之前,为避免受到前面实验的干扰,我们可以将实验环境重置,创建出一个干净的实验环境:

rht-vmctl fullreset -y classroom
rht-vmctl fullreset -y all

等待重置完成...

实验记录:红帽教室环境接入互联网_红帽教室环境_15

重置完成以后,可以看到KVM 虚机均已处于运行状态了:

实验记录:红帽教室环境接入互联网_红帽教室环境_16

此时,宿主机foundation0 和servera、serverb等虚机均不能访问外网:

实验记录:红帽教室环境接入互联网_DO374_17

确认物理网卡连接名称:

nmcli con show
nmcli con show | grep eth

实验记录:红帽教室环境接入互联网_DO374_18

我们给DO374 虚机再添加一块网卡,使用vSW1-PG1端口组:

实验记录:红帽教室环境接入互联网_DO374_19

添加网卡以后,在系统中再次查看,多了一块网卡:ens224,对应连接名:Wired connection 1

实验记录:红帽教室环境接入互联网_DO374_20

删除新增网卡对应的Wired connection 1 这个连接:

$ su -
$ # root用户的密码默认为:Asimov
# nmcli con del "Wired connection 1"

实验记录:红帽教室环境接入互联网_DO374_21

自定义连接:

nmcli con add ifname ens224 con-name ens224 type ethernet ipv4.method manual ipv4.addresses 172.26.0.100/24

实验记录:红帽教室环境接入互联网_DO374_22

停止F0 DHCP服务:

systemctl disable --now dhcpd

实验记录:红帽教室环境接入互联网_红帽教室环境_23

启动NAT 网络:

rht-external --configure ens224/172.26.0.100/24/172.26.0.1	# 配置文件名/IP/掩码/网关

实验记录:红帽教室环境接入互联网_DO374_24

配置DNS:

rht-external --dns 114.114.114.114

该配置好像没有生效:

实验记录:红帽教室环境接入互联网_红帽教室环境_25

直接手动编辑配置文件好了:

实验记录:红帽教室环境接入互联网_红帽教室环境_26

现在宿主机F0 可以连接互联网了:

实验记录:红帽教室环境接入互联网_DO374_27

访问测试

打开firefox 浏览器测试:

实验记录:红帽教室环境接入互联网_红帽教室环境_28

实验记录:红帽教室环境接入互联网_红帽教室环境_29

连接进入到KVM 虚机内,测试也是可以访问外网的:

实验记录:红帽教室环境接入互联网_DO374_30

到此,实验的目的就已经达成了。