总而言之,我有一个Netgear GS724TPv2交换机的 1 号端口上连接了一台支持 PC。我有一条中继线通过 23 号端口 (T) 进入交换机,该端口跨越 VLAN 131、132、133。目前,我在 VLAN 131、132 和 133 上有一个未标记“U”的 1 号端口(所有 VLAN 都位于同一子网范围内)。但是,我注意到似乎我一次只能设置 1 个 PVID,因此我的支持 PC 一次只能与一个 VLAN 通信。
是否有人知道有什么方法可以让我让端口 1 将 PC 流量同时标记到 VLAN 131、132 和 133,然后每个 VLAN 流量都可以响应 PC,而无需使用交换机和支持 PC 之间的多个 NIC 和交换机端口?
答案1
然而我注意到似乎我一次只能设置 1 个 PVID
是的,因为 PVID 的目的是在交换机不知道传入数据包应该进入哪个 VLAN——它无法知道因为来自您计算机的数据包未带标签。
换句话说,你不能在同一个端口上有多个未标记的 VLAN,因为标签实际上承载了实现此功能所需的 VLAN 信息。
正常使用方式为 a) 标记该端口上的所有 VLAN(PVID 保持未使用状态)或 b) 标记除一个 VLAN 之外的所有 VLAN,并将 PVID 设置为该未标记的 VLAN。
(交换机不会跟踪哪些 IP 子网对应哪些 VLAN,实际上,如果您的支持 PC 特别需要与每个 VLAN 建立直接以太网连接,那么您的工具很可能会生成交换机无法以这种方式映射的流量反正。
无需在交换机和支持 PC 之间使用多个 NIC 和交换机端口。
如果你特别需要计算机直接地连接到同一端口上的多个 VLAN,那么它必须生成(并理解)带有 VLAN 标记的数据包。
在 Windows 上,您可以使用 Hyper-V“vSwitch”实现此目的 - 它允许您创建多个虚拟以太网接口,每个接口对应一个特定的 VLAN 标签,所有接口都与同一个物理接口相关联。(不,您不需要任何虚拟机 - 这些虚拟接口可以直接在主机操作系统上创建。)
遗憾的是,此功能无法通过 Hyper-V GUI 实现;您可以通过 GUI 创建“外部”虚拟交换机,但需要通过 PowerShell 添加 VLAN:
Add-VMNetworkAdapter -ManagementOS -Name VLAN2 -SwitchName "External" -Passthru | Set-VMNetworkAdapterVlan -Access -VlanId 2
早些时候(Hyper-V 之前),许多“服务器级”以太网 NIC 也曾在 Windows 的驱动程序级别提供此功能。(Linux 或 BSD 已经将虚拟 VLAN 接口作为内置功能。)
还有可能您实际上并不需要直接以太网级连接,而只需要 IP 连接,在这种情况下,您可以在 PC 和交换机之间安装专用的支持 VLAN 的路由器。(无论如何,这项任务几乎总是路由器的工作。)