Einrichten von DHCP für LXC-Container

Einrichten von DHCP für LXC-Container

Ich habe mehrere lxc-Container, die Netzwerkzugriff benötigen. Im Moment weise ich ihnen in der entsprechenden Konfigurationsdatei manuell IP-Adressen zu, und zwar wie folgt:

lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.link = br0 
lxc.network.ipv4 = 192.168.1.6/24                                                              
lxc.network.ipv4.gateway = 192.168.1.1

Dies funktioniert, ist aber nicht skalierbar und kann mit der DHCP-Zuweisung meines Routers in Konflikt geraten. Ich versuche, den DHCP-Zugriff meines Routers zu verwenden, indem ich die Zeilen lxc.network.ipv4 weglasse (wie anderswo online beschrieben), und der Container startet, aber dhcpcd meldet keinen Träger. lxc-ls --fancy zeigt auch nicht an, dass mein Container eine IP-Adresse hat. Der Container ist aktiv und lxc.network.link ist in der Konfigurationsdatei festgelegt.

Wie kann ich DHCP mit meinen Containern verwenden? Ist es möglich, das DHCP meines Routers zu verwenden, oder muss ich einen Server auf meinem Host ausführen? Einige meiner Container müssen von außen zugänglich sein, während andere nur mit anderen Containern/Hosts kommunizieren müssen.

Ich verwende Arch Linux, die meiste Online-Hilfe scheint Ubuntu-spezifisch zu sein.

Antwort1

Stellen Sie sicher, dass netctl und dhcpcd im Container installiert sind (pacman -Q netctl dhcpcd), und führen Sie dann Folgendes im Container aus:

cat > /etc/netctl/eth0
Connection=ethernet
IP=dhcp
Interface=eth0

Drücken Sie STRG-D, um die Datei zu schreiben. Aktivieren Sie dann das Profil, indem Sie Folgendes ausführen:

netctl enable eth0

Starten Sie abschließend den Container neu und Sie sollten über eine per DHCP zugewiesene IP-Adresse verfügen.

Antwort2

cat <<\EOF >> /etc/netctl/eth
Connection=ethernet
IP=dhcp
Interface=eth0
EOF

Ich dachte, dies wäre eine bessere Möglichkeit zum Erstellen der Datei.

verwandte Informationen