VmwareESXi Vlans、思科设备和广播使事情变得奇怪

VmwareESXi Vlans、思科设备和广播使事情变得奇怪

我在尝试进行正确配置的过程中遇到了一些问题

现在我有一台 Cisco Catalyst 交换机、一台 Cisco 路由器 2811 和一个带有 4-8 个 VM(Linux、BSD、Windows)的 VMware ESXi 节点,每个节点都配置为使用 802.1q,并且它们分为 5 个 VLAN。

接下来,节点使用以下配置连接到 Cisco Catalyst 2964 的接口端口 0/1:

switchport trunk allowed vlan 1-11
switchport mode trunk
switchport nonegottiate

为每个 vlan 加上“接口 vlan”,此时具有 ipv4 静态地址的虚拟主机可以 ping 通交换机(vlan 2 的主机可以 ping 通交换机的接口 Vlan2,等等)。

接下来,我配置将连接到 Cisco 2811 路由器的交换机接口

switchport trunk allowed  vlan 1-11, 99 
switchport mode trunk 
switchport nonegottiate 
switchport mode trunk native 99

在 Cisco 2811 路由器中,我为每个 Vlan(99 除外)创建了一个 dhcpv4 池,并开始在接口上工作

interface FastEthernet0/0.1
 encapsulation dot1Q 1 
 ip address 192.168.1.1 255.255.255.0
 ipv6 address 2001:DB8:C0CA:1::1/64
!
interface FastEthernet0/0.2
 encapsulation dot1Q 2
 ip address 192.168.2.1 255.255.255.0
 ipv6 address 2001:DB8:C0CA:2::1/64
!
interface FastEthernet0/0.3
 encapsulation dot1Q 3
 ip address 192.168.3.1 255.255.255.0
 ipv6 address 2001:DB8:C0CA:3::1/64
!
interface FastEthernet0/0.4
 encapsulation dot1Q 4
 ip address 192.168.4.1 255.255.255.0
 ipv6 address 2001:DB8:C0CA:4::1/64
!
interface FastEthernet0/0.5
 encapsulation dot1Q 5
 ip address 192.168.5.1 255.255.255.0
 ipv6 address 2001:DB8:C0CA:5::1/64
!
interface FastEthernet0/0.99
encapsulation dot1Q 99 native
ip address 192.168.99.1 255.255.255.0

这样,我删除了静态 IPv4 地址并重新启动了虚拟主机。令我惊讶的是,他们配置了 IPv6 地址,但没有 IPv4。当我尝试 ping 每个主机的 IPv6 默认网关时,我又大吃一惊:我无法 ping 通,但我可以 ping 通远程主机。

接下来,我选择了 2 个不同的虚拟主机并在它们上面放置静态 IPv4 地址,它们可以毫无问题地 ping 通本地网关甚至远程节点,但是 DHCP 仍然失败。

在某个时候我启用“debug ip dhcp server packet”,我发现一些非常奇怪的事情:所有广播消息都到达路由器接口 fa 0/0.1**(并且该接口正在响应 DHCPOFFER)。这让我想起了另一件事:**在发送本地 ping IPv6 之前,首先使用多播消息通过 NDP 进行检查但当您尝试发送远程数据包时情况并非如此。

此时,我非常确定 VMware ESXi 已正确配置 Vlan,交换机似乎也是同样的情况,因为路由器能够正确地将“IPv6 路由器广告”传送到虚拟主机。但是路由器在广播(和似乎)多播方面收到了错误的传送,因为它的答案被发送到了错误的 VLAN(或者从不回答 NDP 邻居请求)。

建议?

-- 添加于 25/03

我看到的是接下来的内容:

VMWare ESXi 节点的 CDP 从交换机状态获取 Vlan 为 1 并显示该 Vlan 的 IP 地址范围。经过一些测试,我从 ESXi 主机的端口移除了 Vlan1,并再次检查了 CDP,现在新的 IP 地址范围来自 Vlan 2,但 VLAN 仍标记为“1”,现在节点的广播无法到达路由器。

-- 添加于 25/03 (第二部分)

根据@JelmerS 的建议,VMWare 显示的内容如下:

 esxcfg-vswitch -l
Switch Name      Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch0         128         4           128               1500    vmnic0

  PortGroup Name        VLAN ID  Used Ports  Uplinks
  VM Network            0        0           vmnic0
  Management Network    0        1           vmnic0

Switch Name      Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch1         128         13          128               1500    vmnic1

  PortGroup Name        VLAN ID  Used Ports  Uplinks
  Vlan5                 5        2           vmnic1
  Vlan4                 4        3           vmnic1
  Vlan2                 2        3           vmnic1
  Vlan3                 3        2           vmnic1

我正在使用的交换机是 vSwitch1其所有节点均与互联网隔离(另一个用于远程连接节点)

答案1

我会检查您在 ESX 中的配置。

判断 ESX 配置是否损坏的一个简单方法是将 vlan 99 添加到 Gi0/1(朝向您的主机)并将其设置为本机 vlan(就像您对路由器所做的那样)。这将防止未标记的数据包最终进入连接到路由器的 Fa0/1.1 的 vlan,并确认您的 vSwitch 配置需要检查。

答案2

由于所有 DHCP 请求都通过 VLAN 1 传入,这也是中继到 ESXi 主机的默认 VLAN,我猜 ESXi 根本没有标记流量。确保每个主机都连接到 vswitch 中的不同端口组,并将每个端口组设置为适当的标记。查看VMware 的此知识库

顺便说一句:一般最佳做法是不使用 VLAN 1。

相关内容