Ich versuche, mehrere LXC-Container auf einem Host mit jeweils eigenen öffentlichen statischen IP-Adressen einzurichten.
Auf meinem Host läuft das neueste Ubuntu. Es hat eine einzige Netzwerkschnittstelle mit dem Namen eth0. Die statischen IP-Adressen können über das Internet gepingt werden und heißen eth0: 210, eth0: 211 ... Die Zahlen nach dem Doppelpunkt sind das niederwertigste Byte der Adressen. Zusätzlich zu diesen Schnittstellen habe ich br0 auf der öffentlichen IP des Hosts eingerichtet. Es gibt auch die Schnittstellen lo, veth2LPP9A und lxcbr0. Das lxcbr0 hat die Adresse einer privaten IP.
Der Host / etc / network / interfaces sieht folgendermaßen aus:
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
[...]
Bisher habe ich verschiedene Online-Quellen verwendet, einschließlich Bridging LXC-Container, um eth0 zu hosten, damit sie eine öffentliche IP-Adresse haben , die mir beim Einrichten hilft.
Die Konfigurationsdatei des Containers hat:
lxc.network.type = veth
lxc.network.link = br0
Ich habe die statische lxc.network.ipv4-Konfiguration aus dieser Datei entfernt, da sie Probleme verursacht hat. Wenn ich lxc-ls --fancy mit dieser Konfiguration laufen lasse, würde ich die gleiche allgemeine IP zweimal in der Ausgabe sehen. Außerdem würde dies die Subnetzkonfiguration der / etc / network / interfaces des Containers beeinträchtigen.
Apropos Interface-Datei des Containers:
auto eth0
iface eth0 inet static
address [...]
netmask 255.255.255.255
#gateway [...]
dns-nameservers 8.8.8.8
post-up route add [...] dev eth0
post-up route add default gw [...]
post-down route del [...] dev eth0
post-down route del default gw [...]
Ich musste das Gateway auskommentieren und die Route hinzufügen, um Befehle zu dieser Datei hinzuzufügen. Andernfalls würde der Container einige Minuten zum Booten benötigen.
Die Dateien / proc / sys / net / bridge / bridge-nf- * auf dem Host sind alle auf 0 gesetzt. Der Wert für / proc / sys / net / ipv4 / ip_forward ist 1.
Das Problem ist, dass ich nicht aus dem Container herauspingen kann, obwohl das "route -n" des Containers so aussieht, wie es sollte. Wenn ich mich an die IP des Containers wende, verbinde ich mich mit dem Host.
BEARBEITEN: Das Entfernen der statischen IP des Containers vom Host hat geholfen, aber jetzt erhalte ich einen neuen Fehler. Der Versuch, den Container vom Host aus zu pingen, führt zu Redirect HostFrom, New nexthop. Die Pakete werden einfach wiederholt vom Gateway zum Host gesendet. Das Ausführen einer Traceroute vom Host aus zeigt, dass sich der erste Stopp am Gateway befindet. Dann sind alle anderen Routen * * *. Ich habe das gleiche Problem, unabhängig davon, ob der Container online ist oder nicht.