Jump to content

Hilfe benötigt: Docker IPs nicht über Wireguard VPN zu erreichen


Domin1k

Recommended Posts

Hallo Community,

 

leider bin ich noch recht neu mit Unraid und Docker Konfigurationen. Ich hänge seit Längerem an dem folgenden Problem und komme einfach nicht dahinter.

Ich habe Wireguard aktiviert (remote tunneled access) und kann mich auch vom Handy (über LTE) aus darauf verbinden und surfen. Aber ich kann nicht auf meine Dockercontainer mit manueller IP zugreifen.

Ich vermute dass es was mit meinen IPs zu tun hat und die Antworten der Docker Container ins falsche Interface laufen. Aber das weiß ich nicht sicher.

Zur Grundconfig:

Unraid IP: 10.50.0.90

Docker IPS: 10.50.0.80-225

Wireguard Network: 10.253.0.0/24

Wireguard Server IP 10.253.0.1

Wireguard Client IP 10.253.0.2, allowed IP 10.253.0.2, Peer DNS 10.50.0.99

DNS raspberry pi pihole: 10.10.0.98  (den hier will ich abbauen, ist nur die Notlösung für den VPN Traffic. Anfangs ging der Docker DNS auch nicht übers VPN. Warum er es jetzt tut ist mir ein Rästel, da alle anderen Docker nicht funktionieren.)

DNS Server pihole Docker: 10.50.0.99

Local Server uses NAT: No          Remark: configure your router with a static route of 10.253.0.0/24 to 10.50.0.90      ist auch konfiguriert.

Host access to custom networks: Enabled

Am Router habe ich ein dstnat zwischen dem wan netz und dem unraid server 10.50.0.90.

 

Komischerweise funktioniert der DNS docker bzw. die DNS Abfragen übers VPN, aber der nextcloud docker streikt und auch ein ping auf den DNS docker bleibt unbeantwortet.

 

Beste Grüße

Dominik

Link to comment

Kann hier keiner helfen?

hier mal der tcpdump (aufgezeichnet auf dem Unraidserver, Ping vom Handy auf einen Docker) dazu:

~#  tcpdump -i any -v -n 'icmp and host 10.253.0.2' 

tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
12:23:31.706136 wg0   In  IP (tos 0x0, ttl 64, id 63552, offset 0, flags [DF], proto ICMP (1), length 84)
    10.253.0.2 > 10.50.0.99: ICMP echo request, id 56, seq 1, length 64
12:23:31.706172 shim-br0 Out IP (tos 0x0, ttl 63, id 63552, offset 0, flags [DF], proto ICMP (1), length 84)
    10.253.0.2 > 10.50.0.99: ICMP echo request, id 56, seq 1, length 64
12:23:31.706174 br0   P   IP (tos 0x0, ttl 63, id 63552, offset 0, flags [DF], proto ICMP (1), length 84)
    10.253.0.2 > 10.50.0.99: ICMP echo request, id 56, seq 1, length 64
12:23:31.706199 br0   Out IP (tos 0x0, ttl 64, id 40087, offset 0, flags [none], proto ICMP (1), length 84)
    10.50.0.99 > 10.253.0.2: ICMP echo reply, id 56, seq 1, length 64
12:23:31.706207 eth0  Out IP (tos 0x0, ttl 64, id 40087, offset 0, flags [none], proto ICMP (1), length 84)
    10.50.0.99 > 10.253.0.2: ICMP echo reply, id 56, seq 1, length 64

 

Sieht so aus als wenn die Antwort ins eth0 gesendet wird, anstatt in shim-br0 und dann in wg0.

Wie und wo kann ich nun die richtige Route setzen?

 

- Dominik

Link to comment

Das steht auf enabled. Aber meine Dockerversion ist 20.10.5.

Habe aber auch den Unraid stable Channel mit 6.9.2.

 

Könnte sich in einer automatisch generierten Configdatei, durch diverse Wechsel der IP-Bereiche während der Einrichtung, ein Fehler eingebaut haben?

 

Wireguard hatte ich erst direkt vor dem Thread deinstalliert, auf dem boot-USB-Stick den Wireguard Configordner gelöscht und neu installiert.

Da ich 10 Docker habe, wollte ich das allerdings nicht für die Docker machen...

Edited by Domin1k
Link to comment

...nicht wirklich.

Ich meide es wie die Pest, Docker ins gleiche Netz wie den unRaid Host zu legen...habe daher VLANs am Start und lasse im Zweifel alles zwischen Docker und unraid Host durch den Router laufen.

Evtl. hat es was damit zu tun das der TE augenscheinlich auf 6.10rc ist...da wurde ja von macvlan auf ipvlan umgestellt.

Damit haben die Docker keine unique MAC mehr, nur unique IPs.

Im gleichen Netz läuft bei IP ja alles über die ARP Tabelle, statt routing...

Link to comment
2 hours ago, Ford Prefect said:

da wurde ja von macvlan auf ipvlan umgestellt.

 

nur wenn er das aktiv umgestellt hat, ist eine Option und nicht Standard ... denke nicht dass der TE das gemacht hat und ich meine er ist auf 6.9.2

 

On 11/26/2021 at 2:57 PM, Domin1k said:

Das steht auf enabled. Aber meine Dockerversion ist 20.10.5.

Habe aber auch den Unraid stable Channel mit 6.9.2.

 

ich bin auf 6.10rc und hab die Option mac oder ipvlan, bleib aber auch auf macvlan da ipvlan keine Option ist mit den nicht unique MAC's mehr ....

Link to comment

Vielen Dank schon einmal für die Antworten.

 

@alturismo Ja ich kann die Unraid UI über das VPN öffnen. Aber nicht die Pihole UI des Dockers. Aber genau dieser Pihole scheint laut VPN Konfig zu funktionieren. Zumindest steht seine IP in der Handy-Config und wenn ich auf Unraid einen tcpdump mit Port53 und meiner Handy ip mache kommt Verkehr auf und das Handy kann surfen... Ich verstehe das nicht mehr.

Und nein, bisher nutze ich kein vlan auf Unraid oder in meinem Netz.

 

@Ford Prefect Ich denke ich versuche hier die Sache auf vlan Basis umzukonfigurieren. Dein Post klingt schlüssig. Leider habe ich in den VPN und Docker Beiträgen im Forum oder auch bei Spaceinvaders Videos, nirgends den Ratschlag gefunden vlan zu nutzen wenn man die Docker erstellt...

Da ich bisher nur in verschiedenen IP-Subnetze über den Router die Bereiche (WAN, LAN, Server, etc) trenne, muss ich mich erst einmal mit vlans bei Mikrotik und dann bei Unraid einlesen. Das dauert wohl ne Weile.

Oder kann Unraid zwei vlans nur auf sich selbst, für Docker und Host, betreiben? So dass ich mein Netzwek und Router nicht umkonfigurieren muss?

 

Edited by Domin1k
Link to comment
1 hour ago, Domin1k said:

@Ford Prefect Ich denke ich versuche hier die Sache auf vlan Basis umzukonfigurieren. Dein Post klingt schlüssig. Leider habe ich in den VPN und Docker Beiträgen im Forum oder auch bei Spaceinvaders Videos, nirgends den Ratschlag gefunden vlan zu nutzen wenn man die Docker erstellt...

Das Thema VLANs hat nicht direkt damit zu tun.

Sobald Du die am Start hast, nimmst Du einfach die passende Bridge.

br0: VLAN-ID=1

br0.10: VLAN-ID=10

br0.20: VLAN-ID=20

usw.....

 

1 hour ago, Domin1k said:

Da ich bisher nur in verschiedenen IP-Subnetze über den Router die Bereiche (WAN, LAN, Server, etc) trenne, muss ich mich erst einmal mit vlans bei Mikrotik und dann bei Unraid einlesen. Das dauert wohl ne Weile.

Mikrotik: https://forum.mikrotik.com/viewtopic.php?f=13&t=143620

Genau so!

 

1 hour ago, Domin1k said:

Oder kann Unraid zwei vlans nur auf sich selbst, für Docker und Host, betreiben? So dass ich mein Netzwek und Router nicht umkonfigurieren muss?

Nein, denn VLANs sind eben nicht untereinander bekannt.

 

  • Thanks 1
Link to comment
32 minutes ago, Ford Prefect said:

Das Thema VLANs hat nicht direkt damit zu tun.

Sobald Du die am Start hast, nimmst Du einfach die passende Bridge.

br0: VLAN-ID=1

br0.10: VLAN-ID=10

br0.20: VLAN-ID=20

usw.....

 

Mikrotik: https://forum.mikrotik.com/viewtopic.php?f=13&t=143620

Genau so!

 

Nein, denn VLANs sind eben nicht untereinander bekannt.

 

 

@Ford Prefect Klasse, besten Dank für die links! :)

Link to comment

Seit (gefühlt) Unraid 6.10. ist mir auch aufgefallen, dass ich diverse (aber nicht alle) Container über Wireguard nicht mehr erreichen kann.

 

Da wären unter anderem Nextcloud im "proxynet" custom bridge (bekannt aus den Spaceinverdaeone Video). Jedoch sind alle anderen Container aus dieser Custom Bridge zu erreichen.

Zusätzlich ist ein Container welcher über einen VPN Container zu erreichen ist, nicht über WireGuard zu erreichen, jedoch über seine URL vom RevereProxy.

Link to comment

@sonic6 Danke für den Hinweis. Den SWAG Container hatte ich wirklich mal installiert und die Configdatei liegt auch noch im appdata Ordner. Ich habe sie mal um mein VPN Netz ergänzt. Allerdings ist der Docker schon seit Monaten deinstalliert. Ich nutze im Moment den NginxProxyManager. Der hat kein Geoblocking; zumindest hatte ich das in keiner Confdatei oder Menü gefunden.

Link to comment
  • 4 weeks later...
On 11/27/2021 at 7:30 PM, Ford Prefect said:

...nicht wirklich.

Ich meide es wie die Pest, Docker ins gleiche Netz wie den unRaid Host zu legen...habe daher VLANs am Start und lasse im Zweifel alles zwischen Docker und unraid Host durch den Router laufen.

Evtl. hat es was damit zu tun das der TE augenscheinlich auf 6.10rc ist...da wurde ja von macvlan auf ipvlan umgestellt.

Damit haben die Docker keine unique MAC mehr, nur unique IPs.

Im gleichen Netz läuft bei IP ja alles über die ARP Tabelle, statt routing...

 

 @FordPrefect

So, ich habe nun mein LAN versucht auf VLAN umzustellen. Das meiste hat geklappt. Bis auf das eigentliche Problem des Threats...

Ich habe nun folgende Vlans im RouterOS von Mikrotik:

Vlan 1 (weiß nicht so recht wofür ich das nutzen sollte)

Vlan 10: 10.10.0.0/16 (Port 1 am Router) für die Fritzbox

Vlan 20: 10.20.0.0/16 (Port 2+3 am Router) fürs LAN

Vlan 40: 10.40.0.0/16 (Port 4 am Router) fürs WLAN

Vlan 50: 10.50.0.0/16 (Port 5 am Router) für den Unraid Server, allerdings konnte ich dem Unraid eth0/br0 kein VLAN Tag konfigurieren.

Vlan 60: 10.60.0.0/16 (ohne direkten Anschluß, sollte über Port 5 aus dem Unraid Server kommen) für das Wireguard-Netz. Allerdings weiß ich nicht wie ich das VLAN Tag für Wireguard in Unraid konfigurieren kann.

Vlan 70: 10.70.0.0./16 (ohne direkten Anschluß, sollte über Port 5 aus dem Unraid Server kommen) für die Docker-Container.

 

Ich kann nun von meinem LAN aus auf die Docker zugreifen (was vorher auch schon ging). Die Firewall regeln scheinen zu funktionieren.

Ich kann mich mit meinem Handy über Mobilfunk per Wireguard einwählen. Vom Handy aus geht aber nur der Ping zur Unraid IP durch. Alles andere erreiche ich nicht. Ich habe nach Stunden probieren und lesen immer noch keine Ahnung warum.

Das Paket geht vom Wireguard Tunnel zum Ziel durch und die Antwort geht verloren.

 

Hier mal der tcpdump auf dem Unraidserver wenn ich einen Ping vom Handy (10.60.0.2) zum Dockercontaier (10.70.0.125) absetze:

# tcpdump -i any -v -v -n 'icmp and host 10.60.0.2'
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
13:35:55.571869 wg0   In  IP (tos 0x0, ttl 64, id 28613, offset 0, flags [DF], proto ICMP (1), length 84)
    10.60.0.2 > 10.70.0.125: ICMP echo request, id 27, seq 1, length 64
13:35:55.571962 shim-br0.70 Out IP (tos 0x0, ttl 63, id 28613, offset 0, flags [DF], proto ICMP (1), length 84)
    10.60.0.2 > 10.70.0.125: ICMP echo request, id 27, seq 1, length 64
13:35:55.571963 br0.70 P   IP (tos 0x0, ttl 63, id 28613, offset 0, flags [DF], proto ICMP (1), length 84)
    10.60.0.2 > 10.70.0.125: ICMP echo request, id 27, seq 1, length 64
13:35:55.571988 br0.70 Out IP (tos 0x0, ttl 64, id 6275, offset 0, flags [none], proto ICMP (1), length 84)
    10.70.0.125 > 10.60.0.2: ICMP echo reply, id 27, seq 1, length 64
13:35:55.571990 eth0.70 Out IP (tos 0x0, ttl 64, id 6275, offset 0, flags [none], proto ICMP (1), length 84)
    10.70.0.125 > 10.60.0.2: ICMP echo reply, id 27, seq 1, length 64
13:35:55.571992 eth0  Out IP0 (invalid)

Hier die Routen auf dem Unraid-Server:

Protocol	Route		Gateway				Metric
IPv4	default			10.50.0.100 via br0		1	
IPv4	10.50.0.0/16		br0				1
IPv4	10.60.0.0/24		10.50.0.90			1	
IPv4	10.60.0.2		wg0				1	
IPv4	10.70.0.0/17		shim-br0.70			1	
IPv4	10.70.128.0/17		shim-br0.70			1	
IPv4	172.17.0.0/16		docker0				1 

 

Wenn ich nun vom PC aus auf den Docker-Container pinge bekomme ich eine Antwort, obwohl der tcpdump ähnlich aussieht:

# tcpdump -i any -v -v -n 'icmp and host 10.20.0.101'
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
15:17:12.434078 eth0  P   IP6, wrong link-layer encapsulation (invalid)
15:17:12.434078 eth0.70 P   IP (tos 0x0, ttl 127, id 56729, offset 0, flags [none], proto ICMP (1), length 60)
    10.20.0.101 > 10.70.0.125: ICMP echo request, id 1, seq 232, length 40
15:17:12.434078 br0.70 P   IP (tos 0x0, ttl 127, id 56729, offset 0, flags [none], proto ICMP (1), length 60)
    10.20.0.101 > 10.70.0.125: ICMP echo request, id 1, seq 232, length 40
15:17:12.434121 br0.70 Out IP (tos 0x0, ttl 64, id 10367, offset 0, flags [none], proto ICMP (1), length 60)
    10.70.0.125 > 10.20.0.101: ICMP echo reply, id 1, seq 232, length 40
15:17:12.434123 eth0.70 Out IP (tos 0x0, ttl 64, id 10367, offset 0, flags [none], proto ICMP (1), length 60)
    10.70.0.125 > 10.20.0.101: ICMP echo reply, id 1, seq 232, length 40
15:17:12.434127 eth0  Out IP0 (invalid)

 

Wenn ich den Packetsniffer auf dem Mikrotik Router laufen lasse, sieht das alles gut aus:

Unbenannt.JPG.b5146aaf725ea720c3900f4910d0240f.JPG

 

Hat noch jemand einen Hinweis was konfiguriert sein müsste, damit Wireguard auch zu den Dockern im vlan70 durchkommt?

 

Edited by Domin1k
Korrektur
Link to comment
1 hour ago, Domin1k said:

 

 @FordPrefect

So, ich habe nun mein LAN versucht auf VLAN umzustellen. Das meiste hat geklappt. Bis auf das eigentliche Problem des Threats...

Ich habe nun folgende Vlans im RouterOS von Mikrotik:

Vlan 1 (weiß nicht so recht wofür ich das nutzen sollte)

Vlan 10: 10.10.0.0/16 (Port 1 am Router) für die Fritzbox

Vlan 20: 10.20.0.0/16 (Port 2+3 am Router) fürs LAN

Vlan 40: 10.40.0.0/16 (Port 4 am Router) fürs WLAN

Vlan 50: 10.50.0.0/16 (Port 5 am Router) für den Unraid Server, allerdings konnte ich dem Unraid eth0/br0 kein VLAN Tag konfigurieren.

Vlan 60: 10.60.0.0/16 (ohne direkten Anschluß, sollte über Port 5 aus dem Unraid Server kommen) für das Wireguard-Netz. Allerdings weiß ich nicht wie ich das VLAN Tag für Wireguard in Unraid konfigurieren kann.

Vlan 70: 10.70.0.0./16 (ohne direkten Anschluß, sollte über Port 5 aus dem Unraid Server kommen) für die Docker-Container.

...dann ist Port 5 des Router ein Trunk-Port.

Hast Du das VLAN-Filtering richtig eingestellt?

Siehe: https://forum.mikrotik.com/viewtopic.php?f=13&t=143620

 

1 hour ago, Domin1k said:

Vlan 50: 10.50.0.0/16 (Port 5 am Router) für den Unraid Server, allerdings konnte ich dem Unraid eth0/br0 kein VLAN Tag konfigurieren.

Vlan 60: 10.60.0.0/16 (ohne direkten Anschluß, sollte über Port 5 aus dem Unraid Server kommen) für das Wireguard-Netz. Allerdings weiß ich nicht wie ich das VLAN Tag für Wireguard in Unraid konfigurieren kann.

Vlan 70: 10.70.0.0./16 (ohne direkten Anschluß, sollte über Port 5 aus dem Unraid Server kommen) für die Docker-Container.

Also das heisst, Du hast kein VLAN-Tagging auf unraid zum laufen gebracht?

Dann macht es natürlich wenig Sinn, hier nach Routing-/Verbindungs-Problemen weiter zu suchen.

 

Aktiviere VLANs für Deine UnRaid. Wenn Du nur eine Ethernet Karte da drin hast, gut...sonst deaktiviere die anderen erstmal.

Setze die eth0 in die bridge (br0).

VLAN 1 (ohne ID, default VLID=1), ist Dein Management LAN....das ist/bleibt die br0.

Aktiviere alle anderen VLAN-IDs

Du erhältst pro VLAN-D eine weitere Bridge, z.B. für VLAN 20 die br0.20.

Setze die unraid IPs inkl. Netz und GW für jedes VLAN.

 

image.thumb.png.6da73176e50d85e8b874f309eff9c58c.png

 

Wenn Du einen Docker in ein bestimmtes VLAN setzen willst, dann nimm als  Netzwerk die custom-bridge des jeweiligen VLAN, zB br0.70 und vergib ihm eine IP aus dem Netz (Achtung, ausserhalb des jewweiligen DHCP-Bereichs des Routers). Beispiel, hier für meinen AdguardHome, als zentralen DNS auf 192.168.10.10 (in VLAN-10):

image.thumb.png.8eff4fe6a230fe0195167ee7a24e44cf.png

 

 

1 hour ago, Domin1k said:

Ich kann mich mit meinem Handy über Mobilfunk per Wireguard einwählen. Vom Handy aus geht aber nur der Ping zur Unraid IP durch.

 

Wenn Du es nicht hinkriegst, aber wenn Du doch einen Mikrotik Router hast....nimm doch einfach Wireguard eben dort, statt Docker 🙃https://help.mikrotik.com/docs/display/ROS/WireGuard geht ab ROS v7...aktuell ist die v7.1.1. und läuft damit stabil. Ein VLAN70 brauchst Du dann dafür nicht mehr...machst das Routing eh auf dem Mikrotik, kannst aber das 10.70er Netz fürs WG-Mesh verwenden (auch wenn es sehr gross ist...was hast Du denn vor, mit 64k Hosts? 😅).

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...