Open Source im professionellen Einsatz
Linux-Magazin 06/2016
© Kalenkov, 123RF

© Kalenkov, 123RF

Der praktische Nutzen von Network Namespaces für Admins

Leichtgewichtige Netze

,

Mit Network Namespaces, die der Linux-Kernel schon lange bereitstellt und ohne die Containerlösungen aufgeschmissen wären, kann der Admin allein mit Bordmittel innerhalb eines laufenden Linux' sehr anspruchsvolle und zugleich Ressourcen-schonende Setups auf die Beine stellen.

398

Linux-Namespaces erlauben es, mehrere virtuelle Instanzen der Ressourcen eines Hosts und eines Kernels (!) zu definieren und getrennt zu nutzen – kein Wunder, dass gerade Linux Containers (LXC, [1]) und Docker [2], aber auch SDN-Lösungen (Software Defined Networking, [3]) davon ausgiebig Gebrauch machen.

Im Unterschied zu Virtualisierung mit Hypervisoren wie KVM oder Xen legen Container keine vollwertige Betriebssysteminstanz an, sondern nutzen den Kernel des Gastgebers und Teile des Betriebssystems. Ressourcen, die dem Container zugewiesen sind, sind isoliert und abstrahiert; Prozesse, Geräte und Interfaces darin definiert der Admin im Rahmen eines Namespace, sie haben scheinbar eigene, ebenfalls isolierte Instanzen dieser Ressourcen im Zugriff. Die Linux-Namespaces umfassen derzeit IPC, Netzwerk, Mounts, PID, User und UTS.

Seit Linux 2.4.19

Spuren der Namensräume finden sich bereits im Linux-Kernel 2.4.19 [4], seit dem Kernel 2.6.24 liegen die Network Namespaces produktionsreif im Werkzeugkasten des Admin. Sie erlauben beispielsweise einzelnen Containern exklusiven Zugriff auf virtuelle Netzwerkressourcen. Der Admin weist damit jedem Container einen separaten Netzwerkstack zu. Was viele nicht wissen: Network Namespaces zu benutzen macht auch unabhängig von Containern eine Menge Sinn.

Vom Gerät bis zum Socket

Die Netzwerk-Namespaces erlauben es dem Admin, Netzwerkgeräte, IPv4- und IPv6-Protokollstacks, Routingtabellen, ARP-Tabellen, Firewalls, aber auch »/proc/net« , »/sys/class/net/« , QoS-Policies, Portnummern oder Sockets einzeln so zu virtualisieren, dass auch ohne Container einzelne Anwendungen ein besonderes Netzwerksetup vorfinden. Damit können sich auf ein und demselben System mehrere Dienste konfliktfrei an denselben Port binden. Jeder von ihnen darf gar seine eigene Routingtabelle vorhalten.

Ein typischer Anwendungsfall besteht darin, asymmetrisches Routing zu vermeiden. Wenn beispielsweise Admins einen Server in einem separaten Admin-Netzwerk über ein separates Interface verwalten, weil sie administrativen Traffic vom produktiven Netzwerk fernhalten wollen (Abbildung 1). Will ein Client das Admin-Interface eines Servers ansprechen, wird er – korrekt – über den Router geleitet, was mit klassischen Routingtabellen für den Antworttraffic kaum umzusetzen ist. Einfacher geht das, wenn das Admin-Interface nur in seinem eigenen, abgeschlossenen Netzwerk-Namespace existiert und seine eigenen Routingtabellen unterhält.

Ganz typisch für Network Namespaces sind in der Praxis virtuelle Netzwerkgeräte »vethX« . Während ein physikalisches Device nur in einem Netzwerk-Namespace existieren kann, lässt sich ein Paar virtueller Devices als Bridge verschalten oder wie eine Pipe bedienen; der Admin baut damit eine Art Tunnel zwischen den Namensräumen, die er auf seinem Host schaffen hat.

Abbildung 1: Asymmetrisches Routing wie hier lässt sich mit Namespaces relativ einfach vermeiden.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • C-Advisor 0.9.0 holt mehr Infos aus Containern

    C-Advisor (Container Advisor) zeigt Admins, welche Ressourcen ihre Container belegen und unterstützt Docker nativ. Version 0.9.0 verbessert den Support für Nicht-Ethernet-Schnittstellen und Partitionierungstypen.

  • Mininet

    Dank Mininet konstruiert Philip Wette seine SDN-Topologien zunächst im Sandkasten, bevor er sie auf eine ziemlich erwachsene Rechnerfarm loslässt. Namespaces im Kernel machen es möglich.

  • Fosdem 2016: Container, befreite Laptops, Wellenreiter

    Auch am zweiten und letzten Tag der Fosdem geben sich die Redner wieder die Klinke in die Hand, darunter auch einige Vertreter großer Firmen. Deren Interesse scheint sich in letzter Zeit insbesondere auf das Feld der Container zu fokussieren.

  • Linux-Container

    Mit LXC 1.0 erschien Anfang 2014 die erste stabile Version zur Verwaltung von Linux-Containern. Ist die leichtgewichtige Container-Lösung mittlerweile produktionsreif? Der Workshop macht den Selbstversuch.

  • Vordrängler

    Linux selbst beherrscht viele Techniken, die den ein- und ausgehenden Netzwerkverkehr kontrollieren, begrenzen, priorisieren und aufteilen. Alle Queueing-Varianten unterstehen der abstrakten QDisc-Schicht, die wiederum dem TC-Kommando gehorcht.

comments powered by Disqus

Ausgabe 08/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.