VSwitch 与位于同一子网但不同 VLAN 上的虚拟机相混淆

VSwitch 与位于同一子网但不同 VLAN 上的虚拟机相混淆

在多租户虚拟化 LAN 环境中,不同的客户可能会在同一子网(例如 192.168.1.0/24)中拥有 VM,并托管在单个虚拟服务器环境中。重叠的子网对客户来说不是问题,因为它们不需要相互通信。但是,当这些服务器在同一个虚拟服务器环境(例如 Vmware 或 Sparc)上虚拟化时,它们不再能够通过线路发送流量,即使两个服务器位于不同的 VLAN 上(只能看到初始 ARP 请求)。我原本以为 VLAN 分离将允许 VSwitch 分别处理每个 VM 的流量,尽管存在重叠。物理交换机通过将每个 VLAN 视为单独的第 2 层域来实现这一点,并且不会在其转发决策中使用 IP 报头信息。但是,一定有某种东西(可能在标准中定义)导致 VSwitch 在其转发决策中忽略不同的 VLAN,而是检查 IP 报头并错误地假设它可以通过本地交换来满足连接要求。是否有人知道为什么会发生这种情况,或者是否有过这种情况的经历并找出了根本原因?

答案1

“在多租户虚拟化 LAN 环境中,不同的客户可能会在同一个子网中拥有虚拟机”

只有在设计、建造和固定不正确的情况下,为什么有人会允许这种情况发生?

“并托管在单个虚拟服务器环境中”

如果您的意思是所有服务器都运行相同的虚拟机管理程序,那么当然可以,如果您的意思是它们都在一台服务器上运行,那么这几乎肯定是不正确的。

但是,当这些服务器在同一个虚拟服务器环境(例如 Vmware 或 Sparc)上虚拟化时,即使两个服务器位于不同的 VLAN 上,它们也无法再通过网络发送流量(只能看到初始 ARP 请求)

再次,只有在系统设计、构建或保护不正确的情况下才会出现这种情况。

我原本以为 VLAN 分离将允许 VSwitch 分别处理每个虚拟机的流量,尽管存在重叠

如果做得正确的话,它应该/可以/能够再次。

物理交换机通过将每个 VLAN 视为单独的第 2 层域来实现这一点,并且不会在其转发决策中使用 IP 报头信息。但是,一定有某种东西(可能在标准中定义)导致 VSwitch 在其转发决策中忽略不同的 VLAN,而是检查 IP 报头并错误地假设它可以通过本地交换来满足连接要求

不,除非您使用 VMware 的 NSX/NSX-T 或不遗余力地强制 vswitch 处理第 3 层流量,否则您只能得到一个普通的 L2 虚拟交换机,它甚至不知道您正在谈论 IP。

是否有人知道为什么会发生这种情况,或者是否有过这种情况的经历并找出了根本原因?

我认为这是一个知识上的差距,无论是您自己还是负责虚拟化设计/实施的人。如果您的 vSwitch 上有两个 VLAN/端口组,它们绝对可以有相同的 IP 流量。它将在任一 VLAN/端口组中的 vNIC 之间切换流量,但不会在它们之间切换流量。显然,您的上行链路需要最终到达某个地方,通常是 L3 交换机或路由器,此时您将遇到问题,因为您将拥有重复的 IP,并且您必须通过 NAT 或类似方式解决这个问题,但这种设计完全可行。您打算在哪里以及如何处理范围重复?

答案2

“在多租户虚拟化 LAN 环境中,不同的客户可能会在同一子网(例如 192.168.1.0/24)中拥有虚拟机,并托管在单个虚拟服务器环境中。”

在多租户环境中,绝对可以进行这种第 3 层设置。但是,您必须确保上游交换机和防火墙可以处理通过这些设备路由的相同子网。例如,客户 A 可以拥有 VLAN 10,子网为 10.10.10.1/24,而客户 B 可以拥有 VLAN 11,子网为 10.10.10.1/24。VMware 不会在意,也不会遇到任何问题(或者,也可以为这种设置配置虚拟线路的 NSX 环境)。但是,您的上游交换机/路由器/防火墙必须能够适应该设置。例如,将 VMware 的 vCloud Director 与 NSX 结合使用。每个租户都可以完全控制自己的子网,其中许多子网可能会重叠。使用 NSX 虚拟线路,VMware 可以使这些网络彼此隔离。只要上游交换机支持 VXLAN 或严格为第 2 层,就可以正常工作。(来源:我已经研究这种配置多年了)。

“重叠子网对客户来说不是问题,因为他们不需要相互通信。但是当这些服务器在同一个虚拟服务器环境(例如 Vmware 或 Sparc)上虚拟化时,它们不再能够通过线路发送流量,即使两台服务器位于不同的 VLAN 上(只能看到初始 ARP 请求)。”

听起来像是网络问题,而不是虚拟化层的问题。

“我原本以为 VLAN 分离将允许 VSwitch 单独处理每个 VM 的流量,尽管存在重叠。物理交换机通过将每个 VLAN 视为单独的第 2 层域来实现这一点,并且不会在其转发决策中使用 IP 报头信息。但是,一定有某种东西(可能在标准中定义)导致 VSwitch 在其转发决策中忽略不同的 VLAN,而是检查 IP 报头并错误地假设它可以通过本地交换来满足连接要求。有谁知道是否有基于标准的原因导致这种情况发生,或者有这种情况的经历并确定了根本原因?”

vSwitch 确实会单独处理每个 vSwitch 的流量,前提是端口组已正确标记 VLAN。但是,上游交换机必须再次适应这一点。例如,如果您的交换机仅是第 2 层连接,那么您在虚拟化中为第 3 层设置什么将由您决定。您的交换机和路由器很可能是第 3 层,这意味着您的虚拟机管理程序并不是唯一隔离这些子网并给您带来问题的东西。如果是这种情况,您必须使用单独的子网,您的网络团队应该能够帮助您进行设置。

相关内容