VmwareESXi Vlans,思科设备和广播使事情变得古怪

我有一些问题,试图做出正确的configuration

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

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

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

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

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

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

在Cisco 2811路由器中,我为每个Vlan(除了99)创build了一个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地址configuration良好,但不支持IPv4。 当我尝试用每个主机的IPv6来ping默认网关时,我的下一个大惊喜是:我不能,但是我可以ping远程主机。

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

在某些时候,我启用了“debuggingip dhcp服务器数据包”,我发现一些非常奇怪的东西: 所有广播消息都到达路由器接口fa 0 / 0.1 **(该接口正在应答DHCPOFFER)。 我记得另一件事情:**在使用多播消息先发送NDP本地ping IPv6检查之前,但在尝试发送远程数据包时并非如此。

在这一点上,我非常肯定VMware ESXi具有良好configuration的Vlan ,交换机似乎是相同的情况,因为路由器能够正确地向虚拟主机传递“IPv6路由器广告”。 但路由器与广播(和似乎)多播,并因为他的回答发送错误的VLAN(或从来没有回答NDP邻居请求)错误交付。

build议?

– 新增25/03

我看到的是下一个:

VMWare ESXi节点从交换机获取的CDP中的Vlan为1,并显示该vlan的ip地址范围。 经过一些testing后,我将Vlan1从端口中移除到ESXi主机,再次检查CDP,IP地址的新范围现在来自Vlan 2,但VLAN仍标记为“1”,现在节点的广播没有进入路由器。

– 新增25/03(第二部分)

有了@JelmerS的build议,这就是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 ,它的所有节点都与Internet分开(另一个用于远程连接到节点)

我会检查你的configuration在ESX。

判断ESXconfiguration是否中断的简单方法是将vlan 99添加到Gi0 / 1(朝向主机),并将其设置为本地vlan(就像您对路由器所做的那样)。 这将防止未标记的数据包在连接到路由器的Fa0 / 1.1的vlan上结束,并确认您的vSwitchconfiguration需要检查。

由于所有DHCP请求都是通过VLAN 1进入的,而VLAN 1也是朝向ESXi主机的主干上的默认VLAN,所以我猜测ESXi根本不会标记stream量。 确保每个主机连接到vswitch中的其他端口组,并将每个端口组设置为适当的标记。 查看VMware的这个知识库 。

另外:不使用VLAN 1是最好的做法。