Windows Azure Virtual Network–Wie baut man ein Netzwerk in der Cloud mit eigenem DNS-Server

Hallo @all,

Ich zeige mit dem Blogpost ein Szenario wie man ein Netzwerk für die Azure Cloud plant, dieses aufbaut und wie man ein virtuelles Netzwerk in der Windows Azure Cloud mit eigene IP-Adressbereichen (inkl. DHCP-Package & DNS Server) betreiben kann. Wie es in der Welt vorkommt hat man mehr als ein Subnetz und daher verwende ich mehrere Subnetze und IP-Adressbereiche.

Bevor ich jedoch anfange gehe ich auf einen wichtigen Punkt der IP-Adressen in der Cloud ein.

1. Jede Virtuelle Maschine im Azure Rechenzentrum bekommt eine dynamische IP-Adresse. Solange eine virtuelle Maschine erzeugt ist (gelistet unter Virtual Maschine Instance), wird diese Maschine die zugewiesene IP-Adresse behalten.

image

Im Microsoft Azure-Rechenzentrum werden dynamische IP-Adressen wie statische wirken. Wie? Ganz einfach die DHCP-Lease-Zeit ist für die zugewiesen IP-Adresse extreme groß gewählt.

Wie groß? Schauen wir es uns einfach mal an: Erstellen wir eine Virt. Maschine in Azure und schauen uns in der cmd.exe den Befehl ipconfig /all an.

image

Wie man sehen kann:

  • die VM mit dem Namen: phdc01 hat eine IP-Adresse bekommen 10.0.0.4.
  • die IP wurde ausgestellt am 19. April 2013 12:33:54 PM
  • die IP läuft ab am: 26. Mai 2149 7:05:49 PM

Damit ist die IP-Adresse für die nächsten 136 Jahre fest der VM zugeteilt also wirkt diese wie statisch. Ich denke das Ende werde ich an der Stelle nicht mehr miterleben. Beim DHCP-Protokoll geht es sogar noch weiter, es gibt einen IP-Refresh-Mechanismus bei dem Zuordnung von IP-Adressen. Dadurch wird die Zuordnung verlängert. Der Mechanismus startet das erste mal nach der Hälfte der Lease-Zeit. Also in 136 / 2 = 68 Jahren wird die IP-Adresse verlängert gültig für die VM. Dann ist die IP-Adresse wieder für weitere 136 Jahre für die VM reserviert. Ich denke damit ist die IP-Adresse wirklich mehr als statisch. Oder?

Zurück zum Thema, das Netzwerk in Azure. Insgesamt kann man das Default Netzwerk in Azure verwenden, dann hat man keinerlei Möglichkeit die IP-Adressvergabe zu steuern. Will mein eine Infrastruktur in der Cloud abbilden (also 2-n Rechner im Verbund) dann verwendet man Azure Netzwerke nach einem eigenen Netzwerkplan. D.h. man überträgt einfach den eigenen Netzwerkplan in Azure Virtual Network und schon ist man fertig.

Ich habe mich für folgende Netzwerkstruktur entschieden:

     image
Den DNS-Server selbst betreibe ich als AzureVM und habe damit volle Kontrolle für die DNS-Konfiguration. Den DNS Server werde ich im Subnet 1 (10.0.0.0/16) betreiben.

Wie man sieht ist mein Ziel ein Netzwerk mit 3 Adressbereichen und 6 Subnetzen.

Wie man das Konzept umsetzt, das zeige ich Euch jetzt.

Ich wähle mich in die Azure Subscription ein und verwende das Management Portal: https://manage.windowsazure.com

 

Man erstellt ein neues Netzwerk:

Azure Management Portal: Neu / Netzwerke / virtual Network / Custom Create:

image
Netzwerknamen definieren und am besten gleich eine dazugehörige Affinitygruppe.
(Tipp: für eine gute Übersicht wählt man zw. Netzwerkname und AffinityGruppe den gleichen Namen und erweitert den Affinity-Gruppenname um ein Kürzel bspw. *AG am Ende. So sind die Begriffe Netzwerkname und AffinityGruppe nicht zu vertauschen. Später ist das sehr nützlich wenn man die Affinity Gruppen verwendet mit weiteren Services.)

Als nächstes folgt die IP-Adressplanung für den DNS Server. Hier nutze ich einen Tricks um den DNS-Server selbst in Azure zu betreiben.
IP-Adressen werden in der Cloud dynamisch vergeben, jedoch nach einen vorhersagbaren Prinzip.
Erstellt man eine VM und platziert diese im IP-Adressebereich 10.0.0.0/8 und dem Subnetz 10.0.0.0/16 dann bekommt die VM die IP-Adresse 10.0.0.4 zugewiesen. Das Azure-Rechenzentrum nutzt für Interne Zwecke die IPs 10.0.0.1 – 10.0.0.3. Wenn man also eine Reihe an VMs in ein Netzwerk platziert werden die IPs in folgendes Methode vergeben:

 

VM01 10.0.0.4
VM02 10.0.0.5
VM03 10.0.0.6
VM04 10.0.0.7
VM05 10.0.0.8

Wenn man eine VM aus dem Netzwerk entfernt, bspw. VM3 ist die IP 10.0.0.6 wieder frei.

 

VM01 10.0.0.4
VM02 10.0.0.5
   
VM04 10.0.0.7
VM05 10.0.0.8

Fügt man VM6, VM7,VM8 hinzu wird der freie Platz aufgefüllt und danach inkrementell weiter gezählt:

 

VM01 10.0.0.4
VM02 10.0.0.5
VM06 10.0.0.6
VM04 10.0.0.7
VM05 10.0.0.8
VM07 10.0.0.9
VM08 10.0.0.10

 

Das schöne an Azure Netzwerken ist das automatische Routing von Subnet zu Subnet. Damit entfällt das komplizierte erstellen von Routingtabellen. Smiley Am Ende sieht man wie schön die Pakete zwischen den Subnetzen geroutet werden.

Ich werden meinen DNS-Server auf VM01 im Subnetz-1 einrichten. Diese VM wird damit immer die IP-Adresse 10.0.0.4 erhalten. D.h. ich trage in der Azure Netzwerkkonfiguration gleich den DNS-Server mit der IP ein.

Wer aufgepasst hat, ich löse gerade an der Stelle ein typisches Henne-Ei-Problem. Ohne Netzwerkplan kann ich die IP-Adresse vom DNS-Server nicht kennen. Und ohne diese IP-Adresse wird eine DNS-Server Installation in Azure schwierig. Also tragen ich jetzt den DNS Server mit der IP 10.0.0.4 in meine Azure Netzwerkplanung ein.

image

Als nächsten Schritt werde ich die restlichen IP-Adressbereiche und Subnetze vom Gesamtkonzept eintragen. *das ist dann nur etwas Fleißarbeit*

Das sieht dann so aus:

image

Tipp: das Scrollen ist etwas müssig und später werde ich euch noch zeigen wie man das einfach über eine XML-Konfigurationsdatei erstellt.

image

Dann nur noch auf Weiter drücken und warten:

image

Innerhalb der nächsten Sekunden ist das komplette Netzwerk erstellt und Routing-Tables von einem Subnet zum anderen sind automatisch konfiguriert:

image

Nochmal ein letzter Check ob alles richtig ist, und dann erstellt man die VMs und füllt das Unternehmensnetzwerk mit VMs / Servern.

image

 

Der folgende Schritt ist jetzt er “schwerste” man erstelle eine AzureVM und assoziiert die VM zum Azure Netzwerk. Oder mit anderen Wort: VM erstellen und in Subnet 1,2, oder 3 hineinlegen. Und so funktioniert es:

1. Neue AzureVM

image

image

Der wichtigste Punkt beim Erstellen der VM ist der folgende Bildschirm.

image

Hier ist darauf zu achten, das die VM in das Virt. Netzwerk platziert wird. Nur wenn man ein Virt.Netzwerk auswählt erhält man das Auswahlmenü für die Subnetze:

image

Dann wählt man das entsprechende Subnetz aus und fertig. Ich wähle hier das Subnet-1 (10.0.0.0/16) aus und werde VM01 so im Subnet-1 betreiben. (VM01 soll ja mein DNS Server werden und die IP 10.0.0.4 erhalten)

image

Für die Ausfallsicherheit kann man zudem noch eine Availability Gruppe verwenden.

image

 Jetzt noch 1-2 Minuten warten und unser Server VM01 ist in der Azure-Cloud erstellt:

image

image

Durch den oben beschriebenen Trick mit der IP-Adressvergabe und der schon definierten DNS-Server IP-Adresse im Azure Netzwerkkonfigurationsmenü aktiviert man bei der VM01 die DNS-Rolle. Das ist nun ein reiner Schritt von Windows Server bzw. Linux DNS Server installationsschritten. Danach fühlt sich die gesamte Infrastruktur wie ein traditionelles Netzwerk an. D.h. man erstellt Domain Controller, und richtet diverse Server ein bspw. Datenbank-Server, WebServer, Anwendungsserver, File Server.

DNS Server im Windows Server 2012 einrichten:

Als nächsten Schritt erstelle ich in der VM01 den DNS Service. Dazu verbinde mich per RDP auf die Server, installiere die DNS-Rolle im Server Manager:

image

image
Hinweis: hier erscheint eine Warnung das der DNS Server mit dyn. IP verwendet wird, diese Meldung kann man getrost hinnehmen, da die dyn IPs in Azure für viele Jahre statisch wirken wird, wie oben beschrieben.

imageimage

Am Ende sieht es dann so aus: die Netzwerkkonfiguration von VM01:

image

VM01 hat IP-Adresse 10.0.0.4 und zeigt mit dem DNS-Server aus 10.0.0.4, also auf sich selbst. Das sieht doch gut aus Smiley (und alles mittels DHCP-Paketen gemanaged von der Azure-Netzwerk-Konfiguration)

Als zweite VM erstelle ich ein Linux Ubuntu Server 13.04 mit dem Namen: VM02

image

Man kann jetzt die VM in den existierenden CloudService (VM01 – MeineUnternehmensInfrastrukturInDerCloud) platzieren, könnte hier aber auch einen neuen Cloud-DNS-Namen verwenden. Wichtig ist nur, das man das gleich AzureNetzwerk auswählt und platziert die VM in ein beliebiges Subnet.

Anbei beide Möglichkeiten:

imageimage

 

Ist VM02 fertig erstellt so werden alle VMs im Netzwerk von Azure angezeigt:

image

 

Zu guter Letzt möchte ich, das VM02 den DNS-Service von VM01 verwendet. Dazu verbinde ich mich mit VM02 mittels Putty und schaue ob ein DNS-Record gefunden werden kann.

Einwahl an VM02:

image

VM02 liegt in richtig Subnet: :-)

image

VM02 kann den DNS-Service von VM01 nutzen, meine Sample-Forwardlookup-Zone in vm01 wird gefunden:

image

und wie man sehen kann, VM01 kann sich mit VM02 verbinden:

image

 

Liebe Grüße

Patrick