-
Erfahrungen
Autor: gaelic 02.11.17 - 12:08
Hat jemand Erfahrung mit der Kommunikation zwischen 2 Containern (per Port) und mit dem integrieren von VPN in einen Container.
Z.b.
- Container A soll mit Container B kommunizieren können
- Container A soll per VPN mit dem Netz sprechen
- Container B soll ohne VPN mit dem Netz verbunden sein -
Re: Erfahrungen
Autor: nomarus 02.11.17 - 12:30
https://docs.docker.com/engine/userguide/networking/work-with-networks/#linking-containers-in-user-defined-networks
-
Re: Erfahrungen
Autor: Schattenwerk 02.11.17 - 12:30
Zu wenig Informationen für eine sinnvolle Beantwortung.
Aber ein mögliches, ziemlich triviales Szenario:
- Docker-Host bekommt zwei lokale IP-Adressen
- Container A wird auf IP 1 gebunden
- Container B wird auf IP 2 gebunden
- Kommunikation lokal zwischen A und B kein Problem
- Firewall regelt durch integrierten VPN-Client, dass Container A per VPN raus geht und Container B normal.
Wenn die Firewall es nicht kann, dann wirds interessanter mit lokalem Tunnel etc.
Aber wie schon gesagt: Ohne ausreichende Informationen keine passende Antwort. -
Re: Erfahrungen
Autor: Areon 02.11.17 - 13:56
Du könntest dir mal diesen Container mal anschauen
https://hub.docker.com/r/dperson/openvpn-client/ -
Re: Erfahrungen
Autor: gaelic 02.11.17 - 16:10
Schattenwerk schrieb:
--------------------------------------------------------------------------------
> Zu wenig Informationen für eine sinnvolle Beantwortung.
Und die fehlende Information wäre?
> Aber ein mögliches, ziemlich triviales Szenario:
>
> - Docker-Host bekommt zwei lokale IP-Adressen
> - Container A wird auf IP 1 gebunden
> - Container B wird auf IP 2 gebunden
> - Kommunikation lokal zwischen A und B kein Problem
> - Firewall regelt durch integrierten VPN-Client, dass Container A per VPN
> raus geht und Container B normal.
Von 2 IP Adressen und einer Firewall war nie die Rede. VPN aus dem Container heraus. -
Re: Erfahrungen
Autor: gaelic 02.11.17 - 16:13
Thx, das ist mal ein Anfang wie die Container miteinander Kommunizieren. VPN im Container (via systemd?) wäre dann ein weiterer Schritt
-
Re: Erfahrungen
Autor: gaelic 02.11.17 - 16:15
Super, sowas habe ich gesucht:
sudo docker run -it --name bit --net=container:vpn -d dperson/transmission -
Re: Erfahrungen
Autor: dimorog 02.11.17 - 16:21
Das sollte kein Problem sein, ich gehe mal davon aus das mit Netz das Internet/WAN gemeint ist und A als VPN Client fungiert
Netz <-> VPN <-> A
A <!> Netz
A <-> B
Netz <-> B
Subnetz:
Grün: 172.17.0.0/24 (VPN, WAN, beschränkt auf Port zum aufbauen von VPN, keine normale Internet Verbindung, iptables)
Blau: 172.18.0.0/24 (nur intern - (docker create network --internal blau))
Rot: 172.19.0.0/24 (extern)
Container A: Grün, Blau
Container B: Blau, Rot
Die Limitation scheint aktuell zu sein das Docker nur mit einem Netzwerk starten kann, es ist aber möglich mit "docker network connect <netz> <container>" das zweite Interface anzuhängen -
Re: Erfahrungen
Autor: dimorog 02.11.17 - 16:23
gaelic schrieb:
--------------------------------------------------------------------------------
> Super, sowas habe ich gesucht:
>
> sudo docker run -it --name bit --net=container:vpn -d dperson/transmission
mit "--net container:vpn" tritts du nur dem namespace eines anderen containers bei, also etwa wie zwei Clients die sich einen Port am Router teilen. Ausserdem kannst du über die gemeinsame interne IP kommunzieren, aber nicht limitieren -
Re: Erfahrungen
Autor: sniner 02.11.17 - 16:39
gaelic schrieb:
--------------------------------------------------------------------------------
> Thx, das ist mal ein Anfang wie die Container miteinander Kommunizieren.
> VPN im Container (via systemd?) wäre dann ein weiterer Schritt
systemd im Container will man eher nicht haben. In einem Container läuft üblicherweise genau ein Prozess, wofür brauchst du dann systemd? (Open)VPN im Container ist kein Problem, man muss sich nur Gedanken machen ob der Container dann direkt im Host-Netzworkstack hängen soll oder nicht. Wenn Broadcasts eine Rolle spielen, dann muß er direkt im Host hängen. Kuck dich halt mal im Docker Hub um, ob was von der Stange dabei ist: https://hub.docker.com/
Meiner Erfahrung nach ist der Docker Hub zwar nett, aber erst dann, wenn man weiß wie so ein Container funktioniert ;-) Also besser erstmal selber basteln. -
Re: Erfahrungen
Autor: Geistesgegenwart 02.11.17 - 17:57
gaelic schrieb:
--------------------------------------------------------------------------------
> Hat jemand Erfahrung mit der Kommunikation zwischen 2 Containern (per Port)
> und mit dem integrieren von VPN in einen Container.
>
Wenn du ein VPN Gateway erstellen willst, das über Netzgrenzen hinweg kommunizierst, ist das natürlich möglich. Wenn du aber nur eine Lösung willst, mit der z.B. der Webserver mit der Datenbank kommuniziert und das ganze "privat" und sicher nur innerhalb des Dockercontainers möglich ist, solltest du lieber UNIX sockets verwenden (nicht TCP sockets). Der DB-Container würde dann einen Socket auf dem Dateisystem erstellen, und der Webserver diesen Socket verwenden. Damit entfällt auch jeglicher TCP overhead. Wird ja auch so gemacht, wenn der Webserver und der DB Server auf dem gleichen OS ohne virtualisierung laufen (anstatt über 127.0.0.1 zu gehen).