文章目录
- 1.环境背景
- [2. 需求背景](#2. 需求背景)
- [3. 解决方法](#3. 解决方法)
-
- [3.1 在mac的终端查看虚拟机NAT网络](#3.1 在mac的终端查看虚拟机NAT网络)
- [3.2 查看unbuntu节点2的网络配置](#3.2 查看unbuntu节点2的网络配置)
- [3.3 问题定位与解决](#3.3 问题定位与解决)
-
- [3.3.1 检查是否有冲突](#3.3.1 检查是否有冲突)
- [3.3.2 冲突解决方法](#3.3.2 冲突解决方法)
- [4. 总结](#4. 总结)
-
- [4.1 NAT 网关的原理](#4.1 NAT 网关的原理)
- [4.2 VMware Fusion 的 NAT 模式](#4.2 VMware Fusion 的 NAT 模式)
- [4.3 为什么网关冲突会引起问题](#4.3 为什么网关冲突会引起问题)
- [4.4 理解配置冲突](#4.4 理解配置冲突)
- [4.5 解决方案](#4.5 解决方案)
- [4.6 知识点总结](#4.6 知识点总结)
1.环境背景
苹果mac mini 物理机 : MAC OS 14.4.1 (23E224)
虚拟机平台 : VMware Fusion 社区版 版本 13.5.0 (22583790)
虚拟机操作系统 : ubuntu-24.04-live-server-arm64
2. 需求背景
在ubuntu分布式的虚拟机安装中,完成了节点1的安装,并且节点1成功ping通互联网。
节点1IP:172.16.167.131
节点2IP:172.16.167.132
在安装节点2时,选择直接复制节点1的vmware虚拟机文件,并且修改IP配置文件的方案。
最后发现节点2始终无法正常联网。
节点1已经安装ping工具,可以请求到节点2的网络,但节点2在安装ping工具时一直报网络的问题。
问题为节点2无法联网、组网。
3. 解决方法
在尝试了大多数分布式虚拟机的配置方法后,无法联网的问题仍然存在,随即检查网络IP配置。
3.1 在mac的终端查看虚拟机NAT网络
打开mac的终端,输入:
cat /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf
回显如下:
可见这是 VMware Fusion 中虚拟网络 VMnet8 的 NAT 配置文件内容:
# NAT gateway address
ip = 172.16.167.2
netmask = 255.255.255.0
这里指定了 NAT 网关的地址为 172.16.167.2
,子网掩码为 255.255.255.0
。
3.2 查看unbuntu节点2的网络配置
切换到该目录,打开yaml配置文件:
cd /etc/netplan
我在Ubuntu中的网络配置如下:
IP地址:172.16.167.132/24
网关:172.16.167.1
DNS服务器:8.8.8.8, 8.8.4.4
3.3 问题定位与解决
3.3.1 检查是否有冲突
- IP地址范围: 我的Ubuntu机器的IP地址 172.16.167.132 在 172.16.167.0/24 网络范围内,没有冲突。
- 网关: Ubuntu配置的网关是 172.16.167.1,而VMware Fusion的NAT网关是 172.16.167.2,这可能会引起问题,因为网关应该是同一个IP地址。
- 子网掩码: 两者的子网掩码都是 255.255.255.0,没有问题。
3.3.2 冲突解决方法
为了确保网络连接正常,将Ubuntu中的网关配置修改为VMware Fusion NAT网关的地址,即 172.16.167.2。修改后的配置如下:
由于gateway4
已经被弃用,所以使用新的路由配置方法,配置新的网关地址后,输入以下命令应用:
sudo netplan apply
再一次更新apt:
sudo apt update
成功安装ping工具:
sudo apt install iputils-ping
测试网络联通情况,先ping节点1,再ping谷歌,均成功:
4. 总结
4.1 NAT 网关的原理
网络地址转换 (NAT) 是一种允许多台设备通过单一的公共IP地址访问互联网的技术。在 NAT 中,有一个专门的设备或软件,通常称为 NAT 网关,负责将内部网络(私有IP地址)的流量转换为公共IP地址。NAT 网关通常有两个主要功能:
- 地址转换: 将内部私有IP地址转换为公共IP地址。
- 端口映射: 将内部设备的端口号与公共IP地址的端口号进行映射,以便正确路由流量。
4.2 VMware Fusion 的 NAT 模式
在 VMware Fusion 中,NAT 模式允许虚拟机通过主机的网络连接访问外部网络。VMware Fusion 创建一个虚拟的NAT网关,将虚拟机的流量转换为主机的IP地址。VMnet8 是一个常用的虚拟网络,提供 NAT 服务。
- VMnet8 的 NAT 网关地址: 这是虚拟网络中的网关,这里配置为
172.16.167.2
的地址。 - 虚拟机的默认网关: 虚拟机的网络流量需要通过这个网关才能到达外部网络。
4.3 为什么网关冲突会引起问题
在网络中,默认网关是指网络流量无法找到目标地址时应该发送到的路由器或网关设备。如果虚拟机配置了错误的网关地址,会导致以下问题:
- 流量无法路由到正确的出口: 如果网关配置错误,虚拟机的流量会被发送到错误的设备或根本无法发送出去,导致无法访问外部网络。
- 地址解析冲突: NAT 网关负责地址转换,如果虚拟机的网关地址与实际的NAT网关地址不一致,NAT 网关无法正确转换和路由流量。
4.4 理解配置冲突
在本次冲突的情况中:
- **Ubuntu的网关配置为 **
172.16.167.1
- **VMware Fusion的NAT网关配置为 **
172.16.167.2
冲突原因:
- 虚拟机(Ubuntu)发送流量时,会将流量发送到
172.16.167.1
这个网关,但实际的NAT网关是172.16.167.2
,因此172.16.167.1
并不具备将流量转发到外部网络的功能。 - 正确配置应确保虚拟机的网关地址与实际的NAT网关地址一致,以确保所有网络流量能够正确路由和转换。
4.5 解决方案
即为将Ubuntu虚拟机的网关配置为与VMware Fusion的NAT网关一致,我采用172.16.167.2
。在虚拟机集群搭建时,对于复制移动虚拟机文件的方式应该格外注意在网络IP的配置是否正确。
4.6 知识点总结
NAT 网关是用于将私有网络的流量转换为公共网络流量的关键设备。正确配置网关地址确保网络流量能够通过NAT网关正确路由到外部网络。在虚拟化环境中,如VMware Fusion,虚拟机的网关必须与虚拟化软件提供的NAT网关一致,以确保网络连接正常。