Ich erkunde die LXC-Funktionen in Ubuntu 12.04 und möchte unbedingt ein Netzwerk wie das folgende einrichten:
client1: 192.168.56.101/24
lxc-host: 192.168.56.102/24
guest1 192.168.56.201/24
guest2 192.168.56.202/24
guest3 192.166.56.203/24
Ich möchte nur ein "flaches" Netzwerk, in dem die Gäste vollen Zugriff auf das LAN haben und für die Kunden sichtbar sind. Ich bin es gewohnt, Netzwerke mit libvirt / KVM zu verbinden, wie hier beschrieben: http://libvirt.org/formatdomain.html#elementsNICSBridge
Auf dem Host:
# /etc/network/interfaces
auto br0
iface br0 inet static
address 192.168.56.102
netmask 255.255.255.0
broadcast 192.168.56.255
bridge_ports eth1
lxc.conf für den ersten Gast:
# /var/lib/lxc/guest1/config:
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
lxc.network.hwaddr=00:16:3e:13:48:4e
lxc.network.ipv4=192.168.56.201/24
Es sieht so aus, als wäre 192.168.56.201 für die Außenwelt unsichtbar, was ich nicht will. Scheint, als müsste ich eines der folgenden Dinge tun:
1) Richten Sie das Routing auf dem Host und dem Gast manuell ein
2) Machen Sie etwas Tolles ... erstellen Sie im Voraus virtuelle Schnittstellen auf dem Host und konfigurieren Sie die Gäste so, dass sie diese verwenden lxc.network.type=phys
. Ich weiß nicht, ob das wirklich funktionieren würde.
Ich konzentriere mich auf Ubuntu, aber Antworten für RHEL / Fedora wären auch nützlich ...
quelle
Antworten:
Das ist so ziemlich richtig - obwohl Ihnen eine Zeile wie diese fehlt:
Ich habe einen LXC-Gast, der unter Debian läuft. Zuerst richten Sie die Host-Bridge ein (auf einfache Weise)
/etc/network/interfaces
:In deinem Fall hast du es genannt
br0
und ich habe es genanntwan
. Die Brücke kann beliebig benannt werden. Das funktioniert zuerst - wenn es fehlschlägt, untersuchen Sie es mit (z. B.)brctl
Dann ist Ihre LXC-Konfiguration so eingerichtet, dass sie dieser Bridge beitritt:
Wie HoverHell feststellt, kann jemand mit root im Container die IP-Adresse ändern. Ja. Es ist eine Brücke (auch Ethernet-Switch genannt). Wenn Sie dies verhindern möchten, können Sie Firewall-Regeln auf dem Host verwenden - zumindest in meinem Fall müssen die Pakete die Iptables des Hosts durchlaufen.
quelle
auto
ist auch ein gültiger Wert fürlxc.network.ipv4.gateway
und nach meinem Verständnis wird standardmäßig die IP der Bridge verwendet, mit der die Veth-Schnittstelle verbunden wird.wan_phy
mit dem Internet konfrontiert sind, muss die Bridge-IP eine weitere gültige öffentliche IPv4-Adresse sein, da sie sich im selben Subnetz wie die anderen öffentlichen IPv4-Adressen befinden muss, mit denen ich meine lxc-Gäste konfigurieren werde, oder? Aber das scheint ziemlich verschwenderisch. askubuntu.com/a/884293/394569 schlägt vor, dass die Konfiguration einer Bridge-Adresse nicht unbedingt erforderlich ist.Ich bin noch nicht vollständig in LXC eingestiegen.
Ich habe jedoch mehrere Container mit eigenen statischen IP-Adressen im LAN eingerichtet, die Internetdienste für einige meiner Websites bereitstellen.
Vielleicht kann das helfen, was Sie für Ihr wollen.
Ich betreibe mehrere Container, wie so,
AUF HOST-MASCHINE Ich habe die Datei des Hosts bearbeitet und jeden Container und jede Host-Maschine hinzugefügt: vi / etc / hosts
nach dem Speichern ...
Auch hier habe ich auf dem Host-Rechner Netzwerk & Bridge auf Folgendes eingestellt:
über dem netz ist meine router ip, für lan. (interne) Adresse & Broadcast ist der Hostrechner, die interne IP, die ich später als VHOST für den Internetzugang, Webserver, FTP usw. verwende.
FÜR LXC-CONTAINER 1-4 I SETUP CONFIG LIKE SO:
jetzt Container 1 IP = 192.168.1.101
Ich wiederhole für zusätzliche Container, um dort eine eigene statische IP auf dem LAN zu haben.
in Behälter 1-4,
vom Host aus einloggen:
& Ich setze jedes Containernetzwerk auf statisch, eth0 auf:
JEDER CONTAINER HAT EIGENE IP (lokal), DIE IM LAN VERFÜGBAR IST. U KANN JEDES INDIVIDUELLE LOKALE IP SSH, UM UNTER VERWENDUNG VON PUTTY ZU TESTEN!
Danach bin ich mir ziemlich sicher, dass du herausfinden solltest, wie man sie über das Internet ausführt, nachdem zum Beispiel vhost die IP-Adresse / Load Balancer / Proxy / etc.
Vielleicht kann dieses Setup trotzdem helfen.
quelle
iface
Zeilengruppe aufmanual
(notstatic
ordhcp
).up
,down
,dns-nameservers
Etc. kann nach wie vor in Debian usw. verwendet werdenIch habe noch nicht mit LXC gespielt, aber dieser Artikel soll Ihnen helfen: Netzwerkkonfiguration mit Ethernet-Bridges (überprüfen Sie Methode 2).
Um Ihnen einen Hinweis zur Konfiguration zu geben (ich gehe davon aus, dass Sie br0 bereits richtig konfiguriert haben):
ip link add type veth
brctl addif br0 veth0
ns_exec -nm -- /bin/bash
ip link set veth1 netns PID_OF_LXC_SHELL
quelle