我对虚拟机还不熟悉,因为我过去总是设置物理服务器。我在 HP 服务器上安装了 VMWARE ESXi 6.7,并设置了 2 个虚拟机。一个用于 SCADA 系统,另一个用于维护服务器。两者都运行 Windows 2016 Server。
我希望将它们放在 2 个不同的子网上...第一个是 192.168.2.x,第二个是 192.168.1.x。我已使用服务器上的 4 个物理端口之一将主机连接到 .2 网络,并且可以正常与其通信。我已将第二根电缆从 .1 网络上的物理交换机连接到服务器上的第二个端口。我创建了一个新的 vSwitch(vSwitch1)并将其链接到第二个端口 vmnic1。在我想在 .1 网络上的 VM 中,我已更改硬件属性以使网络适配器指向管理网络 2(使用新 vSwitch1 的端口组)。
这是正确的做法吗???虽然我已将 Windows Server 中的 Nic 属性更改为 .1 网络上的静态 IP,但我无法与该服务器通信...我想我遗漏了一些东西。请提供建议,感谢您的帮助!
答案1
您使用了几乎所有重要的术语...让我们快速概览一下。
VMkernel NIC ... ESX“内部”使用的 NIC,用于一个或多个管理角色(也用于访问 Web 管理)
物理网卡...系统上可用的物理网卡,用于上行到外部网络
虚拟交换机...交换机的逻辑解释是将端口组与物理网卡“互连”(可以定义没有物理网卡的 vSwitch)
端口组...用于连接虚拟机或者VMkernel 网卡
端口组已分配 VLAN ID,因此从物理交换机上的 VLAN 的角度来看,它充当逻辑交换机。在同一个 vSwitch 上拥有更多具有相同 VLAN ID 的端口组没有问题。一旦您在物理交换机 (VLAN) 上使用 802.1q 标记,您就不需要将流量分成 2 个 vSwitch。vSwitch 上具有已定义 VLAN ID 的两个端口组将执行相同的操作...
一旦将 VMkernel NIC 分配给端口组,您就不能将同一端口组用于虚拟机,因此即使它位于同一 VLAN 中,您也必须在 ESX 上定义另一个端口组,即使同一 vSwitch 上的 VLAN ID 相同。然后可以将第二个端口组用于虚拟机,然后这两个端口组可以相互通信...
端口组上的 VLAN ID 0 对应于所连接的物理 NIC 上的“本机”VLAN(未标记)流量。
在网络中(一般来说),VLAN 1 用于默认 VLAN,也用于生成树通信,因此我现在将尽量避免使用 VLAN 1,以免引起误解……
假设
- VLAN 11 为 192.168.1.0/24(在以下示例中也用于 ESX 的管理)
- 192.168.2.0/24 的 VLAN 12
工作选项 1
portgroup 1 vSwitch0 vmnic0
VLAN11 | --------- | | ----------- | 11T,12T
VM1 | | |
| |
| |
portgroup 2 | |
VLAN12 | --------- | |
VM2 | |
| |
| |
portgroup mgmt | |
vlan11 | --------- | |
vmk0 | | |
工作选项 2
portgroup 1 vSwitch0 vmnic0
VLAN0 | --------- | | ----------- | 11,12T
VM1 | | |
| |
| |
portgroup 2 | |
VLAN12 | --------- | |
VM2 | |
| |
| |
portgroup mgmt | |
vlan0 | --------- | |
vmk0 | | |
不起作用的选项
最有可能的就是你的情况...
portgroup 1 vSwitch0 vmnic0
VLAN0 | --------- | | ----------- | 11
VM1 | | |
| |
| |
portgroup mgmt | |
vlan0 | --------- | |
vmk0 | | |
portgroup 2 vSwitch1 vmnic1
VLAN12 | --------- | | ----------- | 12
VM2 | | |
| |
如果我是对的,那么问题就在于您正在发送 VLAN 12 作为本机(未标记)流量,但端口组需要特定的 VLAN,而该 VLAN 在那里找不到(因为它没有标记),所以通信不起作用。
如何实现
将端口组 2 上的 VLAN 设置为 0,以便它与 vmnic1 上的本机 VLAN 匹配
portgroup 2 vSwitch1 vmnic1 VLAN0 | --------- | | ----------- | 12 VM2 | | | | |
将端口组 2 上的 VLAN 设置为与外部交换机上使用的 VLAN ID 相同的 VLAN ID但在交换机上,将流量作为带有标记 VLAN 的中继发送出去(您可以轻松地将中继中允许的 VLAN 限制为此一个 VLAN)
portgroup 2 vSwitch1 vmnic1 VLAN12 | --------- | | ----------- | 12T VM2 | | | | |
答案2
我来到这里并从卡米尔那里找到了答案,这是一个很好的方向,但我认为从配置的角度看,有人可能会从一个例子中受益。
假设您的虚拟机所分配到的端口组已设置为在 vlan 10 上运行,并且您正在将其连接到交换机端口 FastEthernet 0/2。
从特权模式。(启用)
conf t
interface fastEthernet 0/2
description Trunk
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 10
switchport mode trunk
就是这样,您可能需要重新启动客户虚拟机以从 DHCP 获取该 vlan 的正确 IP。
假设您已经在交换机和路由器之间设置了中继,请不要忘记将 vlan 10 添加到其允许的 vlan 中。