虚拟机网络适配器

虚拟机 (VM) 网络适配器在 Hyper-V 子分区中运行的来宾操作系统中公开。

注意

在 Hyper-V 中,子分区也称为 VM。

VM 网络适配器支持以下虚拟化类型:

  • 综合网络适配器:VM 网络适配器可能是网络适配器的合成虚拟化。 在这种情况下,在 VM 中运行的网络虚拟网络服务客户端(NetVSC)会公开此虚拟网络适配器。 NetVSC 通过 VM 总线 (VMBus) 在可扩展交换机端口之间来回转发数据包。

  • 模拟网络适配器:VM 网络适配器可以是物理网络适配器的模拟虚拟化。 在这种情况下,VM 网络适配器模仿 Intel 网络适配器,并使用硬件仿真在可扩展交换机端口之间转发数据包。

下图显示了 VM 网络适配器与可扩展交换机 NDIS 6.40(Windows Server 2012 R2)和更高版本之间的接口。

显示模拟 VM 网络适配器与 NDIS 6.40 可扩展交换机之间的接口的流程图。

下图显示了 VM 网络适配器与 NDIS 6.30(Windows Server 2012)的可扩展交换机之间的接口。

显示模拟 VM 网络适配器与 NDIS 6.30 可扩展交换机之间的接口的流程图。

启动 Hyper-V 虚拟机

当用户启动 Hyper-V VM 时,将执行以下步骤:

  1. 可扩展交换机的协议边缘沿着可扩展交换机驱动程序堆栈发出 OID_SWITCH_PORT_CREATE 的对象标识符 (OID) 设置请求。 此 OID 请求通知底层的可扩展交换机扩展模块,正在为 VM 创建端口。

  2. 可扩展交换机的协议边缘沿着可扩展交换机驱动程序堆栈发出 OID_SWITCH_NIC_CREATE 的 OID 设置请求。 此 OID 请求通知基础可扩展交换机扩展,正在为之前创建的 VM 端口创建 VM 网络适配器的网络连接。

  3. 当网络堆栈正常运行并已绑定到 VM 网络适配器时,可扩展交换机的协议边缘沿着可扩展交换机驱动程序堆栈发出 OID_SWITCH_NIC_CONNECT 的 OID 设置请求。 此 OID 请求通知基础可扩展交换机扩展模块,虚拟机网络适配器的网络连接已连接并正常运行。 此时,扩展可以检查、注入数据包并将其转发到连接到 VM 网络适配器的端口。

停止 Hyper-V VM

当用户停止 Hyper-V VM 时,将执行以下步骤:

  1. 可扩展交换机的协议边缘沿着可扩展交换机驱动程序堆栈发出 OID_SWITCH_NIC_DISCONNECT 的 OID 设置请求。 此 OID 请求通知基础可扩展交换机扩展,与 VM 网络适配器的连接正在断开。

  2. 在所有以网络连接为目标的数据包流量和 OID 请求完成后,可扩展交换机的协议边缘沿着可扩展交换机驱动程序堆栈发出 OID_SWITCH_NIC_DELETE 的 OID 设置请求。 此 OID 请求通知底层可扩展交换机扩展,与 VM 网络适配器的连接已被正常断开并删除。

  3. 可扩展交换机的协议边缘沿着可扩展交换机驱动程序堆栈发出 OID_SWITCH_PORT_TEARDOWN 的 OID 设置请求。 此 OID 请求通知基础可扩展交换机扩展,用于 VM 网络适配器连接的端口正在被拆毁。

  4. 可扩展交换机的协议边缘沿着可扩展交换机驱动程序堆栈发出 OID_SWITCH_PORT_DELETE 的 OID 设置请求。 此 OID 请求通知基础可扩展交换机扩展 VM 端口已拆除并删除。