为什么所有网络流量都经过 Hyper-V 交换机?

为什么所有网络流量都经过 Hyper-V 交换机?

我安装了 Hyper-V 并创建了一个 VM,添加了外部虚拟交换机。

我刚刚意识到现在整个主机流量也经过它。为什么?这种不必要的“魔法”的延迟是多少?可以避免吗?

正如您在图片上看到的,“真实”连接应该是“以太网 2”,但所有内容都进入“vEthernet(外部..)”

在此处输入图片描述

答案1

为什么?

如果将交换机设为“外部”,即连接到物理网络接口,则操作系统的某些部分需要决定哪些以太网帧用于主机操作系统,哪些用于虚拟交换机。它通过 MAC 地址做出此决定(发送到原始主机 MAC 的帧需要传送到主机操作系统,所有其他帧则传送到交换机)。

由于这种过滤恰好是 vSwitch 所做的反正(基于目标 MAC 地址的转发实际上是交换机的目的),Hyper-V 开发人员显然决定只使用vSwitch。

可以避免吗?

不可以,除非安装第二个物理以太网端口。

如上所述,如果要在主机操作系统和 vSwitch 之间共享端口,那么某物必须在两者之间划分流量——如果不是 vSwitch 的 FDB 本身,那么就必须是第二层过滤,其功能与第一层过滤相同。

虽然这个(假设的)第二层过滤层可能会使其决策更快,并略微减少主机操作系统流量的延迟,因为它只进行一次比较,但对于客人流量(两个层的延迟会增加 - 首先是主机/非主机 MAC 检查,然后是 vSwitch FDB),这对于 Hyper-V 主机来说同样是不可取的。

如果你的机器上有两个物理以太网端口,那么你可以将其中一个专用于主机,另一个专用于 vSwitch,这样你的主机操作系统就不会受到影响(尽管

答案2

Hyper-V 外部交换机是一种桥接网络连接(通用语言),它使用主机通过主机网络适配器连接到的路由器。

因此,您会期望所有流量都通过该主机适配器。

事实上,客户 NAT 连接也经过主机网络连接。

因此,无法阻止通过主机 NIC 的网络流量。

我假设工作站(或笔记本电脑)有 1 个 NIC。

相关内容