Das ist mein Szenario:
-
Fritzbox an einem DualStack DSL-Anschluß von der Telekom
-
Auf https://ipv64.net habe ich eine eigene Domian für DnyDNS registriert (bin Suppporter😉), bspw
foo.bar.com. Die Fritzbox aktualisiert ohne Probleme. -
Dahinter im LAN eine Synology mit neuestem DSM 7.2
-
Auf der Syno läufen in mehreren Docker Compose Stacks verschiedene Webapps (Nextcloud, Vaultwarden, Immich, Jellyfin, …)
-
Einzelne Webapps sollen aus dem Internet erreichbar sein. Also habe ich Caddy (auch in einem Docker Compose Stack) als Reverse Proxy eingerichtet.
-
Bei meinem Webhoster habe ich für die Webapps verschiende CNAME-Record angelegt welche auf die Fritzbox zeigten, zB
nx.bar.com IN CNAME foo.bar.com -
Caddy macht seinen Job und schaut von welcher Adresse die Anfrage kam und leitet diese an die richtigen internen Docker Container weiter.
Nix Besonderes oder Ungewöhnliches soweit. Oder?
Bisher hatte ich ich nur IPv4 aktiv. Weil auf der Syno die Start-Ports 80 und 443 von belegt sind hatte ich meinem Caddy-Container die Ports 11180 und 11443 gegeben. Dann habe mit dem PortForwarding der Fritzbox den externen Port 80 auf den internen Port 11180 der Syno weitergeleiter. Analog dazu Port externen Port 443 zu internen Port 11443.
Jetzt muss/will ich IPv6 anschalten. Das ändert einiges:
-
Die Syno bekommt eine weltweit gültige IPv6-Internetadresse (IPv6 Privacy Extensions ist ausgeschalten).
-
Für die Syno habe ich eine neue Subdomain angelegt:
syno.foo.bar.com
- IPv6-Adresse wird von https://ipv64.net wunderbar aktualisiert.
Der Präfix kommt von der Telekom und ändert, die Interface-ID bleibt gleich.
-
IPv4-Adresse ist noch eine Baustelle, siehe Beitrag im Discourse
-
Fritzbox macht für IPv6 kein PortForwarding mehr, sondern ist nur noch Firewall.
-
Deswegen muss ich den den CNAME-Record der Webapps nicht mehr auf den Fritzbox zeigen lassen sondern auf die Syno.
nx.bar.com IN CNAME syno.foo.bar.comOkay?!
Alles soweit korrekt. Oder? Nun stolpere ich aber über verschiedene Dinge:
-
Weil nun die Syno direkt die Anfragen aus dem Netz bekommt kommen die Anfragen auch bei den Standart-Ports 80 und 443 an. Da läuft ja aber mein Caddy nicht.
-
Also war meine Idee den Docker Compose Stack für den Caddy Reverse Proxy so zu ändern, dass er in einem
macvlansitzt und direkt von der Fritzbox eine als eigene Host gesehen wird. -
Auch dieser Host bekommt eigene Subdomain:
reproxy.foo.bar.com -
Diese neue Host kann dann 80 und 443 verwenden und er hat auch eine weltweit gültige IPv6-Internetadresse.
-
Also ändere den CNAME-Einträge nochmal:
nx.bar.com IN CNAME revproxy.foo.bar.com -
Aber nun stehe ich vor dem Problem das Container aus einem
macvlanDocker-Network nicht mit Containern in einem defaultbridgeDocker-Network sprechen dürfen.
Ich habe mich jetzt schon mehrere Stunden mit ChatGPT gestritten wie es wohl am, besten umzusetzen ist. Mir platzt langsam der Kopf. ![]()
Wie würdet ihr das machen? Ist das mit dem macvlan überhaupt notwendig?