当前位置: 代码迷 >> 交换机/路由器 >> Windows Server 2012&R2超级虚拟化之10 软件定义网络之虚拟交换机
  详细解决方案

Windows Server 2012&R2超级虚拟化之10 软件定义网络之虚拟交换机

热度:122   发布时间:2016-04-29 04:34:09.0
Windows Server 2012&R2超级虚拟化之十 软件定义网络之虚拟交换机


                                 Windows Server 2012&R2超级虚拟化之十软件定义网络之虚拟交换机

 

  Hyper-V虚拟交换机是基于软件的第 2层网络交换机,它维护了一个MAC表,包含连接到它的所有虚拟机的MAC地址,主机内的所有虚拟机都要通过虚拟交换机才能与物理网络或内部网络通信。在Hyper-V中创建虚拟交换机时有三种类型的选择:外部,私人和内部。

外部虚拟网(Bridge)络。在允许虚拟机与外部服务器和管理操作系统(有时称为父分区)进行通信时,可以使用此类型的虚拟网络。此类型的虚拟网络还允许位于同一物理服务器上的虚拟机互相通信。当您安装 Hyper-V 并创建外部虚拟网络时,管理操作系统将使用一个新的虚拟网络适配器来连接物理网络。网络连接由原始网络适配器和新的虚拟网络适配器组成。原始物理网络适配器未绑定任何协议和服务。不过,虚拟网络适配器绑定了所有的标准协议和服务。创建外部虚拟网络时,Hyper-V会将虚拟网络服务协议绑定到物理网络适配器。您应该知道,在创建或删除外部虚拟网络时,将会暂时中断外部网络连接。创建外部虚拟网络后,除了交换机是基于软件以及可以根据需要动态添加或删除端口之外,虚拟网络与物理网络的工作原理基本相同。一旦配置了外部虚拟网络,所有的网络通信都将通过虚拟交换机传送。因此,建议使用至少一个其他物理网络适配器来管理网络通信。虚拟交换机发挥物理交换机的功能,通过虚拟网络将网络通信传送到其目的地

内部虚拟网络(NAT。在只允许同一物理服务器上的虚拟机与虚拟机、虚拟机与管理操作系统之间进行通信时,可以使用此类型的虚拟网络。内部虚拟网络是一种未绑定到物理网络适配器的虚拟网络。它通常用来构建从管理操作系统连接到虚拟机所需的测试环境

专用虚拟网络(Private。在只允许同一物理服务器上的虚拟机之间进行通信时,可以使用此类型的虚拟网络。专用虚拟网络是一种无需在管理操作系统中装有虚拟网络适配器的虚拟网络。在希望将虚拟机从管理操作系统以及外部网络中的网络通信中分离出来时,通常会使用专用虚拟网络

Hyper-V中,允许您配置复杂的虚拟网络环境,但虚拟网络的基本概念却是非常简单。对于简单的虚拟网络配置,建议在运行 Hyper-V的服务器上至少配置两个网络适配器:一个网络适配器专供进行远程管理的物理计算机使用,另外一个或多个网络适配器专门用于虚拟机。如果您为虚拟硬盘存储运行 Internet SCSI (iSCSI)发起程序,建议您使用管理操作系统中的其他网络适配器。管理操作系统是一个分区,它调用 Windows虚拟机监控程序并请求创建新的分区。只能存在一个管理操作系统。当创建虚拟机并将其连接到虚拟网络时,它将会使用虚拟网络适配器进行连接。有两种类型的网络适配器可用于 Hyper-V:网络适配器和旧版网络适配器。为了使网络适配器能够正常工作,必须安装集成服务,该服务是 Hyper-V 安装的一部分。如果集成服务因为操作系统的版本而无法安装,将无法使用网络适配器。您需要添加一个旧版网络适配器,用于模拟基于 Intel 21140 PCI快速以太网适配器,并在无需安装虚拟机驱动程序的情况下工作。旧版网络适配器还支持基于网络的安装,因为它具有启动到预启动执行环境 (PXE)的能力。如果虚拟机需要从网络启动,也需要旧版网络适配器。启动到 PXE之后,您需要禁用网络适配器。虚拟机在逻辑上连接到虚拟网络上的一个端口。为了使虚拟机上的网络应用程序能够从外部连接到某个事物,它首先会通过虚拟网络适配器路由到外部虚拟网络上的虚拟端口(连接虚拟机的端口)。然后将网络数据包定向到物理网络适配器并向外发送到外部物理网络。为了使虚拟机能够与管理操作系统进行通信,有两个选项可供选择。一个选项是将网络数据包通过物理网络适配器向外路由到物理网络,这种方法之后会使用第二个物理网络适配器将数据包返回给运行 Hyper-V 的服务器。另一个选项是通过虚拟网络路由网络数据包,这种方法更高效。选择哪个选项由虚拟网络决定。虚拟网络包含一种学习算法,该算法决定将通信定向到的最有效的端口,并将网络数据包发送到该端口。虚拟网络作出决定后,网络数据包将会被发送到所有的虚拟端口。

Hyper-V的内部网络虚拟交换机和外部网络虚拟交换机支持VLAN配置,而私有的虚拟交换机默认为vlantrunk模式无需要配置。对于每个虚拟机的虚拟网络适配器,您还可以配置一个 VLAN ID。虚拟交换机可以使用两种模式来配置 VLAN:访问模式和 trunk 模式。在访问模式中,虚拟网络的外部端口被限制为指定的一个 VLAN ID (1-4094)。当物理网络适配器连接到物理网络交换机上的某个端口也处于访问模式中时,请使用访问模式。若要使虚拟机能够访问外部处于访问模式下的虚拟网络,您必须将虚拟机配置为使用与在虚拟网络的访问模式中配置的相同 VLAN ID。在中继模式下,虚拟交换机会听所有的网络流量,将流量的所有端口。换句话说,网络数据包被发送到所有的虚拟机连接到它。默认情况下,在Hyper-V虚拟交换机被配置为Trunk模式,这意味着虚拟交换机接收所有网络数据包并将其转发给所有的虚拟机连接到它。没有太多需要配置Trunk模式中的虚拟交换机的配置。Trunk模式允许多个 VLAN ID共享物理网络适配器和物理网络之间的连接。若要使虚拟机能够外部访问多个 VLAN中的虚拟网络,您需要将物理网络上的端口配置为 trunk模式。还需要知道所使用的特定 VLAN,以及虚拟网络支持的虚拟机使用的所有 VLAN ID.

  Windows Server? 2012中的 Hyper-V虚拟交换机引入了一些新功能和增强能力,用于多租户隔离、流量整形、恶意虚拟机防护、以及简化的故障排除。利用内置的网络设备接口规范 (NDIS)筛选筛选器驱动程序以及 Windows筛选平台 (WFP)标注驱动程序支持,Hyper-V 虚拟交换机使独立软件供应商 (ISV)可以创建可扩展的插件(称为虚拟交换机扩展)以提供增强的网络和安全能力。在Windows server 2012中虚拟交换机变成了可扩张的虚拟交换机,它增强的功能有:

1Windows PowerShell commands for Hyper-V Virtual Switch

You can now use WindowsPowerShell commands, run manually or in scripts, to configure Hyper-V VirtualSwitch and related features.

VMNetworkAdapter

VMNetworkAdapterAcl

VMNetworkAdapterVlan

VMSwitch

 

 

2Multiple Virtual NICs

In previous versions ofHyper-V, only one parent virtual NIC was supported, however in Windows Server2012 Hyper-V, multiple NICs are supported. In addition, you can share thephysical NIC that is bound to the Hyper-V Switch with the management operatingsystem. You can create multiple parent virtual NICS that you use for livemigration, storage, and management; and you can assign each virtual NIC to adifferent virtual Local Area Network (VLAN). You can also create differentQuality of Service (QoS) polices for each virtual NIC.

 Add-VMNetworkAdapter ManagementOS Name Management

Add-VMNetworkAdapterManagementOSName Storage

Add-VMNetworkAdapterManagementOSNameLive Migration

 

3Port Access Control Lists (ACLs)

A port ACL is a rulethat you can apply to a Hyper-V switch port. The rule specifies whether apacket is allowed or denied on the way into or out of the VM. ACLs have threeelements with the following structure:Local or Remote Address | Direction |Action.You can specifyeither a local address or a remote address inLocal or Remote Address,but you cannot specify both. The value that you supply forLocal or RemoteAddress can be an IPv4 address, an IPv6 address, or a media access control(MAC) address. Optionally you can use an IP address range if you provide therange prefix.You can configure multiple port ACLs for a Hyper-V switch port.During operations, the port ACL whose rules match the incoming or outgoingpacket is used to determine whether the packet is allowed or denied.

Add-VMNetworkAdapterAcl -VMName MyVMLocalMacAddress 12-34-56-78-9A-Direction Both Action Allow

Add-VMNetworkAdapterAcl -VMName MyVMLocalMacAddressFF-FF-FF-FF-FF-FF Direction InBoundActionAllowAdd-VMNetworkAdapterAcl -VMNameMyVMLocalMacAddressAny Direction BothAction DenyAdd-VMNetworkAdapterAclVMName MyVM RemoteIPAddress 192.168.0.0/16Direction OutboundAction Meter

 

4MacAddressSpoofing

MacAddressSpoofingallows you to specify whether a VM is allowed to change its source MAC addressfor outgoing packets.

  1. Set-VMNetworkAdapter VMName MyVMMacAddressSpoofing On

  2. Set-VMNetworkAdapter VMName MyVMMacAddressSpoofing Off

 

 

 

5RouterGuard

RouterGuard allows youto specify whether the router advertisement and redirection messages fromunauthorized VMs should be dropped

  1. Set-VMNetworkAdapter VMName MyVMRouterGuard Off

  2. Set-VMNetworkAdapterVMName MyVMRouterGuard On

6DHCPGuard

DHCPGuard allows you tospecify whether DHCP server messages coming from a VM should be dropped.

  1. Set-VMNetworkAdapter VMName MyDhcpServer1DhcpGuard Off

  2. Set-VMNetworkAdapter VMName CustomerVMDhcpGuard On

7Port Virtual Local Area Network(PVLAN)

Network isolation isrelated to security, but unlike IPsec - which encrypts the network traffic -isolation logically segments the traffic. VLANs, however, suffer scalabilityissues. A VLAN ID is a 12-bit number, and VLANs are in the range 1-4095. In amulti-tenant data center, if you want to isolate each tenant by using a VLAN,configuration is complex and difficult. These scalability issues of VLANs aresolved when you deploy Hyper-V Network Virtualization, where tenants each havemultiple virtual subnets. However, a simple solution when each tenant only hasa single VM is to use PVLAN.PVLAN addresses some of the scalability issues ofVLANs. PVLAN is a switch port property. With PVLAN there are two VLAN IDs, aprimary VLAN ID and a secondary VLAN ID. A PVLAN may be in one of three modes.

  1. IsolatedCommunicates only with Promiscuous ports inthe PVLAN

  2. PromiscuousCommunicates with all ports in the PVLAN

  3. Community Communicates with ports in thesame community and any promiscuous ports in the PVLAN

PVLAN can be used to create anenvironment where VMs may only interact with the Internet and not havevisibility into other VMs network traffic. To accomplish this put all VMs(actually their Hyper-V switch ports) into the same PVLAN in isolated mode.Therefore, using only two VLAN IDs, primary and secondary, all VMs are isolatedfrom each other. The following PowerShell script puts a VMs switch port into PVLANisolated mode

8Trunk Mode

In addition to PVLAN, Hyper-V Virtual Switch also provides support for VLANtrunk mode. Trunk mode provides network services or network appliances on a VMwith the ability to see traffic from multiple VLANs.In trunk mode, a switchport receives traffic from all VLANs that you configure in an allowed VLANlist. You can also configure a switch port that is connected to a VM - but isnot bound to the underlying NIC - for trunk mode .In the following examplecmdlet, MyVM can send or receive traffic on any VLAN in the allowed list. Ifthere is no VLAN specified in the packet, the packet is treated as if it isfrom VLAN 10.

Set-VMNetworkAdapterVlanVMName MyVMTrunkAllowedVlanIdList1-100NativeVlanId 10

9Port Mirroring

With Port Mirroring, traffic sent to or from a Hyper-V Virtual Switch portis copied and sent to a mirror port. There are a range of applications for portmirroring - an entire ecosystem of network visibility companies exist that haveproducts designed to consume port mirror data for performance management,security analysis, and network diagnostics. With Hyper-V Virtual Switch portmirroring, you can select the switch ports that are monitored as well as theswitch port that receives copies of all the traffic.The followingexamples configure port mirroring so that all traffic that is sent and receivedby both MyVM and MyVM2 is also sent to the VM named MonitorVM.

Set-VMNetworkAdapterVMName MyVM PortMirroring Source

Set-VMNetworkAdapterVMName MonitorVM PortMirroring Destination

 

10IPsec Task Offload(IpsecTO)

Many encryptionalgorithms are processor-intensive, which can slow the performance of VMs.Hyper-V Virtual Switch now provides VMs with the ability to use IPsecTO, whichallows the VM to offload encryption processes to the NIC. Offloading theper-packet encryption operations from the VM to the NIC results in substantialCPU savings.

Set-VMNetworkAdapterVMName MyVM -IPsecOffloadMaximumSecurityAssociation200

IPsec includes aSecurity Association (SA) with which it performs encryption, and when youenable IPsecTO, the VM offloads the SA to the NIC for processing.IPsecTO-capable NICs have a limited number of SAs that can be offloaded, so youcan use Windows PowerShell to designate the number of SAs that the VM canoffload to the NIC. Following are the requirements for using IPsecTO.

  1. Only VMs runningWindows Server(R) 2008 R2 and Windows Server 2012 are supported,because the VMs network stack must support IPsecTO.

  2. The physical NIC must also support IPsecTO.

11Receive Side Scaling (RSS) andDynamic Virtual Machine Queue (dVMQ)

In networking it is important to resolve circumstances where networktraffic is blocked or slowed down, thereby causing latency. For native traffic,Receive Side Scaling (RSS) processes incoming network traffic so that it isnt sloweddown by a single CPU. RSS processes the IP source and destination fields andTCP source and destination ports to spread the receive traffic across multipleCPU cores. For receive network traffic coming externally from the server andinto the Hyper-V Virtual Switch, Dynamic Virtual Machine Queue (dVMQ) performsa function similar to RSS. With dVMQ, the destination MAC address is hashed toput the traffic destined for a virtual NIC into a specific queue. Theinterrupts to the CPU cores are also distributed to avoid being slowed by asingle CPU core. If your VMs on a Hyper-V Virtual Switch receive a lot ofexternal network traffic, its a good idea to use dVMQ.dVMQ alsoincludes dynamic load balancing. Previously, the MAC hashing was donestatically, and it was difficult to manage dVMQ. Management of dVMQ is nowsimple it is enabled by default, and no other management steps are required .If for some reason youhavedisabled dVMQ, you can enable it again by using the following cmdlet. The NICin this example is a physical NIC that is bound to the virtual switch, and itis named GuestTrafficNic.

Enable-NetAdapterVmqGuestTrafficNic

 

12Hyper-vQuality of Service (QoS)

QoS is a set of technologies for managing networktraffic in a cost effective manner, to enhance user experiences in enterpriseenvironments, as also in home and small offices. QoS technologies allow you tomeasure bandwidth, detect changing network conditions (such as congestion oravailability of bandwidth), and prioritize or throttle traffic. For example,you can use QoS to prioritize traffic for latency-sensitive applications (suchas voice or video), and to control the impact of latency-insensitive traffic(such as bulk data transfers)You can use Hyper-V QoS to manage network traffic on the virtualnetwork. In Windows Server? 2012, QoS includes new bandwidth managementfeatures that enable cloud hosting providers and enterprises to provideservices that deliver predictable network performance to virtual machines on aserver that is running the Hyper-V server role. Hyper-V QoS supports themanagement of upper-allowed and lower-allowed bandwidth limits, commonlyreferred to as maximum bandwidth and minimum bandwidth.

In hosted environments, Hyper-V QoS enables you toguarantee specific performance levels based on the service level agreements(SLAs) to which you have agreed with your customers. Hyper-V QoS helps ensurethat your customers are not impacted or compromised by other customers on theirshared infrastructure, which can include computing, storage, and networkresources.

In addition, enterprise networks might requiresimilar functionality. By using Hyper-V QoS in your enterprise, you can runmultiple virtual machine-based application servers on a host server that isrunning Hyper-V, and have confidence that each application server deliverspredictable performance.

Hyper-V QoS provides the ability to:

Enforce minimum bandwidth and maximum bandwidth for atraffic flow, which is identified by a Hyper-V Virtual Switch port number.

Configure minimum bandwidth and maximum bandwidth perHyper-V virtual switch port by using either PowerShell cmdlets or WindowsManagement Instrumentation (WMI).

Configure multiple virtual network adapters inHyper-V and specify QoS on each virtual network adapter individually.

enforce QoS policies on Single Root I/OVirtualization (SR-IOV)-capable network adapters that support bandwidthreservation per Virtual Port

Windows Server 2012 Hyper-V QoS can also use hardwarethat is compatible with data center bridging (DCB) to converge multiple typesof network traffic on a single network adapter with a guaranteed level ofservice provided to each type of traffic. With Windows PowerShell, you canconfigure these new features manually or enable automation in a script tomanage a group of servers, regardless of whether they are joined to a domain.

13Hyper-v SR-IOV

  在虚拟机管理程序虚拟化的早期,英特尔和AMD认识到:如果它们把某些功能从软件卸载到处理器本身上面,就有助于提供更好的性能。这项机制现在分别被称为Intel-VTAMD-V,也是大多数现代虚拟机管理程序的一项要求。SR-IOV同样将网络功能从软件转移到硬件上,以提高性能和灵活性。如果你有一台BIOS里面支持SR-IOV的服务器,又有能够支持SR-IOV的网卡,该服务器就能向虚拟机提供虚拟功能(Virtual Functions——实际上这些就是服务器本身的虚拟副本。如果你想广泛使用SR-IOV,就要明白如今支持它的网卡在它们所提供的虚拟功能数量方面很有限;有些网卡每块只支持4项虚拟功能,有些支持32项,有些最多支持64项。

  并不是因带宽而需要SR-IOV,因为只有万兆以太网连接才能被Hyper-V虚拟机总线塞满,但是它占用大约一个处理器核心用于计算。所以,如果你要求处理器的使用率很低,那么SR-IOV是最稳妥的选择。如果延迟时间极其重要,SR-IOV为你提供了近似本地裸机的网络性能,所以那是SR-IOV大放异彩的另一个场景。

  它有特定的应用和局限性,你在规划部署新的Hyper-V集群时需要注意。如果你使用Hyper-V可扩展交换机,又配置了端口的访问控制列表(ACL),可能还配置了一个或多个扩展,这些都会因SR-IOV而被绕过,因为交换机从来看不到SR-IOV流量。你也无法聚合主机上多块支持SR-IOV的网卡;不过,你可以在主机上有两块(或更块)物理SR-IOV网卡,把这些网卡提供给虚拟机;而且可以在虚拟机里面,利用虚拟网卡组建一个网卡群,以提升性能和故障切换机制。

SR-IOV的确可与实时迁移(Live Migration)协同使用,这是VMwarevSphere 5.1所做不到的。在每项虚拟功能的后台,Hyper-V利用平常的虚拟机总线网卡组建轻型网卡群;如果你把虚拟机实时迁移到没有SR-IOV网卡的主机,它只是切换到软件网卡。

SR-IOV 是一种通过提供 I/O 所需的直接硬件路径,使得 PCI Express设备能够在多个虚拟机之间进行共享的标准。Hyper-V能够支持符合 SR-IOV标准的网络适配器。SR-IOV 可降低网络延迟,降低处理网络通讯时的 CPU占用率,并可提升网络吞吐率。符合 SR-IOV标准的网络设备具有一种名为 Virtual Functions 的硬件界面,可通过安全的方式将其分配给虚拟机—并绕过管理用操作系统中的虚拟交换机,直接收发数据。策略与控制则依然由管理用操作系统实施。SR-IOV完全兼容实时迁移功能,因为基于硬件的网络在任何时间都可用。在实时迁移过程中,VirtualFunctions会被暂时删除。这样实时迁移即可使用不同供应商的网络适配器,或在目标计算机上 SR-IOV不可用的情况下使用。实现条件:

一个IOMMU(input/outputmemory management unit)设备系统的硬件支持

一个PCIExpress网络设备,其中有SR-IOV的能力驱动程序模型,同时支持PFVFS

 

Windows Server 2012 R2Hyper-V可扩展的虚拟交换机的又有了更强的功能:

1、企业和云服务提供商 (CSP)可以配置 Hyper-V虚拟交换机扩展端口访问控制列表 (ACL),以提供防火墙保护,并为数据中心的租户 VM实施安全策略。由于端口 ACL是在 Hyper-V虚拟交换机上而非 VM内部配置的,因此你可以管理多租户环境中所有租户的安全策略

  1. ACL 现在包括套接字端口号。在 Windows Server 2012中,可为 IPv4 IPv6指定源与目标 MAC地址和 IP地址。对于 Windows Server 2012R2,在创建规则时,还可以指定端口号。

  2. 现在,你可以配置单向的有状态规则,并提供超时参数。使用有状态防火墙规则可以允许流量,并且动态创建两个通信流。在这两个通信流中,有一个是出站规则,它与出站数据包中的五个特性匹配;另一个是入站规则,它也与相同的五个特性匹配。成功使用有状态规则一次以后,将允许这两个通信流,并且在你使用超时特性指定的时间段内,不再需要根据规则查找这些通信流。当防火墙规则超出超时特性时,将再次根据规则检查通信流。

  3. 在多租户环境中,你可以保护数据中心资源,并为租户提供安全策略实施。

  4. Hyper-V网络虚拟化兼容。

  5. 提供管理界面,让你使用 Windows PowerShell轻松配置防火墙规则。

  6. 提供日志记录和诊断功能,使你能够确认防火墙操作,并检测端口 ACL的任何可能的不当配置。

  7. 当您创建规则,您可以使用-weight参数,以确定其中的Hyper-V虚拟交换机处理规则的顺序。Weight的值表示为整数,具有较高整数的规则比低的整数规则优先处理。例如,如果你已经应用了两个规则,一个weight值为1,一个weight10,那么10的规则将优先处理。

  8. 可配置为无状态防火墙,只需根据数据包中的五个特性来筛选数据包即可;使用无状态防火墙配置,可以将任何防火墙规则应用到入站或出站网络流量,并且该规则可以允许或拒绝流量。

2网络流量的动态负载平衡NIC Teaming

  NIC组合就是把同一台服务器上的多个物理网卡通过软件绑定成一个虚拟的网卡,也就是说,对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序,以及本服务器所在的网络,这台服务器只有一个网络链接或者说只有一个可以访问的IP地址。之所以要利用NIC组合技术,除了利用多网卡同时工作来提高网络速度以外,还有可以通过NIC组合实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Fault tolerance)。

 微软NIC组合也称为负载平衡和故障转移(LBFO)NIC组合要求提供一个以太网网络适配器,该适配器可以用于分离使用VLAN的流量。通过故障转移提供故障保护的所有模式都至少需要两个以太网网络适配器。它应用于Windows Server 2012的所有版本中,包括核心版和图形界面完全版;NIC组合在 Windows 8中是不可用的。WindowsServer 2012实现在一个组中可支持多达 32NIC。它允许出于以下目的将一台计算机上的多个网络适配器放置到一个小组中

  1. 带宽聚合

  2. 进行流量故障转移,以防止在网络组件发生故障时失去连接

下面是基本的用于 NIC组合的算法,这两种模式都会导致入站和出站流量接近聚合带宽的实际限制,原因是组中的链路池相当于一个管道:

1、静态成组(IEEE 802.3ad draft v1):此模式配置交换机和主机之间需要哪种链接组合形式,由于这是一个静态配置的解决方案没有任何附加协议,所以就不会因为交换机或主机因为电缆的插入错误或其它错误而导致组合的形成。此种模式中,网卡,可以工作于不同的速度,就是说可以用不通速度的网卡建立组合,但同样要求交换机完全支持IEEE 802.3ad 标准,一般情况下,服务器级别的交换机通常支持此模式。属于依赖于交换机的模式。这种算法需要组中的所有网络适配器都连接到相同的交换机。

2、交换机独立:这是配置时的默认值,此模式不要求交换机参与组合配置,由于独立模式下的交换机不知道网卡是主机上组合的一部分,网卡可以连接到不同的交换机。属于独立于交换机的模式

3LACP动态组合(IEEE 802.1ax, LACP)LACP动态组合是到同一台交换机的链路聚合,只不过不是静态配置的,而是动态构成(也就是自动协商)的。它是通过一种智能的链路协商协议LACP (Link Aggregation Control Protocol)来实现的。LACP原本用于交换机和交换机之间的链路聚合,启用了LACP协议的2台交换机会相互发送LACP的协商报文,当发现2者之间有多条可用的链路的时候,自动将这些链路组合成一条带宽更大的逻辑链路,从而利用负载均衡来实现加宽交换机间链路带宽的目的。属于依赖于交换机的模式。这种算法需要组中的所有网络适配器都连接到相同的交换机。

Windows Server 2012中的 NIC组合支持以下流量分发方法:

Hyper-V交换机端口。当虚拟机具有独立的媒体访问控制 (MAC)地址时,虚拟机的 MAC地址可以为划分流量提供基础。在虚拟化中使用这种方案具有优势。因为相邻的交换机可以确定特定源 MAC地址位于唯一一个连接的网络适配器上,交换机将根据虚拟机的目标 MAC地址在多个链路上平衡外出负载(从交换机到计算机的流量)。当与虚拟机队列一起使用时该方案非常有用。但是,这种模式可能不够具体,因而无法获得较为平衡的分发,并且它将单个虚拟机限制为单个网络适配器上可用的带宽。Windows Server 2012 使用 Hyper-V交换机端口作为标识符,而不是源 MAC地址,因为在某些情况下,一个虚拟机可能使用交换机端口上的多个 MAC地址

哈希。该算法根据数据包的组件创建哈希,然后将具有该哈希值的数据包分配给可用的网络适配器之一。这样便在相同的网络适配器上保留来自相同 TCP 流的所有数据包。通常,哈希只是在可用的网络适配器之间创建平衡。市场上提供的某些 NIC组合解决方案监视流量的分发,并且它们将特定的哈希值重新分配给不同的网络适配器,以尝试更好地平衡流量。动态重新分发称为智能负载平衡自适应负载平衡

可以用作哈希函数输入的组件包括:

源和目标 MAC地址

源和目标 IP地址,考虑或不考虑 MAC地址(2 元组哈希)

源和目标 TCP端口,通常与 IP地址一起使用(4 元组哈希)

4元哈希可以更精细地分发通信流,从而使能够在网络适配器之间独立移动的流更小。但是,它不可以用于非 TCP 的流量或 UDP流量或从堆栈中隐藏 TCP UDP端口的流量,如受 Internet协议安全 (IPsec)保护的流量。在这些情况下,哈希回退到 2元组哈希。如果该流量不是 IP流量,哈希生成器将会使用源和目标 MAC地址。

NICTeam备用适配器:可以让其中的一个网卡当备用网卡;也可以让所有网卡都处于活动状态。

NIC Team也适合于虚拟机。它允许虚拟机具有连接到多个 Hyper-V 交换机的虚拟网络适配器并且即使该交换机下的网络适配器断开连接,也仍然能够连接。当使用诸如单根 I/O虚拟化 (SR-IOV)之类的功能时它非常有用,因为 SR-IOV流量不通过 Hyper-V交换机。因此,它无法受到 Hyper-V交换机下的组的保护。通过此虚拟机组合选项,管理员可以设置两个 Hyper-V交换机,每个交换机都连接到其自己的支持 SR-IOV的网络适配器。此时:

每个虚拟机可以从一个或两个 SR-IOV网络适配器安装虚拟功能。然后,当网络适配器断开连接时,虚拟机可以从主虚拟功能故障转移到备份虚拟功能。

或者,虚拟机也可能拥有从一个网络适配器和一个非虚拟功能网络适配器到其他交换机的虚拟功能。如果与虚拟功能关联的网络适配器断开连接,则流量可以故障转移到其他交换机,而不会失去连接。

由于在虚拟机中网络适配器之间的故障转移可能会导致流量与其他网络适配器的 MAC地址一起发送,因此与使用 NIC组合的虚拟机关联的每个 Hyper-V交换机端口都必须设置为允许 MAC欺骗或必须使用Set-VmNetworkAdapter PowerShell cmdlet设置“AllowTeaming=On”参数。

不兼容性:NIC组合与 WindowsServer 2012中的所有网络功能兼容,但有三个例外:SR-IOV、远程直接内存访问 (RDMA) TCP烟囱。对于 SR-IOV和远程直接内存访问 (RDMA),将数据直接发送给网络适配器,而不经过网络堆栈。因此,网络适配器组合无法查找数据或将数据重定向到组中的另一个路径。Windows Server 2012 中的 NIC组合不支持 TCP烟囱。

虽然Windows Server? 2012提供并行的负载分配与故障转移,但不确保 NIC组中 NIC之间的负载分配处于平衡状态。在 Windows Server? 2012 R2中,动态负载平衡会持续自动地在 NIC组中的 NIC之间移动通信流,以尽可能均衡地分担流量负载。

3Hyper-V网络虚拟化能够与 Hyper-V虚拟交换机的第三方转发扩展共存

现在,Hyper-V网络虚拟化 (HNV)环境中的 Hyper-V虚拟交换机上安装的转发 Hyper-V虚拟交换机扩展可以转发 VM客户地址 (CA)空间或物理地址 (PA)空间的数据包,因为交换机扩展现在能够与使用网络虚拟化通用路由封装 (NVGRE)的网络虚拟化无缝共存。如果你安装了第三方转发扩展,Hyper-V虚拟交换机现在将执行混合转发。使用混合转发时,已进行 NVGRE封装的网络流量将由交换机中的 HNV模块转发,而所有非 NVGRE网络流量将由你安装的第三方转发扩展转发。除了转发以外,第三方转发扩展仍可向进行 NVGRE封装的流量和未进行 NVGRE封装的流量应用其他策略,例如 ACL QoS。安装的转发扩展必须能够根据这两种类型的网络流量的预期目标来处理这些网络流量。例如,对于执行交换机组负载平衡的扩展而言,需要提供 PA地址可见性。Hyper-V虚拟交换机与第三方扩展的策略和功能不会彼此替代,它们是相辅相成的。

4使用 vRSS 缓解 VM的流量瓶颈

Windows Server 2012中,支持通过 SR-IOV 进行接收方缩放 (RSS);而现在在 Windows Server 2012 R2 中,VM网络路径支持虚拟 RSS (vRSS),因此 VM可承受更大的网络流量负载。以前,由于处理负载在单个 CPU核心上发生,因此 VM难以实现接近 10Gbps的网络吞吐量。vRSS通过将处理分散到主机上的多个核心以及 VM上的多个核心来缓解这种问题。若要充分利用 vRSS,必须将 VM 配置为使用多个核心,并且 VM必须支持 RSS。 当 VM VM网络路径上使用 RSS时,将自动启用 vRSS

5网络跟踪已简化,可提供更多详细信息

现在,网络跟踪包含交换机和端口配置信息,并且可以更方便地使用和读取通过 Hyper-V虚拟交换机以及你安装的任何转发扩展的跟踪数据包.统一跟踪能使网络管理员更有效地捕获网络流量,提高解决网络问题过程的效率。可以使用统一跟踪捕获发源于或终止于虚拟机的内部虚拟机 (VM) 流量,以及捕获发源于或终止于物理计算机的物理计算机流量。捕获同一台物理计算机上 VM之间的网络流量:假定在单一物理计算机上具有多个虚拟网络。统一跟踪可以捕获同一网络的各 VM间的流量,也可以捕获不同虚拟网络的各 VM间的流量。

实验一:NIC Team创建(注意主机安装了Hyper-v之后不能创建NIC Team报错)

1、准备一台安装了WindwosServer 2012操作系统的服务器。网卡两块或以上,名为host1

2、查看用于构建NIC Team可以使用的网卡

   Get-NetAdapter

3、创建名为Team1NIC Team。网卡使用NIC1NIC2,由于不插在同一个交换机上所以模式为独立,分流方式为Hyper-v端口

New-NetLbfoTeam -NameTeam1 -TeamNicName Team1

  -TeamMembers NIC1,NIC2 -TeamingMode SwitchIndependent

 -LoadBalancingAlgorithm HyperVPort

 Get-NetLbfoTeam | Format-Table-AutoSize

4、创建名为Team2NIC Team。网卡使用Slot 2,Slot 2 2,由于插在相同的交换机上所以模式为Staict.分流方式为源和目标TCP端口(TransportPorts

  New-NetLbfoTeam -Name Team2 -TeamNicName Team2 -TeamMembers "slot2","slot 2 2" -TeamingMode Static -LoadBalancingAlgorithmTransportPorts

 Get-NetLbfoTeam | Format-Table-AutoSize

5、在Team1组合上移除网卡NIC2,添加网卡Slot 2 3作为备用网卡

Remove-NetLbfoTeamMember-Name NIC2 -Team Team1

Add-NetLbfoTeamMember -NameSlot 2 3 -Team Team2 -AdministrativeMode Standby //模式问题导致不能添加做备份

Get-NetLbfoTeam | Format-Table -AutoSize

 

6、如果要删除所有NIC Teaming配置请执行以下命令

  Remove-NetLbfoTeam -Name Team1,Team2 //我这边断网所以逐一移除

    Get-NetLbfoTeam | Format-Table-AutoSize

 

实验二:Mutiple Virtual NICs

  1. 准备一台物理服务器支持硬件虚拟化功能并启用虚拟化支持,Host1物理服务器上安装Hyper-v角色。

    Get-WindowsFeaturehyper-v

    Install-WindowsFeature -name hyper-v -IncludeAllSubFeature-IncludeManagementTools -Restart //如果没有安装执行此命令

  2. 完成hyper-v角色安装后,创建Multiple Virtual NICs,并分配指定VLAN,隔离流量。

    Get-VMNetworkAdapter * -ManagementOS 

    Add-VMNetworkAdapterManagementOSNameManagement

    Add-VMNetworkAdapterManagementOSNameStorage

    Add-VMNetworkAdapterManagementOSNameLive Migration

    Add-VMNetworkAdapterManagementOSNameVirtual Machine

     

    Set-VMNetworkAdapterVlan-VMNetworkAdapterName "Management" -ManagementOS -Untagged

    Set-VMNetworkAdapterVlan-VMNetworkAdapterName "Storage" -ManagementOS -Access -VlanId 1000

    Set-VMNetworkAdapterVlan-VMNetworkAdapterName "Live Migration" -ManagementOS -Access -VlanId 2000

  3. 移除所有Virtual NICs,还原环境

    Remove-VMNetworkAdapter -name "Management" -ManagementOS

    Remove-VMNetworkAdapter -name"Storage" -ManagementOS

    Remove-VMNetworkAdapter -name "Live Migration" -ManagementOS

    Remove-VMNetworkAdapter -Name "VirtualMachine" -ManagementOS

    Get-VMNetworkAdapter * -ManagementOS 

     

实验三:在虚拟化环境中应用ACL

  1. 根据实验二环境,创建一个桥接到物理网络的虚拟交换机vswitch。提供给虚拟机访问外网

  2. Host1上分别安装两台windows server 2012 R2的虚拟机名为WebserverDatabase.并连接到vswitch虚拟交换机。Webserver上搭建一个简单的IIS网站端口用80Red1上搭建一个简单的IIS网站端口用1433

  3. 在两台虚拟机的系统防火墙开启各自的服务端口,此时两台虚拟机可以访问彼此的服务和Internet

  4. 设置Database虚拟机只接受Webserver虚拟机的1433访问,其他所有出站和入站的流量全部拒绝。

#首先获得两台虚拟机的网络配置

Get-VMNetworkAdapter *

#创建扩展型的ACL阻止Database服务器所有的出站和进站流量,只允许服务器214.214.51.80webserver)访问1433的服务。注意weight值越大,最先处理此规则

Add-VMNetworkAdapterExtendedAcl –VMNameDatabase -LocalIPAddress"214.214.51.81" -Action deny-Direction Inbound -Weight 1 //封杀进站流量

Add-VMNetworkAdapterExtendedAcl –VMNameDatabase -LocalIPAddress"214.214.51.81" -Action deny -Direction outbound -Weight 1 //封杀出战流量

Add-VMNetworkAdapterExtendedAcl -VMName Database -LocalIPAddress "214.214.51.81" -Protocol TCP -LocalPort 1433 -RemoteIPAddress"214.214.51.80"  -DirectionInbound -Action Allow -Weight 10  -Stateful $true //仅允许webserver访问database1433

Get-VMNetworkAdapterExtendedAcl|Format-Table -AutoSize

 

  1. 设置Webserver服务器能够访问Database1433服务端口,能够让用户访问自己的80服务端口,其他出站和进站流量全部拒绝

#获得两台虚拟机的网络配置

Get-VMNetworkAdapter *

#创建扩展型的ACL阻止Webserver服务器所有的出站和进站流量,只允许远端电脑访问80的服务,并且Webserver服务器可以访问Database服务器的1433服务。注意weight值越大,最先处理此规则

Add-VMNetworkAdapterExtendedAcl –VMNameWebserver -LocalIPAddress"214.214.51.80" -Action deny-Direction Inbound -Weight 1 //封杀进站流量

Add-VMNetworkAdapterExtendedAcl –VMNameWebserver -LocalIPAddress"214.214.51.80" -Action deny -Direction outbound -Weight 1 //封杀出站流量

Add-VMNetworkAdapterExtendedAcl -VMName Webserver -LocalIPAddress "214.214.51.80" -RemoteIPAddress"214.214.51.81" -RemotePort 1433 -Protocol TCP -Direction outbound -Action Allow -Stateful$true -Weight 10 //只允许出站访问Database1433

Add-VMNetworkAdapterExtendedAcl -VMName Webserver -LocalIPAddress "214.214.51.80" -Protocol TCP -LocalPort 80 -Direction Inbound -Action Allow -Stateful $true -IdleSessionTimeout 3600 -Weight 20 //只允许入站访问自己的80

查询当前的扩展型ACL配置

Get-VMNetworkAdapterExtendedAcl* | Format-table -AutoSize

  1. 清除所有ACL配置:还原环境

Remove-VMNetworkAdapterExtendedAcl-VMName database -Direction outbound -Weight 1

Remove-VMNetworkAdapterExtendedAcl-VMName database -Direction inbound -Weight 1

Remove-VMNetworkAdapterExtendedAcl-VMName database -Direction inbound -Weight 10

Remove-VMNetworkAdapterExtendedAcl -VMName Webserver -Direction outbound -Weight 1

Remove-VMNetworkAdapterExtendedAcl -VMName Webserver -Direction inbound -Weight 1

Remove-VMNetworkAdapterExtendedAcl -VMName Webserver-Direction outbound -Weight 10

Remove-VMNetworkAdapterExtendedAcl -VMName Webserver-Direction inbound -Weight 20

Get-VMNetworkAdapterExtendedAcl* | Format-table -AutoSize

 

 

实验四:虚拟化环境中应用VLANPVLAN

  1. 在实验三环境基础上,在Host1主机上添加两台虚拟机分别名为AppserverPC,两台虚拟机的网络都桥接到vswitch

  2. 四台虚拟机的防火墙都停掉,用于测试网络的联通性。

  3. 对四台虚拟机设置不同VLAN,只允许WebserverDatabase互通,AppserverPC互通。

    Get-VMNetworkAdapter * | format-table -autosize

    Set-VMNetworkAdapterVlan -VMName Webserver-Access -VlanId 10

    Set-VMNetworkAdapterVlan -VMName Database-Access -VlanId 10

    Set-VMNetworkAdapterVlan -VMName Appserver-Access -VlanId 20

    Set-VMNetworkAdapterVlan -VMName PCaccessVlanId 20 

    Get-VMNetworkAdapterVlan * | format-table-autosize

  4. 修改VLAN设置,让虚拟机PC可以访问WebserverDatabase服务器。

Set-VMNetworkAdapterVlan -VMName PC -Trunk-NativeVlanId 10 -AllowedVlanIdList10-20

但是无法访问Appserver。那么有没有办法可以PC访问所有服务器呢?但又能隔离服务器呢?这时PVLAN就诞生了

  1. 移除所有vlan配置,还原环境

    Set-VMNetworkAdapterVlan -VMNamewebserver,database,appserver,pc -Untagged 

    Get-VMNetworkAdapterVlan * | format-table-autosize

     

  2. 将虚拟机WebserverDatabase设置为PVLAN的团体模式,主VLAN100,辅助VLAN110将虚拟机Appserver设置为PVLAN隔离模式,主VLAN100,辅助VLAN120.将虚拟机PC设置为PVLAN混杂模式,主VLAN100,辅助是VLAN110120

    Set-VMNetworkAdapterVlan -VMNamewebserver,database -Community -PrimaryVlanId 100 -SecondaryVlanId 110

    Set-VMNetworkAdapterVlan -VMName appserver-Isolated -PrimaryVlanId 100-SecondaryVlanId 120

    Set-VMNetworkAdapterVlan -VMName pc-Promiscuous -PrimaryVlanId 100-SecondaryVlanIdList 110-120

    Get-VMNetworkAdapterVlan * | format-tableautosize

  3. 测试PVLAN的效果

    PC可以Ping通所有服务器

    WebserverDatabase可以互访,两者都可以访问PC,但是不能访问Appserver

    Appserver只能访问PC

  4. 移除PVLAN的所有配置

    Set-VMNetworkAdapterVlan -VMNamewebserver,database,appserver,pc -Untagged 

    Get- VMNetworkAdapterVlan *

 

几个实验都是Powershell的展示,用powershell完成所有设定。要重视Powershell的编程能力了。Powershell使Windows server 2012更灵活。管理员懂的


视频分享:http://pan.baidu.com/s/1dDzNA17


  相关解决方案