Fan verbessert Netzwerke bei virtuellen Maschinen und Containern

Kein Kommentar Autor: Jürgen (jdo)

Canonical hat mit Fan eine neue Methode zur Verfügung gestellt, um virtuellen Maschinen (VM) oder AWS Tausende an IP-Adressen zu verabreichen. Für Fan wurde eine Wiki-Seite ins Leben gerufen, auf der es weitere Informationen gibt und die bei der Verwendung unterstützen soll. Dustin Kirkland hat auch recht ausführlich beschrieben, um was es dabei geht.

Fan für verbesserte Netzwerkerei

Virtualisierung ist in aller Munde und das Ziel ist, die Dichte der Hardware optimal auszunutzen. Mit Docker und seinen Containern hat man eine Möglichkeit, Applikationen sehr schnell einsatzbereit zu machen. Gerade bei Test-Szenarien ist es unglaublich hilfreich, wenn man große Umgebungen schnell aufsetzen und wieder in die Tonne kloppen kann. Auf einem Notebook können somit schon mal ein paar Hundert Container laufen, schreibt Mark Shuttleworth.

Das Problem an der Sache sind die IP-Adressen, die eben nicht mal schnell zur Verfügung stehen. AWS limitiert zum Beispiel die Anzahl der IP-Adressen, die man an eine Schnittstelle einer virtuellen Maschine anbinden kann. Um an mehr IP-Adressen zu kommen, müsste man ein Upgrade kaufen, auch wenn man die zusätzliche Rechenleistung gar nicht benötigt. Weiterhin sei IPv6 in der Cloud noch Mangelware und somit sind die IP-Adressen sowieso knapp.

Mit Fan löst man ein Problem, um mehrere Dutzend oder Hunderte an IP-Adressen für jede virtuelle Maschine zu erhalten. Bisher hat man das mit Workarounds wie zum Beispiel Overlay Networking adressiert oder auch Tunnel genommen. Allerdings sei das Resultat ein Tunnel-Chaos bei dem man schwer den Überblick behält.

Fan ist im Prinzip ein Multiplikator für IP-Adressen. Der Name Fan kommt daher, da mit dieser Methode jeder IP-Adresse 250 weitere hinzugefügt werden, die eben wie ein Fächer (englisch Fan) dahinterstehen.

Der Name Fan kommt von Fächer

Der Name Fan kommt von Fächer

Man verwendet dabei IPv4-Adressen genau wie Overlays. Die Adressen werden allerdings mathematisch hinzugefügt und man errechnet das Konstrukt aus dem existierenden Subnetz. Weil man diesen Algorithmus benutzt, muss man keine Datenbank mit den Adressen im Overlay vorhalten. Für jede beliebige Container-Adresse kann man nun ohne Datenbank sofort die gewünschten Adressen berechnen.

Weiterhin lassen sich die Adressen einfacher routen. Innerhalb des Fan-Netzwerks gibt es zu jedem Host eine einzelne Route und man vermeidet den Wirrwarr der Netzwerk-Tunnel, den es oft in Overlay-Netzwerken gibt.

Man will Fan als IETF RFC einreichen. Class E als Netzewrk wurde wohl sogar schon mal reserviert, aber noch nie definiert. Man könnte das E also für Expansion verwenden. Auch wenn man Fan mit unbenutzten Class-A-Adressen verwenden könnte, hätte man lieber einen Standard dafür.

Fan ist im Moment für Ubuntu auf AWS verfügbar. Andere Clouds werden auch bald in den Genuss von Fan kommen. Man würde sich über Feedback freuen.

Beispiel von Fan

Mark Shuttleworth gibt noch ein Beispiel, wie einfach die Benutzung von Fan ist:

In /etc/network/fan:

  • # fan 241
  • 241.0.0.0/8 172.16.3.0/16 dhcp

In /etc/network/interfaces:

  • iface eth0 static
  • address 172.16.3.4
  • netmask 255.255.0.0
  • up fanctl up 241.0.0.0/8 172.16.3.4/16
  • down fanctl down 241.0.0.0/8 172.16.3.4/16

Das ergibt 250 Adressen auf 241.0.0.0/8 für die Hsts auf 172.16.0.0/16.

Integration hinsichtlich Docker, LXD und Juju ist ebenso einfach. bei Docker modifiziert man die Datei /etc/default/docker.io:

  • DOCKER_OPTS="-d -b fan-10-3-4 –mtu=1480 –iptables=false"

Im Anschluss startet man docker.io neu:

  • sudo service docker.io restart

Läuft nun zum Beispiel

  • docker run -it ubuntu:latest

geschieht das im spezifizierten Overlay-Netzwerk.

Demonstration von Fan unter Ubuntu




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.