Windows10上安装VMware Workstation 16 Pro之后,使用NAT模式上网时的网络架构。
在本地服务器上安装Ansible或者Zabbix服务器等进行测试,相对比在AWS上启动1台EC2个人感觉更方便。主要是网络延迟小,有效压载Windows PC的性能(物尽其用:VMware也好Docker也好,有更好的压载服务器性能的一面)。
在Windows PC安装VMware Workstation后设定为NAT模式的话,即可上网。而作为系统工程师,需要理解一定的原理,当发生故障或者问题时方可进行排查。接下来确认一下,创建Guest OS后Host OS,Guest OS发生什么样的变化。
环境
使用了如下软件,并且网络架构如下图。
- Host OS : Windows10(CPU:1Socket 4core,Memmory:32GB)
- Hyper Visor : VMware Workstaion 16 Pro
- Guest OS : Rocky Linux8
部署环境步骤
部署以上环境的步骤如下。
- 在Windows10上安装VMware Workstation 16 Pro
- 下载Rocky Linux8的镜像
- 使用Rocky Linux8镜像,创建虚拟机
可参照 VMware Workstation上安装RedHat8。
VMware Workstaion有以下4种网络模式,接下来确认NAT模式下,Host OS(Windows10),Guest OS(Rocky Linux8)及VMware Workstation 16 Pro网络。
- Bridge模式
- NAT模式 (VMware Network Adapter VMnet8)
- HostOnly模式
- Custom(自定义)模式
Host OS网络
Host OS上的网络接口
安装VMware Workstation 16 Pro之后,可以在Windows10上网络设定查看到VMware Network Adapter VMnet8是默认用于NAT的模式的网络接口。VMware Network Adapter VMnet8是NAT模式的默认网络接口。
确认Host OS的IP地址
使用ipconfig命令确认Host OS的IP地址,这里使用的Wi-fi连接。
Host OS路由表
route PRINT 命令确认Host OS的路由表。
从上面的结果,可确认到192.168.79.0/24网段(Guest OS网段)的数据包将被发送到。192.168.79.1的IP地址。接下来使用ipconfig命令确认IP地址192.168.79.1被绑定网络接口。
Guest OS网络
Guest OS的IP地址
启动Guest OS(在这里是Rocky Linux8)后SSH进行登录。首先使用 ip命令确认当前Guest OS的网络设定情况。执行 ip a 命令后,ens160的IP地址为192.168.79.158。
在这里网络接口名称为ens160而非eth0,是因为网络接口名称的规则变化。
CentOS7开始(使用v197 systemd/udev)自动分配稳定的网络接口名称。不仅为局域网分配,也为WLAN和WWAN分配。传统的(“eth0″、”eth1″、”wlan0″,…)已不再使用。
新的命名惯例有以下几个方面的内容。
- OS重启后,网络接口名称不会改变
- 当硬件被添加或删除时,网络接口名称不会改变
- 内核或驱动程序被更新时,网络接口名称不会改变
- 网卡损坏或被替换时,网络接口名称不会改变
- 网络接口名称将被自动分配,并运行
- 网络接口名称按照命名规则被分配,可预测(Predictable Network Interface Names)
- 等等
以下的内容 来自 systemd/systemd。
* Two character prefixes based on the type of interface:
* en -- ethernet
* sl -- serial line IP (slip)
* wl -- wlan
* ww -- wwan
*
* Type of names:
* b<number> -- BCMA bus core number
* ccw<name> -- CCW bus group name
* o<index>[d<dev_port>] -- on-board device index number
* s<slot>[f<function>][d<dev_port>] -- hotplug slot index number
* x<MAC> -- MAC address
* [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
* -- PCI geographical location
* [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
* -- USB port number chain
Guest OS的路由表
接下来使用 route -n命令(或者ip route list table local命令)确认路由表的信息。
通过显示的路由表信息,在NAT模式下的默认网关(既NAT Gateway)的IP地址是192.168.79.2。
Guest OS的DNS服务器
登录Guest OS之后使用nslookup命令确认默认访问的DNS服务器。
在nslookup命令里解析baidu.com域名可确认,Guest OS目前在使用的DNS服务器的IP地址是192.168.79.2。
VMware Workstation 16 Pro的网络相关设定
vmnetnat.conf文件
被设定为NAT Gateway,DNS服务器,DHCP服务器的IP地址192.16879.2是在哪里设定的呢?
C:\ProgramData\VMware\vmnetnat.conf
下面是vmnetnat.conf文件里设定NAT Gateway address的部分。
[host]
# NAT gateway address
ip = 192.168.79.2/24
hostMAC = 00:50:56:C0:00:08
~ 省略 ~
vmnetdhcp.conf文件
分配给Gues OS的IP地址既DHCP可分配的IP地址范围在vmnetdhcp.conf指定。
C:\ProgramData\VMware\vmnetdhcp.conf
~ 省略 ~
# Virtual ethernet segment 8
# Added at 06/25/21 00:08:13
subnet 192.168.79.0 netmask 255.255.255.0 {
range 192.168.79.128 192.168.79.254; # default allows up to 125 VM's
option broadcast-address 192.168.79.255;
option domain-name-servers 192.168.79.2;
option domain-name "localdomain";
option netbios-name-servers 192.168.79.2;
option routers 192.168.79.2;
default-lease-time 1800;
max-lease-time 7200;
}
host VMnet8 {
hardware ethernet 00:50:56:C0:00:08;
fixed-address 192.168.79.1;
option domain-name-servers 0.0.0.0;
option domain-name "";
option routers 0.0.0.0;
}
~ 省略 ~
而给某台设备分配固定IP地址时,可参照 host VMnet8的部分。
Guest OS上的上网测试
在Guest OS上输入,ping baidu.com命令确认能访问外网。