Using Windows Azure Virtual Machines to Learn: Networking Basics
Until recently I’ve used a personal hypervisor to experiment and learn new Windows technologies. Over the past few years my personal productivity machines have become more like mini datacenters – tons of cores, memory and storage. You know how it is, you go shopping for a new sub 2 pound / $1K notebook and by the time you click “add to cart” it gained about 4 pounds and $3K.
Enter Windows Azure. With only a browser and an RDP client I can spin up and manage just about anything. In other words, I could get away with an old PC or even a thin client and get out of the personal datacenter business. That $3K notebook just turned into a couple years of compute and storage in a real datacenter.
Don’t already have a Windows Azure account? Go here for a free trial.
Anyway, speaking of experimenting in the cloud, let’s talk about networking in Windows Azure Virtual Machines…
Did I just see a server with a DHCP-assigned IP address?
Windows Azure introduces a new concept when it comes to networking – DHCP for everything regardless of workload. That’s right, even servers are assigned IP addresses via DHCP. This comes as a surprise to hard core server admins. We have become religious about our IP spreadsheets, almost charging people when asked for one of our precious intranet addresses. Like labeling our network cables, this is another thing we’re going to have to let go when migrating workloads to the cloud.
The platform is now our label maker. As long as a virtual machine exists, it will be assigned the same IP address. Wait a minute, I thought DHCP only leased IP addresses out for a finite amount of time. What happens when the lease expires? Well, let’s find out when our lease is up on my domain controller using ipconfig /all:
Wow. Our virtual machine has a lease on 10.1.1.4 for over 100 years. I think we’re good. Even still, the platform automatically renews the lease for a given virtual machine.
What’s the point of subnetting in Windows Azure?
Most of the time we subnet to segregate tiers of a service, floors of a building, roles in an organization, or simply to make good use of a given address range. In Windows Azure, I typically use subnets when defining service layers:
In this case we have a simple 3-tier application that uses classic Windows authentication. There is a management subnet containing the domain controllers, a database subnet with SQL servers, and an application subnet with the web front ends.
Here is another type of deployment where we simply wanted to isolate virtual classrooms from each other:
The deployment shared a common Active Directory, however each classroom had its own instructor and students.
What can I do with subnets once they’re created?
Once you have defined your subnets and their services, you can secure those services by applying Windows Firewall rules and settings in a consistent manner. For example, you can define rules where servers on the application subnet (10.1.3.0) should only be able to reach the database subnet (10.1.2.0), and only over ports relevant to the SQL Server database engine service instance (i.e. TCP 1433).
In other words, subnetting in Windows Azure allows you to organize objects in the cloud for many of the same reasons you do on-premise. In this case we’re using it to contain similar services and create logical boundaries to simplify firewall configuration settings. When you create a consistent deployment topology for cloud services in Windows Azure Virtual Machines, you can then take advantage of other Windows technologies such as WMI Filters and Group Policy to automate and apply consistent security settings.
We’ll talk about applying role-specific firewall settings via Group Policy in a future blog.
Don’t already have a Windows Azure account? Go here for a free trial.

