Windows Server 2012/R2 Hyper-V 虚拟交换机 (vSwitch) 引入了很多用户要求的功能,以便实现租户隔离、通信×××、防止恶意虚拟机以及更轻松地排查问题。本文介绍非 Microsoft 扩展的开放可扩展性和可管理性方面的改进。可以编写非 Microsoft 扩展,以模拟基于硬件的交换机的全部功能和支持更复杂的虚拟环境和解决方案。

Hyper-V vSwitch 是第 2 层虚拟网络交换机,它以编程方式提供管理和扩展功能,从而将虚拟机连接到物理网络。vSwitch 为安全、隔离以及服务级别提供策略强制。通过支持网络设备接口规格 (NDIS) 筛选器驱动程序和 Windows 筛选平台 (WFP) 标注驱动程序,Hyper-V vSwitch 允许可提供增强网络和安全功能的非 Microsoft 可扩展插件。

Hyper-V vSwitch 允许您通过提供以下各项来实现和管理虚拟化数据中心:

1. 开放平台。vSwitch 构建在一个开放平台上,该平台允许独立软件供应商添加或扩展 vSwitch 中本机提供的功能。vSwitch 的功能与添加的扩展功能一起运行。

2. 标准 API。可扩展交换机的编程模型使用的应用程序编程接口 (API) 与早期版本的 Windows 中用于网络筛选器和驱动程序的 API 相同,即 NDIS 和 WFP。为虚拟交换机端口增加了新的 API 和参数。

3. Windows 可靠性和质量。Windows 平台和 Windows 硬件质量徽标 (WHQL) 计划为扩展质量设置了较高的标准。

4. 策略和配置集成。扩展的管理通过 Windows Management Instrumentation (WMI) 调用和 Windows PowerShell cmdlet 集成到 Windows 管理中,从而提供标准的管理方法。在实时迁移期间,扩展策略自动与虚拟机配置一起迁移。

5. 易于排查问题。vSwitch 附带事件日志和统一跟踪,在发生问题时诊断和排查起来更加容易。

下图显示的是Hyper-V vSwitch 体系结构和扩展性

Hyper-V从最早的1.0时代就自带三种虚拟交换机模式外部、内部以及专用,这些虚拟网络交换机是使用Hyper-V交换机管理器创建的,也可以通过PowerShell或者SCVMM创建。

1. 外部:虚拟交换机部署完成后,虚拟机和宿主机连接到同一个虚拟交换机。虚拟机与宿主机获取同一网段的IP地址,与宿主机所在的网络中的其他计算机通信,每台虚拟机等同于宿主机所在网络的宿主机。

当创建一个外部虚拟网络交换机时,Hyper-V主机上的数据流发生了变化。默认情况下,Windows服务器操作系统使用物理网络适配器发送网络数据包。这是因为网络服务需要使用的物理网络适配器必须绑定了网络协议和服务。所有网络数据包由该交换机接收的网络服务/应用程序生成。一旦外部虚拟网络交换机接收了网络数据包,会将这些数据包转发到映射的物理网络适配器。

这是因为当管理员创建一个外部虚拟网络交换机时,虚拟交换机管理器修改了物理网络适配器和外部虚拟网络交换机一些必要的属性。虚拟交换机管理器实施更改之前,管理员会看到一个如下面屏幕截图所示的警告信息:

图中警告提示Hyper-V主机连接失败。在创建私有或内部虚拟网络交换机时不会看到这样的警告。只有当创建外部虚拟网络交换机时才会有上面的提示。这是因为变化是在创建过程中处理的,包括协议、服务和客户服务的绑定和解绑定。

例如,管理员创建了一个名为“LAB”的外部虚拟网络交换机,并将其映射到名为“Intel(R) 82576 Gigabit Dual Port Network”的物理网络适配器上。当点击“确定”按钮时,物理网络适配器的属性会发生如下变化:

1) 解绑定以下服务、协议和客户:Microsoft网络客户端、Microsoft网络文件和打印机共享,TCP/IP协议IPv4、TCP/IP协议IPv6,以及物理网络适配器属性中列出的所有其他服务、客户端或协议。

2) 绑定“微软虚拟网络交换机协议”。

另外外部虚拟网络交换机发生下面的变化:

1)绑定以下服务、协议和客户端:Microsoft网络客户端、Microsoft网络文件和打印机共享,TCP/IP协议IPv4、TCP/IP协议IPv6。

2)解绑定“微软虚拟网络交换机协议”。

“微软虚拟网络交换机协议”是与物理网络适配器绑定的,负责监听来自外部虚拟网络交换机的网络流量。如果“微软虚拟网络交换机协议”未绑定到物理网络适配器,物理网络适配器将会减少由外部虚拟网络交换机产生的网络数据包。

2. 内部:内部网络相当于给宿主机虚拟一张网卡,用于于虚拟机通信,并且提供DHCP服务和NAT代理服务。虚拟机可以通过宿主机上网但是不能与宿主机所在的网络通信。

3. 专用:专用网络相当与虚拟一个专供虚拟机之间连接的虚拟交换机,所有的虚拟机连接到同一个虚拟交换机上,所有的虚拟机之间可以通信,但是不能访问宿主机以及宿主机所在的网络。

管理员根据实际需求创建虚拟交换机时只需要打开Hyper-V管理器,点击虚拟交换机管理器创建虚拟机交换机即可。当管理员在Hyper-V主机上创建外部虚拟网络交换机时,建议规划停机时间。