LXC

LXC-Netzwerkkonfiguration

LXC-Netzwerkkonfiguration
Wenn Sie einen Linux-Container starten, möchten Sie möglicherweise Netzwerkfunktionen verwenden. Die Frage lautet: „Versuchen Sie, sich mit dem Host, dem Wide Internet, einem anderen Container oder vielleicht allen lokalen Containern zu vernetzen??„Gut, dass es für alle Lösungen gibt!

Profile

Um dies zu korrigieren, müssen Sie Ihren Container konfigurieren. Die Basiskonfiguration befindet sich bereits auf Ihrem System, wenn Sie eine reguläre Distribution verwendet haben. Sie können dies mit Befehlen weiter konfigurieren, aber die meisten Leute verwenden YAML-Dateien. Die Basis sieht normalerweise wie die untenstehende aus. Die Datei befindet sich in /etc/lxc/default.conf.

lxc.Netz.0.Typ = veth
lxc.Netz.0.link = lxcbr0
lxc.Netz.0.Fahnen = hoch
lxc.Netz.0.hwaddr = 00:16:3e:xx:xx:xx

Jeder Container folgt den Einstellungen gemäß dem Standardprofil und der oben genannten Datei. Sie können die Standarddatei wie unten beschrieben drucken. Für mehr Konfiguration am besten neue Profile erstellen. Jedes Profil enthält einige Konfigurationsdetails, in unserem Fall Netzwerk. Sie können jede Einstellung in Ihrem Container mit einem Profil ändern, und dies ist noch sinnvoller, wenn Sie ihn sowohl lokal als auch auf einer Plattform ausführen möchten.

$ lxc-Profil zeigt Standardkonfiguration:
Beschreibung: Standard-LXD-Profil
Geräte:
eth0:
Name: eth0
Netzwerk: lxdbr0
Typ: nic
Wurzel:
Pfad: /
Becken: rosa
Typ: Festplatte
Name: Standard
benutzt von:
- /1.0/Instanzen/Guiapps
- /1.0/Instanzen/ff

Die resultierende Ausgabe ist eine YAML-Datei. Alle Ihre Profile haben das gleiche Format. Mit LXC selbst können Sie Ihr Profil erstellen, entfernen und bearbeiten. Sie können in der Datei sehen, dass die Standardeinstellung das Netzwerk lxdbr0 verwendet und geben Sie nic . ein. Erstellen Sie nun wie folgt ein neues Profil:

$ lxc Profil nicnet erstellen create

Bearbeiten Sie das Profil, bevor ein Container ausgeführt wird:

$ lxc Profil bearbeiten nicnet

Sie verwenden das YAML-Format in den Dateien, die diese Profile erstellen. Beachten Sie, dass der Name „eth0“ der interne Containername ist. Das "Elternteil" ist das, was Sie auf Ihrem System haben, und Sie überprüfen es selbst mit:

$ ip a

Der Ausdruck variiert je nachdem, was Sie zuvor hatten. Sie sollten auch wissen, dass Sie das Bridging von außerhalb des Containers mit den brctl-Tools durchführen können.

Verwenden Sie es in Ihrem Container

Nachdem Sie ein Profil erstellt haben, möchten Sie es Ihrem Container hinzufügen add. Dies geschieht mit dem gleichen Programmsatz 'lxc'. Stellen Sie zunächst sicher, dass Sie einen Container haben, in diesem Beispiel heißt der Container 'ff':

$ lxc Profil ff nicnet hinzufügen

Die Änderung wird wirksam, wenn Sie das Netzwerk im Container neu starten. Am einfachsten und sichersten ist es, Profile immer nur in gestoppten Containern hinzuzufügen.

Geroutet

Bei einer Bridged-Verbindung erhält Ihr Container eine MAC-Adresse auf derselben Ethernet-Schnittstelle wie Ihr Host. Das hast du vorhin in diesem Beitrag gemacht. Mit ein paar weiteren Tricks können Sie dem Container von Ihrem Router eine separate IP-Adresse zuweisen lassen und diese in Ihrem Container einstellen. Wenn Sie macvlan verwenden, können jedoch Probleme bei der Verwendung von Wi-Fi auftreten. WPA/WPA2 akzeptiert die beiden Adressen nicht, daher wird Ihr WLAN unterbrochen, da Ihr Host das WLAN nicht verwendet.

Das frühere Beispiel verwendet die brctl-Tools, da lxc eigene erstellt hat. Dies erhält eine Adresse vom Host, nicht vom Router. Sie können die Adresse vom Router erhalten, wenn Sie möchten. Auch hier nur, wenn Sie eine kabelgebundene Verbindung oder ein unsicheres WLAN verwenden.

Wenn Sie sichergestellt haben, dass Ihr Host über eine Netzwerkverbindung verfügt, können Sie diese mit Ihrem Container verbinden. Ändere das Wort Parent und setze deinen Nictype auf macvlan.

Konfiguration:
Beschreibung: Einstellung für die Netzwerkschnittstelle
Geräte:
eth0:
Name: eth0
nictype: macvlan
Elternteil: enp3s0
Typ: nic
Name: Route
benutzt von:
- /1.0/Instanzen/Guiapps
- /1.0/Instanzen/ff

Sie müssen sicherstellen, dass der übergeordnete Wert Ihrer Konfiguration entspricht, also stellen Sie sicher, dass Sie ihn dynamisch erstellen. Danach können Sie Ihren Container starten und ihn in der Liste der Host-Ziele Ihres Routers finden. Nun, es sind Schnittstellen, um es technisch zu sagen.

Abbildung 1: Der Container wird jetzt in Ihrem Router angezeigt

Mobile Profile

Ein interessanter Teil der Linux-Container ist, dass Sie Ihre Konfigurationen abrufen und in YAML-Dateien speichern können. Um die Dateien dafür zu erstellen, führen Sie die Show-Option in LXC aus und leiten Sie dann in eine Datei ein. Die Ausgabe folgt dem YAML-Standard, und Sie können diese Dateien dann verwenden, um sie an anderer Stelle zu konfigurieren.

$ lxc Profil anzeigen Route > Route.yml

Um dies für einen neuen Container zu verwenden, verwenden Sie die eingestellten Werte. Normalerweise würden Sie einen Wert nach dem anderen einstellen, aber Sie haben bereits eine Datei dafür.

$ lxc-Profil Neue Route erstellen $ lxc-Profil Neuen Route-Benutzer festlegen.Netzwerk.Konfiguration - < Route.yml

Sie können sehen, dass Sie die Werte in den Namensraum 'Benutzer' eingeben müssen.Netzwerk.Konfiguration'. Dies ist wichtig zu wissen, wenn Sie andere Werte hinzufügen möchten, die nichts mit Netzwerken zu tun haben.

Fazit

Die Vernetzung mit Ihren Containern bietet viele Optionen, die verwirrend sein können, aber mit einigen Recherchen und Tests auf eigene Faust können Sie es so zum Laufen bringen, wie Sie es möchten. Das Beste daran ist, dass Sie mit Profilen eine Sache nach der anderen ausprobieren können. Sie werden Ihren aktuellen Behälter nie vermasseln, entfernen Sie einfach den, der nicht funktioniert hat, und fügen Sie den alten hinzu. Diese Technik funktioniert für alles in einem Container.

So verwenden Sie AutoKey zur Automatisierung von Linux-Spielen
AutoKey ist ein Desktop-Automatisierungsdienstprogramm für Linux und X11, programmiert in Python 3, GTK und Qt. Mithilfe der Skript- und MACRO-Funktio...
So zeigen Sie den FPS-Zähler in Linux-Spielen an
Linux-Gaming bekam einen großen Schub, als Valve 2012 die Linux-Unterstützung für den Steam-Client und seine Spiele ankündigte. Seitdem haben viele AA...
Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....