When your tenants are using VLANs instead of SDN
Ever since the release of Windows Azure Pack, I’ve been a strong believer of software-defined datacenters powered by Microsoft technologies. Especially the story around NVGRE has been interesting and something that Windows Server, System Center and Azure Pack are really embracing.
If you want to learn and read more about NVGRE in this context, I recommend having a look at our whitepaper: https://gallery.technet.microsoft.com/Hybrid-Cloud-with-NVGRE-aa6e1e9a
Also, if you want to learn how to design a scalable management stamp and turn SCVMM into a fabric controller for your multi-tenant cloud, where NVGRE is essential, have a look at this session: http://channel9.msdn.com/Events/TechEd/Europe/2014/CDP-B327
The objective of this blog post is to:
· Show how you should design VMM to deliver – and use dedicated VLANs to your tenants
· Show how to structure and design your hosting plans in Azure
· Customize the plan settings to avoid confusion
How to design VMM to deliver – and use dedicated VLANs to your tenants
Designing and implementing a solid networking structure in VMM can be quite a challenging task.
We normally see that during setup and installation of VMM, people don’t have all the information they need. As a result, they have already started to deploy a couple of hosts before they are actually paying attention to:
1) Host groups
2) Logical networks
3) Storage classifications
Needless to say, it is very difficult to make changes to this afterwards when you have several objects in VMM with dependencies and deep relationship.
So let us just assume that we are able to follow the guidelines and pattern I’ve been using in this script:
The fabric controller script will create host groups based on physical locations with child host groups that contains different functions.
For all the logical networks in that script, I am using “one connected network” as the network type.
This will create a 1:Many mapping of the VM network to each logical network and simplify scalability and management.
For the VLANs networks though, I will not use the network type of “one connected network”, but rather use “VLAN-based independent networks”.
This will effectively let me create a 1:1 mapping of a VM network to a specific VLAN/subnet within this logical network.
The following screenshot shows the mapping and the design in our fabric.
Now the big question: why VLAN-based independent network with a 1:1 mapping of VM network and VLAN?
As I will show you really soon, the type of logical network we use for our tenant VLANs gives us more flexibility due to isolation.
When we are adding the newly created logical network to a VMM Cloud, we simply have to select the entire logical network.
But when we are creating Hosting Plans in Azure Pack admin portal/API, we can now select the single and preferred VM Network (based on VLAN) for our tenants.
The following screenshot from VMM shows our Cloud that is using both the Cloud Network (PA network space for NVGRE) and Tenants VLAN.
So once we have the logical network enabled at the cloud level in VMM, we can move into the Azure Pack section of this blog post.
Azure Pack is multi-tenant by definition and let you – together with VMM and the VM Cloud resource provider, scale and modify the environment to fit your needs.
When using NVGRE as the foundation for our tenants, we are able to use Azure Pack “out of the box” and have a single hosting plan – based on the VMM Cloud where we added our logical network for NVGRE, and tenants can create and manage their own software-defined networks. For this, we only need a single hosting plan as every tenant is isolated on their own virtualized network.
Of course – there might be other valid reasons to have different hosting plans, such as SLA’s, VM Roles and other service offerings. But for NVGRE, everyone can live in the same plan.
This changes once you are using VLANs. If you have a dedicated VLAN per customer, you must add the dedicated VLAN to the hosting plan in Azure Pack. This will effectively force you to create a hosting plan per tenant, so that they are not able to see/share the same VLAN configuration.
The following architecture shows how this scales.
In the hosting plan in Azure Pack, you simply add the dedicated VLAN to the plan and it will be available once the tenant subscribe to this subscription.
With the update rollup 5 of Azure Pack, we have now a new setting that simplifies the life for all the VLAN tenants out there!
I’ve always said that “if you give people too much information, they’ll ask too many questions”.
It seems like the Azure Pack product group agree on this, and we have now a new setting at the plan level in WAP that says “disable built-in network extension for tenants”.
So let us see how this looks like in the tenant portal when we are accessing a hosting plan that:
a) Provides VM Clouds
b) Has the option “disable built-in network extension for tenants” enabled
This will ease on the confusion for these tenants, as they were not able to manage any network artefacts in Azure Pack when VLAN was used. However, they will of course be able to deploy virtual machines/roles into the VLAN(s) that are available in their hosting plan.