Netzwerk Problem LXD Container als Webserver
Netzwerk Problem LXD Container als Webserver
Hallo, ich hätte da eine Grundsätzliche Frage, wie ich an folgendes Problem ran gehen soll:
Auf dem Host laufen zwei LXD Cotainer. In jedem Container läuft ein Webserver für je eine Webseite, die jeweils über eine bestimmte Domain erreichbar sein sollen. Ich habe genau eine öffentliche IP Adresse verfügbar für alle Webseiten. Wie muss ich das Netzwerk konfigurieren, damit die Webseiten erreichbar sind?
Grüße
Henrik Kiepe
Auf dem Host laufen zwei LXD Cotainer. In jedem Container läuft ein Webserver für je eine Webseite, die jeweils über eine bestimmte Domain erreichbar sein sollen. Ich habe genau eine öffentliche IP Adresse verfügbar für alle Webseiten. Wie muss ich das Netzwerk konfigurieren, damit die Webseiten erreichbar sind?
Grüße
Henrik Kiepe
Gruß
Henrik
Henrik
Re: Netzwerk Problem LXD Container als Webserver
Hallo Henrik,
schau in deinen Thread zum Hetzner Root Server.
viewtopic.php?f=8&t=166785&start=30#p1147712
Du brauchst auf dem Host den HA-Proxy oder für jeden Container eine öffentliche IP-Adresse.
Grüße
Jens
schau in deinen Thread zum Hetzner Root Server.
viewtopic.php?f=8&t=166785&start=30#p1147712
Du brauchst auf dem Host den HA-Proxy oder für jeden Container eine öffentliche IP-Adresse.
Grüße
Jens
Re: Netzwerk Problem LXD Container als Webserver
OK - das hatte ich tatsächlich überlesen. Habe derzeit eine steile Lernkurve 

Gruß
Henrik
Henrik
Re: Netzwerk Problem LXD Container als Webserver
Ich würde dir eher dazu raten bei Hetzner ein Subnetz zu bestellen und den Containern direkt die öffentlichen IPs zuzuordnen.
Weniger Dienst bedeuten ja auch bekannterweise weniger Probleme.
Weniger Dienst bedeuten ja auch bekannterweise weniger Probleme.
Re: Netzwerk Problem LXD Container als Webserver
Hast du vielleicht eine Beispielkonfiguration dafür? Habe jetzt ein 29er Subnetz bestellt, aber noch keinen Plan, wie ich die IP Adressen den Containern zuordnen kann.bluestar hat geschrieben:17.12.2017 21:22:55Ich würde dir eher dazu raten bei Hetzner ein Subnetz zu bestellen und den Containern direkt die öffentlichen IPs zuzuordnen.
Gruß
Henrik
Henrik
Re: Netzwerk Problem LXD Container als Webserver
Für mein Beispiel habe ich folgende Daten gewählt:graubart hat geschrieben:30.12.2017 18:35:16Hast du vielleicht eine Beispielkonfiguration dafür? Habe jetzt ein 29er Subnetz bestellt, aber noch keinen Plan, wie ich die IP Adressen den Containern zuordnen kann.
Server-IP: 1.1.1.1
Als Subnetz/29 habe ich folgendes gewählt: 1.2.3.0/29
Ich fang mal mit der /etc/network/interfaces vom "Host" an:
Code: Alles auswählen
auto br-lxc
iface br-lxc inet static
bridge_fd 0
bridge_stp off
bridge_ports none
address 1.1.1.1
netmask 255.255.255.255
up /sbin/ip route add 1.2.3.0/32 dev $IFACE
up /sbin/ip route add 1.2.3.1/32 dev $IFACE
up /sbin/ip route add 1.2.3.2/32 dev $IFACE
up /sbin/ip route add 1.2.3.3/32 dev $IFACE
up /sbin/ip route add 1.2.3.4/32 dev $IFACE
up /sbin/ip route add 1.2.3.5/32 dev $IFACE
up /sbin/ip route add 1.2.3.6/32 dev $IFACE
up /sbin/ip route add 1.2.3.7/32 dev $IFACE
Code: Alles auswählen
net.ipv4.ip_forward=1
Code: Alles auswählen
lxc.network.type = veth
lxc.network.link = br-lxc
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:xx:xx:xx
Code: Alles auswählen
lxc.network.ipv4 = 1.2.3.0/32
lxc.network.ipv4.gateway = 1.1.1.1
Innerhalb des Containers trägst du als /etc/network/interfaces folgendes ein:
Code: Alles auswählen
auto lo
iface lo inet loopback
Re: Netzwerk Problem LXD Container als Webserver
Für IPv6 bei Hetzner sieht das wie folgt aus, auf dem Host System in /etc/network/interfaces
Hetzner-IPv6-Netz: 2001:0db8:85a3:08d3::/64
Für jeden Container sieht die IPv6-Konfiguration dann wie folgt aus:
Natürlich je Container eine eigene Adresse außer der 2001:0db8:85a3:08d3::2 verwenden.
Hetzner-IPv6-Netz: 2001:0db8:85a3:08d3::/64
Code: Alles auswählen
iface eth0 inet6 static
address 2001:0db8:85a3:08d3::2
netmask 128
gateway fe80::1
iface br-lxc inet6 static
address 2001:0db8:85a3:08d3::2
netmask 64
up /sbin/ip -6 addr add fe80::1 dev $IFACE
up /sbin/sysctl -w net.ipv6.conf.all.forwarding=1
Code: Alles auswählen
lxc.network.ipv6 = 2001:0db8:85a3:08d3::3/64
lxc.network.ipv6.gateway = fe80::1
Re: Netzwerk Problem LXD Container als Webserver
Genial, danke für die Konfiguration. Die IP adressen habe ich in network/interfaces schon eingerichtet. allerdings habe ich etwas mit LXD zu kämpfen. Ich versuche lxd noch auf 2.3 zu updaten, weil die Netzwerkkonfiguration mit LXD2.0 noch etwas rudimentär ist.
Gruß
Henrik
Henrik
Re: Netzwerk Problem LXD Container als Webserver
die Datei /etc/lxc/default.conf existert bei mir nicht. In dem Ordner gibt es nur lxc-usernet. Die Datei ist allerdings leer. Muss ich default.conf selbst erstellen?
Gruß
Henrik
Henrik
Re: Netzwerk Problem LXD Container als Webserver
Ich schätze mal das dies an der Tatsache liegt, das du LXD nutzt und nicht LXC...
Letztlich ist das auch gar nicht schlimm, du definierst über lxc eine Netzwerkbrücke mit dem Namen „br-lxc“ ohne DHCP und ohne NAT.
Letztlich ist das auch gar nicht schlimm, du definierst über lxc eine Netzwerkbrücke mit dem Namen „br-lxc“ ohne DHCP und ohne NAT.
Re: Netzwerk Problem LXD Container als Webserver
Also wenn ich ein ipv4 Netzwerk definiere muss ich mit "lxd init" auch gleichzeitig einen DHCP Server anlegen. Aber die Brücke funktioniert schon mal 

Gruß
Henrik
Henrik
Re: Netzwerk Problem LXD Container als Webserver
Wesentlich einfacher und mit einer einzelnen öffentlichen IP wäre ggf ein nginx reverse-proxy:
https://www.nginx.com/resources/admin-g ... rse-proxy/
https://www.nginx.com/resources/admin-g ... rse-proxy/
Code: Alles auswählen
server {
server_name domain1.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.100.100:80;
}
}
server {
server_name domain2.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.100.101:80;
}
}
Re: Netzwerk Problem LXD Container als Webserver
ok also die lösung mit der bridge gefällt mir eigentlich ganz gut. Die bridge (ohne NAT und DHCP) habe ich nun auch eingerichtet und lxd nutzt diese auch. Allerdings weiss ich nicht, wie ich den einzelnen Containern nun die jeweilige IP zuweisen kann, so wie von Dir beschrieben:
Wenn ich nun einen Container erstelle, erhält dieser keine IP weil der DHCP nicht eingerichtet wurde ...bluestar hat geschrieben:30.12.2017 20:47:23Nun legst du deinen ersten Container an mit folgenden Netzwerkparametern anCode: Alles auswählen
lxc.network.ipv4 = 1.2.3.0/32 lxc.network.ipv4.gateway = 1.1.1.1
Gruß
Henrik
Henrik
Re: Netzwerk Problem LXD Container als Webserver
In etwa so:
Unsere Container laufen noch mit lcx statt lxd.
Code: Alles auswählen
echo -e "lxc.network.0.ipv4 = 144.217.33.224\nlxc.network.0.ipv4.gateway = 149.56.27.254\n" | lxc config set template-yakkety raw.lxc -
Re: Netzwerk Problem LXD Container als Webserver
Werd nun erst Mal den DHCP Server der LXC Container negmen, weil ich es nicht hinbekomme den Containern die entsprechende IP-Adresse zuzuweisen. Meine Erfahrung reicht nicht aus... Ich vergebe dann den entschprechenden adressbereich und hoffe Mal dass die IP-Adressen sich nicht all zu oft ändern....
Gruß
Henrik
Henrik