CentOS 7 – libvirt – LXC Container mit multiplen Netzwerkkarten und IP Adressen

Für ein komplexes Netzwerksetup innerhalb eine virtualisierten Umgebung ist es möglich LXC Containern weitere virtuelle Netzwerkkarten hinzuzufügen. Diese können wir den auf dem Hostsystem eingerichteten Netzwerkbrücken zuordnen. Somit können wir unsere LXC-Container in verschiede Netzwerke einbinden und komplexe Netzwerke simulieren.

Vorab verweise ich auf meine anderen Tutorials zum Thema libvirt und LXC-Container. Auf das Erstellen und Verwalten eines Containers sowie der Bereitstellung anderen Netzwerke gehe ich hier nicht mehr ein.

Das Tutorial wurde mit CentOS 7 erstelle und getestet. Es sollte aber auch mit anderen Distributionen funktionieren sofern alles andere richtig konfiguriert ist.

LXC Container zusätzliche Netzwerkkarten hinzufügen

Dazu editieren wir die Konfiguration unseres LXC-Containers. Wichtig ist, dass wir die Datei wie folgt editieren. Ein manuelles Ändern des Konfigurations-Datei führt nicht zum Erfolg.

Im Bereich <devices> können wir dann beliebig viele neue Netzwerkkarten hinzufügen. Dazu benötigen wir eine neue MAC-Adresse, diese könne wir uns ausdenken oder wie hier beschrieben ganz leicht selber generieren.

Im Punkt <source network> wird das Netzwerk definiert. Wie man verschiedene auch externe Netzwerken definiert und libvirt bereitstellt kann man im Artikel libvirt – LXC Container mit public IP nachlesen.

„CentOS 7 – libvirt – LXC Container mit multiplen Netzwerkkarten und IP Adressen“ weiterlesen

Centos 7 – libvirt – LXC Container mit public IP und externem Netzwerk

In diesem Tutorial werden wir unseren LXC-Container eine IP aus unserem LAN vergeben. Somit ist es möglich unsere Container direkt von extern anzusprechen.

Voraussetzung für dieses Tutorial ist ein installiertes und lauffähiges libvirt-Setup. Ein detaillierte Anleitung findet man in dem Artikel Centos 7 im LXC-Container. Dieser dient uns auch als Grundlage für dieses HowTo.

Anpassen der Netzwerkkonfiguration

lxc-network-setting
libvirt Netzwerk Umgebung

Zuerst benötigen wir eine Bridge (br0). In diese binden wir unser primäres Netzwerk-Interface ein, also die Netzwerkkarte mit der wir auch mit unserem LAN verbunden sind. Die virtuellen NICs der LXC-Container die eine externe IP bekommen sollen werden dann dieser Bridge hinzugefügt. Alle andern kommen in das interne Netz, also in die Bridge (virbr0).

Netzwerkbrücke konfigurieren (br0)

In diesem Scenario heisst die physisch echte Netzwerkkarte enp2s0f5 dies kann je nach Hardware unterschiedlich sein.

Zuerst erstellen wir eine Netzwerkbrücke br0. Dazu erstellen wir eine Konfigurationsdatei /etc/sysconfig/network-scripts/ifcfg-br0.

dort fügen wir die gewünschte Netzwerkkonfiguration ein. Dies können die gleichen IP-Adressen sein die derzeit für die physische Schnittstelle konfiguriert sind.

Unserer physischen Netzwerkkarte sagen wir nun, dass diese zur Netzwerkbrücke gehört und geben ihr keine IP-Adresse. Diese wird jetzt in der Brücke definiert. „Centos 7 – libvirt – LXC Container mit public IP und externem Netzwerk“ weiterlesen

CentOS 7 – libvirt – Autostart eines LXC-Containers

Als Grundlage dieses Tutorials dient der Artikel CentOS 7 im LXC Container.

Um einen LXC-Container automatisch mit libvirtd zu starten sind folgende Schritte nötig:

Wir erstellen ein Verzeichnis „autostart“ unterhalb von /etc/libvirt/lxc. Dann erstellen wir einen Softlink unterhalb des Ordners autostart, der auf die Konfigurationsdatei des zu startenden Containers verweist.

Hier verlinken wie den LXC-Container centos-7-x86_64 in den Ordner autostart

Wir können natürlich auch virsh verwenden, das geschieht dann wie folgt.

LXC-Container zum Autostart hinzufügen „CentOS 7 – libvirt – Autostart eines LXC-Containers“ weiterlesen