Iron Networks Announces Windows Server 2012 Hyper-V Network Virtualization Gateway Appliance

Windows Server 2012 Logo

Finally some months after the launch of Windows Server 2012 and System Center 2012 SP1, Iron Networks announces Windows Server 2012 Network Virtualization (NVGRE) Gateway Appliance for System Center 2012 SP1 Virtual machine Manager at the Microsoft Management Summit 2013. The Network Virtualization Gateway Appliance allows you to connect your Software Defended Networks (SDN) which you have created with Windows Server 2012 Network Virtualization to physical hardware or other networks.

NetworkVirtualization

Windows  Server2012 Hyper-V Network Virtualization provides virtual networks to virtual  machines, similarly to how server virtualization (hypervisor) provides virtual  machines to the operating system. Network virtualization decouples and isolates  virtual networks from the physical network infrastructure and removes the  constraints of VLAN and hierarchical IP address assignment from virtual machine  provisioning. This flexibility makes it easy for customers to move workloads to IaaS clouds and adds efficiency for hosters and datacenter administrators to  manage their infrastructure, while maintaining the necessary multi-tenant  isolation, security requirements, and supporting overlapping virtual machine IP  addresses.

“Microsoft Windows Server 2012 Hyper-V  Network Virtualization provides greater freedom for workload placements,” said  Brian Hillger, director, Server and Tools Marketing, Microsoft. “Virtual  machine workload placement is no longer limited by the IP address assignment or  VLAN isolation requirements of the physical network because it is enforced  within Hyper-V hosts, based on software-defined, multitenant virtualization  policies.”

 

image-hybrid-cloud_DiagramB_s

You can get more information about the Iron Networks Announcement here: Iron Networks Announces Windows Server 2012 Network Virtualization Gateway Appliance

 

Hyper-V vs. VMware vSphere – Networking

Windows Server 2012 RC LogoIt is time to compare some of the networking features of Hyper-V and VMware vSphere. Networking is one of the key elements of a Private Cloud. It is important to have a simple and scalable network infrastructure which is fast and secure. That’s why Microsoft invested into Hyper-V networking with creating features like built in NIC teaming, Network Virtualization and other security and offloading features.

  • SR-IOV Support – Single-root I/O virtualization supports native IOV in existing single root complex PCI-E topologies. It requires support for new device capabilities to configure multiple virtualized configuration spaces.
  • Network Virtualization
  • PVLAN support – Provide isolation between two virtual machines on the same VLAN
  • Dynamic Virtual Machine Queue (D-VMQ) – D-MVQ will dynamically span processing Virtual Machine Queue traffic across multiple CPUs.
  • DHCP Guard – Protects the environment from DHCP servers installed in a virtual machine
  • Router Guard – Protects the environment from router advertisement installed in a virtual machine
  • Port mirroring
  • Port ACLs – isolation of network traffic for virtual network adapters and virtual ports.
  • VLAN Trunk mode – Allows directing traffic from a group of VLANs to a specific VM
  • IPsec Task offload – Allows to offload IPsec traffic to the physical network adapter
  • Integrated Network Adapter Teaming
  • The maximum size of a physical disk in attached to a Hyper-V virtual machine is determined by the guest operating system and the chosen file system within the guest
  • vStorage API for Multipathing (VAMP) is only available in Enterprise & Enterprise Plus editions of vSphere 5.0
  • vStorage API for Array Integration (VAAI) is only available in Enterprise & Enterprise Plus editions of vSphere 5.0
  • VMware documentation does not suggests that their respective platforms support 4K Advanced Format Drives
Capability Windows Server 2012 RC Hyper-V VMware vSphere Hypervisor VMware vSphere 5.0 Enterprise Plus
Extensible Switch Yes No Replaceable
Available Partner Extensions 4 No 2
PVLAN Support Yes No Yes
ARP/ND Spoofing Protection Yes No vShield App/Partner
DHCP Snooping Protection Yes No vShield App/Partner
Virtual Port ACLs Yes No vShield App/Partner
Trunk Mode to Virtual Machines Yes No No
Port Monitoring Yes Per Port Group Yes
Port Mirroring Yes Per Port Group Yes
Dynamic Virtual Machine Queue Yes NetQueueC NetQueue
IPsec Task Offload Yes No No
SR-IOV Yes DirectPath I/O DirectPath I/O
Network Virtualization Yes No Partner

 

  • The vSphere Distributed Switch (required for PVLAN capability) is available only in the Enterprise Plus edition of vSphere 5.0 and thus far, seems to be replaceable (By Partners such as Cisco/IBM) rather than extensible.
  • ARP Spoofing, DHCP Snooping Protection & Virtual Port ACLs require either vShield App or a Partner solution, all of which are additional purchases on top of vSphere 5.0 Enterprise Plus
  • Port Monitoring and Mirroring at a granular level requires vSphere Distributed Switch, which is available in the Enterprise Plus edition of vSphere 5.0.
  • Dynamic Virtual Machine Queue (DVMQ) is not supported by either XenServer or vSphere, which both support regular VMq (known as NetQueue on vSphere).
  • DirectPath IO, whilst not identical to SR-IOV, aims to provide virtual machines with more direct access to hardware devices, with network cards being a good example. Whilst on the surface, this will boost VM networking performance, and reduce the burden on host CPU cycles, in reality, there are a number of caveats in using DirectPath I/O:
    • Very small Hardware Compatibility List
    • No Memory Overcommit
    • No vMotion (unless running certain configurations of Cisco UCS)
    • No Fault Tolerance
    • No Network I/O Control
    • No VM Snapshots (unless running certain configurations of Cisco UCS)
    • No Suspend/Resume (unless running certain configurations of Cisco UCS)
    • No VMsafe/Endpoint Security support
    • No such restrictions are imposed when using SR-IOV, ensuring customers can combine the highest levels of performance with the flexibility they need for an agile infrastructure.

Sources:

Check out my Blog post Hyper-V 2012 – Hey I Just Met You And This Is Crazy for more information about the latest version of Hyper-V.

System Center 2012 SP1 CTP2 – Virtual Machine Manager Improvements #1

Microsoft System Center Logo

I cloud not resist to install the CTP2 of System Center 2012 – Virtual Machine Manager. First I have to say the CTP2 of Virtual Machine Manager runs unbelievable stable and fast. If you may have worked with other releases of VMM you know what I mean.

I had not much time to check for everything which is new but I found two interesting things which are in my opinion great improvements.

Hyper-V Host Hardware – Logical network connectivity

In my opinion the new design of network adapter pages with the logical network selection is a great usability improvement, and makes much more sense now.

System Center 2012 – Virtual Machine Manager without Service Pack 1 (Screenshot from Hyper-V.nu):

System Center 2012 – Virtual Machine Manager Network

System Center 2012 – Virtual Machine Manager Service Pack 1 CTP2:

System Center 2012 SP1 CTP2 – Virtual Machine Manager Network

Hyper-V Host Hardware – Storage 

System Center 2012 – Virtual Machine Manager Service Pack 1 CTP2:

System Center 2012 SP1 CTP2 – Virtual Machine Manager Storage

This things will maybe change until RTM of System Center 2012 SP1 but at the moment they look pretty good. I am sure there is a lot more in CTP2.

Windows Server 2012 NIC Naming

Windows Server 2012 RC Logo

Some weeks ago I wrote a blog post how you can configure Network Adapters on a Hyper-V host via PowerShell. I mentioned that the NICs in Windows Server 2008 R2 are always named differently. Now I have some great news in Windows Server 2012 Release Candidate this has changed.

Windows Server 2012 NICs Server Manager

Some hours ago I installed one of my Cisco UCS C200 servers with the Windows Server 2012 Release Candidate. And I realized the new naming of the network adapters.

Windows Server 2012 NICs

Now I run my Get-NICInformation.ps1 PowerShell script to get some more information about this.

Windows Server 2012 NICs PCI Slot order

It looks like the new naming is done by PCI slot order because I don’t think Cisco supports Consistent Device Naming yet. Anyway this is great news for all the Hyper-V guys out there.

If you wonder, the order in my case is Ethernet 1 Port 1 to Port 4 are the 4 Quadport Intel NIC and Ethernet 2 Port 1 and Port 2 are the build-in ports.

Two more things, first the PowerShell script which I used to configure the network adapters from a XML file stills works fine. To check this and make the screenshots for this blog post I had to install my Hyper-V Hosts twice, so please share this post ;-)

 

Configure Hyper-V Host Network Adapters Like A Boss

Hyper-V R2 SP1

If you are working a lot with Hyper-V and Hyper-V Clustering you know that something that takes a lot of time is configure the Hyper-V Host Network Adapters. First because most of the time you have a lot of NICs build into your host for the different Hyper-V and Cluster networks and secondly Windows names the NICs in a random way and this makes it hard to find out which network card is the right one. Maybe your first NIC on your Hyper-V Host01 is called “Local Area Connection 2″ and on your second Hyper-V Host with the same hardware configuration the “same” NIC is called “Local Area Connection 3″. One of the possibilities to find out which network card is the right one is to check the MAC address of the network adapter. But for this you still have to know which MAC address is on which network adapter port.

Another way to do it is to plug in the network cables one by one. So you can see which port is active and then you can rename the network adapter. Now some times this one is one of the only solutions, but it takes a lot of time to do this on every host. And if you build Clusters up to 16 Hosts you really don’t want to do that.

Now there is a solution, you can sort your NICs by PCI bus and PCI slot. Maarten Wijsman did a blog post how you can do this on the Hyper-V.nu blog. With this knowledge you can start to automate this very easy.

networkcable

I have created two Windows PowerShell scripts which make my life a lot easier.

First I configured the first Hyper-V host and renamed all the Network adapters. If you have a GUI server you could do that via GUI or if you have a Windows Server Core or Hyper-V Server you can do this via netsh.

netsh interface set interface "Local Area Connection 2" newname="Management"

If I have done that I use my  Windows PowerShell script called Get-NICInformation.ps1 to get the information about the network adapters.

get-nicinformation

This gives me a lot of information about the NICs in my first hosts. But the important part is the order of the NICs. In my example I know that the order is this:

  • Management
  • VMNet
  • CSV
  • LiveMigration
  • iSCSI01
  • iSCSI02

Since my other hosts have the same hardware they will have the same PCI Bus order.

# ---------------------------------------------------------------------------------------------- #
# Powershell Get-NICInformation $Rev: 748 $																 	 
# (c) 2011 Thomas Maurer. All rights reserved.											     
# created by Thomas Maurer	
# www.thomasmaurer.ch
# www.itnetx.ch																     
# last Update by $Author: tmaurer $ on $Date: 2012-02-24 14:07:36 +0100 (Fr, 24 Feb 2012) $		 
# ---------------------------------------------------------------------------------------------- #


#region [INFO BLOCK]
# INFO
Write-Host "                               " -BackgroundColor Black -ForegroundColor White
Write-Host " PowerShell Get-NICInformation " -BackgroundColor Black -ForegroundColor White
Write-Host "                               " -BackgroundColor Black -ForegroundColor White
Write-Host " by Thomas Maurer              " -BackgroundColor Black -ForegroundColor White
Write-Host " www.thomasmaurer.ch           " -BackgroundColor Black -ForegroundColor White
Write-Host "                               " -BackgroundColor Black -ForegroundColor White
#endregion

$adapters = Get-WMIObject Win32_PNPSignedDriver | Where-Object { $_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*” } | Sort-Object location
 
foreach ($adapter in $adapters ) {
 
    $adapterName = Get-WMIObject Win32_NetworkAdapter | Where-Object { $_.PNPDeviceID -eq $adapter.DeviceID }
    $adapterConfiguration = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.index -eq $adapterName.Index }
 
    Write-Host ‘Adapter Name :’ $adapterName.NetConnectionID
    Write-Host ‘PCI BUS :’ $adapter.Location
    Write-Host ‘MAC Address :’ $adapterName.MACAddress
    Write-Host ‘GUID :’ $adapterName.GUID
    Write-Host ‘Adpater Index :’ $adapterName.Index
    Write-Host ‘Hardwarename :’ $adapterName.Name
    Write-Host ‘DHCP enabled :’ $adapterConfiguration.DHCPEnabled
    Write-Host ‘IP Address :’ $adapterConfiguration.IPAddress
    Write-Host ‘Subent :’ $adapterConfiguration.IPSubnet
    Write-Host ‘Default Gateway :’ $adapterConfiguration.DefaultIPGateway
    Write-Host   
 
}

For the next step I go to my second host. There I have my other Windows PowerShell script (Set-IPAddressfromXML) and a XML file (networkconfig.xml).

dir

I edit the networkconfig.xml file with the correct network information. Important here are the id=”" parameters. They are showing the order of the NICs so with Get-NICInformation I can see the Management interface is the first one, so it gets id=”1″, VMNET is the second one it gets id=”2″ and so on. You also set the correct IP Address information for the second host. Most of the time you just have to change the last number.

You can also set non static IP Addresses (DHCP), in my case I did this for the VMNET adapter which will be used by the Hyper-V Virtual Switch and does not need a IP address.

networkconfigxml

<?xml version="1.0" encoding="utf-8"?>
<config>
  <networkadapters>
    <nic id="1" name="Management" static="true" ip="10.0.20.1" subnet="255.255.0.0" gateway="10.0.0.1" />
    <nic id="2" name="LiveMigration" static="true" ip="192.168.21.1" subnet="255.255.255.0" gateway="" />
    <nic id="3" name="CSV" static="true" ip="192.168.22.1" subnet="255.255.255.0" gateway="" />
    <nic id="4" name="TeamedAdpater01" static="false" ip="" subnet="" gateway="" />
    <nic id="5" name="TeamedAdpater02" static="false" ip="" subnet="" gateway="" />
    <nic id="6" name="TeamedAdpater03" static="false" ip="" subnet="" gateway="" />
    <nic id="7" name="ISCSI01" static="true" ip="10.10.21.1" subnet="255.255.255.0" gateway="" />
    <nic id="8" name="ISCSI02" static="true" ip="10.10.22.1" subnet="255.255.255.0" gateway="" />
  </networkadapters>    
</config>

After you have done this, you can now simply run the Set-IPAddressfromXML script. This will use the Information from the networkconfig.xml file and will rename all network adapters and will set the correct IP addresses.

set-ipaddressfromxml

# ---------------------------------------------------------------------------------------------- #
# Powershell Set-IPAddressfromXML $Rev: 748 $																 	 
# (c) 2011 Thomas Maurer. All rights reserved.											     
# created by Thomas Maurer	
# www.thomasmaurer.ch
# www.itnetx.ch																     
# last Update by $Author: tmaurer $ on $Date: 2012-02-24 14:07:36 +0100 (Fr, 24 Feb 2012) $		 
# ---------------------------------------------------------------------------------------------- #

#region [INFO BLOCK]
# INFO
Write-Host "                                 " -BackgroundColor Black -ForegroundColor White
Write-Host " PowerShell Set-IPAddressfromXML " -BackgroundColor Black -ForegroundColor White
Write-Host "                                 " -BackgroundColor Black -ForegroundColor White
Write-Host "  done by Thomas Maurer          " -BackgroundColor Black -ForegroundColor White
Write-Host "  www.thomasmaurer.ch            " -BackgroundColor Black -ForegroundColor White
Write-Host "                                 " -BackgroundColor Black -ForegroundColor White
#endregion

#region [CONFIG BLOCK]
# Get XML Information
[Xml]$global:xmlData = Get-Content ".\networkconfig.xml"
# Set NIC number starting value
[int]$global:nicNumber = "1"
#endregion

#region [MAIN BLOCK]
#Get NIC list
$Adapters = Get-WMIObject Win32_PNPSignedDriver | where { $_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*”} | Sort-Object location
 
foreach ($Adapter in $Adapters ) {
    # Get Adapter Info
    $AdapterName = Get-WMIObject Win32_NetworkAdapter | where { $_.PNPDeviceID -eq $Adapter.DeviceID }
    $nic = $xmlData.config.networkadapters.nic | Where-Object {$_.id -eq $nicNumber}
    
    # Write NIC Info
    Write-Host ‘Adapter Name :’ $AdapterName.NetConnectionID
    Write-Host ‘PCI BUS :’ $Adapter.Location
    Write-Host ‘MAC Address :’ $AdapterName.MACAddress
    Write-Host ‘GUID :’ $AdapterName.GUID
    Write-Host ‘New Name :’$nic.name
    Write-Host
    
    # Change NIC Name
    Invoke-Expression ('netsh interface set interface `"' + $AdapterName.NetConnectionID + '`" newname=`"' + $nic.name + '`" | out-null')
    Write-Host ('netsh interface set interface "' + $AdapterName.NetConnectionID + '" newname="' + $nic.name + '"') -BackgroundColor Green -ForegroundColor Black
    
    # if true set IP Address
    if ($nic.static -eq "true"){
        Invoke-Expression ('netsh interface ipv4 set address `"' + $nic.name + '`" static ' + $nic.ip +' ' + $nic.subnet + ' ' + $nic.gateway + ' | out-null')
        Write-Host ('netsh interface ipv4 set address "' + $nic.name + '" static ' + $nic.ip +' ' + $nic.subnet + ' ' + $nic.gateway) -BackgroundColor Green -ForegroundColor Black
    }
    else {
        Write-Host "No IP set" -BackgroundColor Green -ForegroundColor Black
    }
    
    # Count +1 for next Adapter
    $nicNumber++
}
#endregion

 

I can now copy the Set-IPAddressfromXML.ps1 and the networkconfig.xml to each Hyper-V hosts and edit the IP Addresses in the xml file, run the PowerShell file and I am done.

Lets recap:

  1. Rename the NICs of the first hosts
  2. Run the Get-NICInformation.ps1 on the first host and check the NIC order
  3. Edit the networkconfig.xml on the second hosts with the right order of the NICs
  4. Run the Set-IPAddressfromXML.ps1
  5. Do this for all Hyper-V Hosts.

I hope this will make life easier :)

You can download the Scripts from my Skydrive

Some other things:

  • I have tested this with Windows Server 2008 R2, Hyper-V Server R2, Windows Server 8 beta, Hyper-V Server 8 beta
  • It works for both because it’s not done with PowerShell v3, maybe I will update it to get it even better.
  • I do not support this script, and you are running it on your own risk.

Windows Server 8 NIC Teaming

With the Developer Preview release of Windows Server 8 which Microsoft released at BUILD, Microsoft showed the new integrated NIC Teaming feature. Basically you could do NIC Teaming before but you had to use software and driver from network card or server vendors which was sometimes a little bit of a pain.

Now with the integrated NIC Teaming features in Windows Server 8 you can team network cards even if they are from different vendors. I am sure this will make lives of Hyper-V Engineers a lot easier.

Windows Server 8 NIC Teaming

Windows Server 8 NIC Teaming

 

Windows Server 8 NIC Teaming

Windows Server 8 Hyper-V Network Bandwidth Management

With the new version of Hyper-V which comes with Windows Server 8 Developer Preview you can now manage the Network Bandwidth with a Maximum and a Minimum value.

Bandwidth Management Windows Server 8 Hyper-V

This allows you to create some SLAs for hosted Virtual Machines.

For example this is a possible scenario:

Windows Server 8 Hyper-V Networking

There are a lot of other networking improvments in Windows Server 8 and Hyper-V 3. You can get some of them in my little Overview about new features in Windows Server 8 Hyper-V: Hyper-V: “Version 3 kills them all”.