Deploy a Software Defined Network infrastructure using VMM SDN Express #SCVMM #SDN #Sysctr

As VMM is a great tool to deploy VM with and with Windows Azure Pack it has a central role, but now in Azure Stack there is no place for VMM.

Unless you are using it to deploy VM’s for Software defined networking RRAS,SLB,Network Controllers, Storage Spaces Direct, SOFS. So plenty of options there. Recently on the Github site Microsoft placed some SDN templates for VMM called VMM Express. these templates are a perfect start for a Network Controller,RAS Gateway for SDN or Software Load Balancing (SLB) for SDN.


System Center 2016 Virtual Machine Manager (VMM) can be used to deploy and manage a Software Defined Network (SDN) infrastructure.

SDN virtualizes your network to abstract physical hardware network elements such as switches and routers. Using SDN you can dynamically manage your datacenter networking to meet workload and app requirements. Network policies can be implemented consistently, at scale, even as you deploy new workloads, or move workloads across virtual or physical networks.

If you deploy SDN in the VMM fabric you can:

  • Provision and manage virtual networks at scale.
  • Deploy and manage the SDN infrastructure, including network controllers, software load balancers, and gateways.
  • Define and control virtual network policies centrally and link them to your applications or workloads. When your workload is deployed or moved, the network configuration adjusts itself automatically. This is important because it removes the need for manual reconfiguration of network hardware, thereby reducing operational complexity while saving your valuable resources for higher-impact work.
  • Control traffic flow between virtual networks, including the ability to define guaranteed bandwidth for your critical applications and workloads.

SDN combines a number of technologies, among them:

  • Network Controller:The network controller allows you to automate configuration of your network infrastructure, instead of manually configuring network devices and services.
  • RAS Gateway for SDN: RAS Gateway is a software-based, multitenant, BGP capable router in Windows Server 2016 that is designed for CSPs and Enterprises that host multiple tenant virtual networks using HNV.
  • Software Load Balancing (SLB) for SDN: (SDN) in Windows Server 2016 can use Software Load Balancing (SLB) to evenly distribute tenant and tenant customer network traffic among virtual network resources. The Windows Server SLB enables multiple servers to host the same workload, providing high availability and scalability.


There are just a few easy steps to start with.

You can create or download a prepared virtual hard disk in vhd or vhdx format.  Import the vhd/vhdx files to the VMM library.

And now the best part you will need VMM Express for this VMM SDN Express these files are on github download it and extract it an import this on your VMM library.


Now that the files are on the VMM library we can import the templates

image Check the import Template and navigate to the extracted VMM Express Files.


For Creating Certificates I used the Selfsigned option as below

$cert = New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "MultiNodeNC" -DnsName @("") Export-Certificate -Cert $cert -FilePath c:\MultiNodeNC.cer $PlainPassword = "123456" $SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force Export-PfxCertificate -Cert $cert -FilePath c:\MultiNodeNC.pfx -Password $securepassword -ChainOption BuildChain copy C:\MultiNodeNC.pfx \\localhost\MSSCVMMLibrary\\ copy C:\MultiNodeNC.cer \\localhost\MSSCVMMLibrary\\ copy C:\MultiNodeNC.cer \\localhost\MSSCVMMLibrary\\


Now that the Template is loaded is shows a interim mode first you have to reconnect the template items to your library.


The items with out the X mark you need to reconnect. as the name is different than in my library like winserver.vhdx is now ws2016,vhdx.

this is a one time step only! pick the right image and files. As you can see there are several steps that we must for fill to complete the template


Now that all the steps are Completed the Template is ready for deployment in VMM


As I imported all the VMM SDN templates, keep in mind that there are two types V1 ( gen 1) and V2 ( gen2 ) vm’s you can’t mix them and you need the right VHDX for this


Next step is deployment.

Opening the template in the designer you can see what is deployed and the instance count you can change and some hardware changes unless they have dependency’s then you will need to change the XML before the import. But test first with sample template before create your own and ends up in a failure.



Starting the deployment right click on the template.


The first question is pick a name and choose your management network. Remember this name is later been used in the connection string.


the next step is give all the template variables a value and start the deployment


I used


Run this on a Hyper-v Host with plenty of memory the basic VM’s are consuming 8 GB per VM and default not dynamic. learned from that.


Then click the button “Refresh”. Now you could click the button “Deploy Service”.


Now that the VM’s are deployed and are up and running ( check your job log in VMM ) We can add a Network Services


image This is almost next next Finish.

Next step seems always difficult what is my connection string samples are given but how do I use it ?


well you need a Server Url in this case it is the IP address that is used as restendpoint earlier.
serverurl=;SouthBoundIPAddress=;servicename=Sample NC01


The connection string is in place and testing

image image

Select a host to place this.

Next step is creating a logical network for network virtualization.

Create a new logical network



Check the box Managed by Network controller.


Add a network to the Logical network ( use your own network and VLAN)


This is just like any other Logical network Fill in the address space and Gateway with DNS



Done NOW yes another step is add this network to the Hyper-v Switch


Adding the network to the Hyper-v switch so you can use the network in the VM’s as you can see there are a lot of networks and IP/ Vlans involved.  befor you start create a test and see how all the IP’s will fit in your environment. Make a design of the IP’s

Just create a new VM network and use this for the VM’s that are running in the network.  Next time I will go deeper into the usage and where the VM’s live.



The VMM express templates a re a great way to start but the network part is always a pain there is no easy wizard that creates it all for you. eh powershell. hope this is helpful , it helped me during the blog building rebuilding and maybe I forgot something in the blog I rebuild this several times and run out of compute on my hyper-v server, guess I need a bigger server( more memory)

But you will need to test this But there are great guidance’s on the Microsoft site and even a great video tutorial for deploying a network controller.


Flickr Tags: Windows Server 2016,CloudOS

Follow Me on Twitter @ClusterMVP

Follow My blog

Linkedin Profile Http://

Google Me :

Bing Me :


PowerShell Place custom VM into Windows Azure Pack Subscription #wapack #cloud #scvmm #Microsoft

During migrations there is always the trouble of all those settings and things to do before everything is running smoothly.

Well during my migration I needed to move several Machines to a private cloud subscription in Azure Pack.

As I’m not the Biggest Powershell Guru I like to keep things simple and I’m a big fan of the “ select Name “  and the  “ Out-GridView “

Options these options give you much more detail and make powershell a but more GUI ( don’t shoot )

#Set your SCVMM server and use -ForOnBehalfOf to make use of Service Provider Foundation.
Import-Module -Name virtualmachinemanager
$VMMSERVER = Get-SCVMMServer -ComputerName YOUR OWN VMM Server-ForOnBehalfOf

#Select WAP Cloud
$Cloud = Get-SCCloud -Name (Get-SCCloud | select Name | Out-GridView -Title "Select WAP Cloud" -PassThru).Name

#Select Select WAP User Subscription
$User = (Get-SCUserRole | Where-Object Cloud -Match $Cloud).Name | Out-GridView -PassThru -Title "Select WAP User Subscription"

# Show WAP Subscription User
$WAPUserrole = Get-SCUserRole | Where-Object Cloud -Match $Cloud | Where-Object Name -Like $User*
$WAPUserrole |ft name

# Select Single VM to WAP
$WAPVM = (Get-SCVirtualMachine ($Cloud | Get-SCVirtualMachine | select Name | Out-GridView -Title "Select Single VM to WAP" -PassThru).Name)



# show Selected VM to WAP Subscription
$WAPVM|ft name

#Place VM in WAP Subscription
Set-SCVirtualMachine -VM $WAPVM –UserRole $WAPUserrole –Owner $User

As there is a pick list there is no typo there when moving the VM

When Checking the Windows Azure Portal you will see after a refresh a VM that is migrated to Azure Pack.



Happy clustering

Robert Smit