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 breiten Internet, einem anderen Container oder allen lokalen Containern zu vernetzen?Gut, dass es für sie 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 Verteilung verwendet haben. Sie können dies weiter mit Befehlen konfigurieren, die meisten Personen verwenden jedoch YAML -Dateien. Die Basis sieht normalerweise wie die unten aus. Die Datei wohnt in /etc/lxc/Standard.Conf.

LXC.Netz.0.Typ = veth
LXC.Netz.0.link = lxcbr0
LXC.Netz.0.Flags = Up
LXC.Netz.0.hwaddr = 00: 16: 3e: xx: xx: xx

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

$ lxc Profil anzeigen Standardeinstellung
Konfiguration:
Beschreibung: Standard -LXD -Profil
Geräte:
Eth0:
Name: Eth0
Netzwerk: LXDBR0
Typ: nic
Wurzel:
Weg: /
Pool: Ros
Typ: Festplatte
Name: Standard
benutzt von:
- /1.0/Instances/GuiApps
- /1.0/Instances/ff

Die resultierende Ausgabe ist eine YAML -Datei. Alle Ihre Profile werden im selben Format enthalten. Mit LXC selbst können Sie Ihr Profil erstellen, entfernen und bearbeiten. Sie können in der Datei sehen, dass die Standardeinstellung das LXDBR0 -Netzwerk verwendet und NIC eingeben. Erstellen Sie nun ein neues Profil mit Folgendes:

$ LXC -Profil erstellen Nicnet

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 Container Name ist. Das „Elternteil“ ist das, was Sie in Ihrem System haben, und Sie überprüfen es selbst mit:

$ ip a

Der Ausdruck variiert je nach dem, was Sie zuvor hatten. Sie sollten auch wissen, dass Sie mit den BRCTL -Tools die Überbrückung von außerhalb des Behälters durchführen können.

Verwenden Sie es in Ihrem Behälter

Sobald Sie ein Profil erstellt haben, möchten Sie es Ihrem Container hinzufügen. Dies geschieht mit den gleichen Programmen 'LXC'. Stellen Sie zunächst sicher, dass Sie einen Container haben. In diesem Beispiel heißt der Container "FF":

$ LXC -Profil fügen Sie FF Nicnet hinzu

Die Änderung wirksam, wenn Sie die Vernetzung im Container neu starten. Am einfachsten und sichersten ist es, immer Profile nur in gestoppten Behältern hinzuzufügen.

Routed

Eine überbrückte Verbindung ist eine, bei der Ihr Container eine MAC -Adresse auf derselben Ethernet -Schnittstelle wie Ihr Host empfängt. Das haben Sie früher in diesem Beitrag getan. Mit ein paar weiteren Tricks können Sie Ihren Router dem Container eine separate IP -Adresse zuweisen und diese in Ihrem Container festlegen. Wenn Sie MacVlan verwenden, können Sie jedoch mit Wi-Fi in Schwierigkeiten geraten. WPA/WPA2 akzeptiert die beiden Adressen nicht, sodass Ihr Wi-Fi brechen wird, da Ihr Host das Wi-Fi nicht verwendet.

Das frühere Beispiel verwendet die BRCTL -Tools, da LXC ihre eigenen erstellt hat. Dies erhält eine Adresse vom Host, nicht vom Router. Sie können die Adresse vom Router erhalten, wenn Sie möchten. Noch einmal, wenn Sie eine verkabelte Verbindung oder ein unsicheres WLAN verwenden.

Wenn Sie sichergestellt haben, dass Sie eine Netzwerkverbindung auf Ihrem Host haben, können Sie diese mit Ihrem Container verbinden. Ändern Sie das Wort übergeordnet und setzen.

Konfiguration:
Beschreibung: Einstellung für die Netzwerkschnittstelle
Geräte:
Eth0:
Name: Eth0
Nictype: MacVlan
Elternteil: ENP3S0
Typ: nic
Name: Route
benutzt von:
- /1.0/Instances/GuiApps
- /1.0/Instances/ff

Sie müssen sicherstellen, dass der übergeordnete Wert Ihrer Konfiguration übereinstimmt. Danach können Sie Ihren Container starten und in der Liste der Host -Ziele Ihres Routers finden. Nun, sie sind Schnittstellen, um technisch zu sein.

Abbildung 1: Der Container wird jetzt in Ihrem Router angezeigt

Mobile Profile

Ein interessanter Teil der Linux -Container ist, dass Sie Ihre Konfigurationen greifen und in YAML -Dateien einleiten können. Um die Dateien dafür zu erstellen. Die Ausgabe folgt dem YAML -Standard, und Sie können diese Dateien dann verwenden, um sie an anderer Stelle zu konfigurieren.

$ lxc Profilshow Route> Route.YML

Verwenden Sie die festgelegten Werte, um dies für einen neuen Container zu verwenden. Normalerweise würden Sie jeweils einen Wert festlegen, aber dafür haben Sie bereits eine Datei.

$ LXC -Profil erstellen NewRoute $ LXC Profile Set NewRoute -Benutzer.Netzwerk.Konfiguration - < Route.yml

Sie können sehen, dass Sie die Werte in den Benutzern des Namespace 'einfügen müssen.Netzwerk.Konfiguration '. Dies ist wichtig zu wissen, wann Sie andere Werte hinzufügen möchten, die nicht mit dem Netzwerk zusammenhängen.

Abschluss

Das Networking mit Ihren Containern hat viele Optionen, die verwirrend sein können. Mit einigen Forschungen und Tests selbst können Sie es so wie gewünscht machen, wie Sie es möchten. Das Beste daran ist, dass Sie eine Sache gleichzeitig mit Profilen ausprobieren können. Sie werden niemals Ihren aktuellen Behälter vermasseln, einfach denjenigen entfernen, der nicht funktioniert, und fügen Sie den alten hinzu. Diese Technik funktioniert für alles in einem Behälter.