GNU/Linux >> LINUX-Kenntnisse >  >> Linux

LXD-Container und Netzwerke mit statischer IP

Ich habe hier eine Lösung gefunden

Danke an Stéphane Graber.

Zitat:

"Wenn Sie ein modernes LXD mit einer LXD-verwalteten Bridge ausführen, können Sie einfach die Eigenschaft ipv4.address auf der Netzwerkschnittstelle des Containers festlegen.

  • lxc Stopp c1
  • lxc Netzwerkanschluss lxdbr0 c1 eth0 eth0
  • lxc config device set c1 eth0 ipv4.address 10.99.10.42
  • lxc starte c1

"


Wenn Sie IP-Adressen für Container in LXD angeben möchten, sehen Sie sich den /etc/default/lxd-bridge an Datei. Dort finden Sie einen Platz zum Einbinden einer externen dnsmasq-Konfigurationsdatei.

Angenommen, Sie verwenden Ubuntu 16.04,

Öffnen Sie /etc/default/lxd-bridge in Ihrem bevorzugten Editor. Sie müssen sudo verwenden .

Ungefähr bei Zeile 16,

LXD_CONFILE=""

Fügen Sie einen Eintrag hinzu, der auf eine dnsmasq-Konfigurationsdatei verweist. Sie müssen diese Datei erstellen. Also nennen Sie es, wie Sie wollen. Etwas wie lxd_bridge.conf .

Erstellen und bearbeiten Sie dann die Datei, die Sie oben benannt haben.

Fügen Sie für jeden Container, dem Sie eine bestimmte IP-Adresse zuweisen möchten, eine Zeile hinzu.

So:

dhcp-host=containername,ipaddress

Dann müssen Sie lxd-bridge neu starten und dann die Container neu starten.

Hier ist ein ausführlicher Artikel dazu:

Statische LXD-IPs

Beachten Sie, dass, wenn Sie Alpine Linux in Ihren Containern ausführen, zusätzliche Schritte unternommen werden müssen, damit dies funktioniert.alpine


Systeminfo:lxc-3.0.1 auf Ubuntu Server 18.04.1 .

Nach langem Suchen habe ich diesen einfachen Befehl gefunden, um einem Container eine statische IP zuzuweisen:

lxc config set [container] raw.lxc 'lxc.net.[i].ipv4.address = [ip]/[subnet-mask]'

wobei [container] , [i] , [ip] und [subnet-mask] sind der Containername, die Netzwerkschnittstellennummer, die gewünschte statische IP-Adresse bzw. das CIDR für die gewünschte Subnetzmaske.

Zum Beispiel, wenn Sie 240.10.0.20 zuweisen möchten mit Subnetzmaske 255.255.255.0 an die 0-te Netzwerkschnittstelle des Containers mit dem Namen hello , können Sie Folgendes verwenden:

lxc config set hello raw.lxc 'lxc.net.0.ipv4.address = 240.10.0.20/24'

Wahrscheinlich müssen Sie den Container neu starten, nachdem Sie den Befehl ausgeführt haben.

Beachten Sie, dass dies wahrscheinlich nicht die aktuelle IP-Adresse des Containers ändert (in meinem Setup sowieso); Der Container sollte sowohl unter seiner ursprünglichen IP als auch unter der neu zugewiesenen IP erreichbar sein. Als Ergebnis wird der Containereintrag in lxc list kann mehrere IP-Adressen enthalten.

Sehen Sie sich hier die akzeptablen Konfigurationsschlüssel an, die an lxc.net.[i] angehängt werden können . Diese Webseite enthält Informationen zur CIDR-Notation.

Leider weiß ich nicht mehr, wo ich diese Lösung zum ersten Mal gefunden habe. Hier ist ein relevantes GitHub-Problem, das nützliche Informationen enthalten könnte.


Linux
  1. So richten Sie virtuelle Container mit LXC- und Quota-Unterstützung unter Debian 8 ein

  2. Linux-Container mit LXC auf Ubuntu 16.04 einrichten

  3. Was ist der Unterschied zwischen LXC-, LXD- und Docker-Containern?

  4. So erstellen und starten Sie LXC-Linux-Container mit LXC-Befehlen

  5. So sichern und wiederherstellen Sie Docker-Container

Erste Schritte mit LXD-Containern unter Ubuntu 16.04

Was sind Firefox Multi-Account-Container? Warum und wie wird es verwendet?

Lxc und wie fange ich an?

Aktualisieren von Docker-Containern ohne oder mit minimaler Ausfallzeit

Gewusst wie:Erste Schritte mit Windows-Containern und Docker

So installieren und richten Sie LXC-Linux-Container unter CentOS / RHEL / Ubuntu ein