unRAID, IPv6, Docker, LetsEncrypt

suRe

Ensign
Registriert
Nov. 2018
Beiträge
247
Hallo zusammen,

gibt es irgendwo eine gute Anleitung wie man die Docker Container von außen erreichbar machen kann, wenn man Ipv6 nutzt bzw. nutzen muss?
Aktuell sieht es so aus:
Internet (Deutsche Glasfaser) -> FritzBox 7490 -> unRAID Server

Vorher hatte ich 1&1 und eine IPv4 Adresse, da konnte ich diverse Docker ohne Probleme von außen erreichen. Also Standard mit DynDNS, CNAME etc.
Jetzt bei der Deutschen Glasfaser habe ich keine IPv4 Adresse mehr und weiß aktuell nicht wie ich das vernünftig umsetzen kann, sodass meine Container wieder von außen erreichbar sind.

Kann jemand helfen?
 
Soll nicht bald ein Update bei avm kommen mit wireguard und ipv6 vpn?
 
  • Gefällt mir
Reaktionen: madmax2010
Achso, sollte ich noch erwähnen. Soll nicht nur für mich erreichbar sein, sondern auch für den Rest der Familie/Freunde. Z.B. nutzt Nextcloud die ganze Familie.
 
Haben deine Docker IPv6 Adressen? Und wenn ja: Private oder öffentliche? Davon hängt es maßgeblich ab, wie die weitere Vorgehensweise ist. Bevor wir jetzt alle Eventualitäten abklappern, beschreibe diesbezüglich dein Setup möglichst präzise, vor allem: Wie ist die IPv6 Adressverteilung in deinem Netz? Arbeitest du z.B. mit PD?
 
Kannst Du via DynDNS nicht die IPv6 Adresse der Box als AAAA-Record eintragen lassen? Der Rest wäre dann die klassische Portfreigabe.
 
Es ist glaube ich gar nicht wichtig dass die Docker Container eine IPv6 Adresse haben. Meine Container sind auch alle über IPv6 erreichbar (aber auch IPv4), dazu nutze ich Traefik2 als Reverse Proxy der sich dann darum kümmert wo im Netzwerk oder Container der Dienst läuft. Bei dir würde der PC auf dem der reverse proxy läuft dann erreichbar sein müssen.
 
Die klassische Portfreigabe funktioniert via IPv6 eben nicht mehr, da die Geräte im Netz selber öffentliche IP-Adressen haben, und nicht nur der Router wie bei IPv4.

Mit einem Reverse Proxy hat man natürlich gewisse Möglichkeiten, schränkt sich aber ggf. bei den nutzbaren Diensten ein. Da muss man sehen, was mehr administrativen Aufwand braucht. Wenn man mit Portfreigaben arbeitet, muss die Kette jedenfalls komplett IPv6 sein.
 
riversource schrieb:
Haben deine Docker IPv6 Adressen? Und wenn ja: Private oder öffentliche?
Aktuell ist noch alles für IPv4 eingestellt. Der Switch von DSL auf Glasfaser ist auch erst ein paar Tage her. Daher ist das alles "neu" für mich. Was genau meinst du denn mit PD?

Also bei mir laufen alle Docker, welche von außen erreicht werden sollen, bei unRAID im "(Reverse)Proxy" Netz.
Erreichbar ist alles über eine eigene Domain, welche den cname Eintrag auf eine No-ip Adresse hat.
 
"PD" ist Prefix Delegation und wäre ein Weg, deinen Docker Containern öffentliche IP-Adresse zu verteilen. Damit ruft dein unRAID sich ein Prefix von der Fritzbox ab und verteilt es an seine Container.

Ich kenne die Möglichkeiten des unRAID Reverse Proxys nicht, und ob es damit möglich ist, Anfragen, die von außen über IPv6 reinkommen, über IPv4 an die Container zu verteilen. Falls das geht, wäre es vermutlich der Weg mit dem geringsten Aufwand. Falls nicht, müsstest du als Erstes eine saubere IPv6 Konfiguration aufsetzen, bis zum Container, so dass jeder Container das Internet via IPv6 erreichen kann.
 
@suRe dein stichwort lautet ArgoTunnel von Cloudflare. Selbst wenn du keine öffentliche IPv4/6 Adresse hast, lässt sich dein Server trotzdem von außerhalb erreichen. Theoretisch wäre es hiermit völlig egal wo er anschließend steht. Hauptsache der Cloudflared container läuft.
 
riversource schrieb:
Die klassische Portfreigabe funktioniert via IPv6 eben nicht mehr, da die Geräte im Netz selber öffentliche IP-Adressen haben, und nicht nur der Router wie bei IPv4.

Die klassische Portfreigabe braucht es bei IPv6 nicht mehr, weil es da kein NAT gibt. Hier bekommt aber Dein Router eine IPv6 Adresse (neben einem Präfix) und kann dann sehr wohl NAT machen, um einen Port auf Deinem Router zu Deinem Container via IPv4 zu leiten.
 
maxim.webster schrieb:
Hier bekommt aber Dein Router eine IPv6 Adresse (neben einem Präfix) und kann dann sehr wohl NAT machen, um einen Port auf Deinem Router zu Deinem Container via IPv4 zu leiten.
Bist du dir da absolut sicher, dass du einen externen Port auf IPv6 auf eine interne IPv4 Adresse leiten kannst? Die Möglichkeit dafür hab ich in meiner Fritzbox noch nie gesehen. Die Möglichkeit, externe IPv6 Freigaben festzulegen, bekomme ich erst, wenn es eine interne IPv6 Adresse gibt, auf die sie zeigen können.
 
Nein, absolut sicher bin ich mir nicht, weil ich keine FritzBox für den Internet-Zugang verwende.

Ich habe aber eine im Netz (6660), wenn ich dort auf Freigaben gehe, muss ich ein Gerät für Freigaben hinzufügen und kann dann eine neue Freigabe (Port) ohne Einschränkung auf IPv4/6 einrichten.

Ob dass dann letztlich eine Firewall-Freischaltung auf die Interface-ID oder NAT ist, kann ich Dir leider nicht sagen.
 
maxim.webster schrieb:
Ob dass dann letztlich eine Firewall-Freischaltung auf die Interface-ID oder NAT ist, kann ich Dir leider nicht sagen.
Für IPv6 ist es ausschließlich ersteres.

Ggf. ist es möglich, mit Hilfe eines Reverse Proxys IPv6 Anfragen auf IPv4 durchzureichen. In diesem Fall wäre es dann so, dass für den unRAID Host in der Fritzbox die entsprechenden Freigaben eingerichtet werden. Darüber hinaus müsste der unRAID Host dyndns machen, damit die Adresse erreichbar wird (oder man müsste alternativ sowas wie dynv6 nutzen). Dann müsste man im Proxy den Zugriff auf die entsprechenden Dienste konfigurieren.

Wie gesagt, ich vermute, dass das die einfachste Möglichkeit ist. Sonst müsste man dafür sorgen, dass jeder Container eine IPv6 Adresse hat und die entsprechenden Freigaben in der Fritzbox und im unRAID Host einrichten. Das dürfte unterm Strich aufwendiger werden.
 
Könnte ich das über NPM (nginx proxy manager) realisieren?
Quasi die IPv6 des NPM Dockers als AAAA-Record meiner Domain nextcloud.blabla.de hinterlegen. In der Fritzbox dann die "weiterleitung" einrichten und den Rest erledigt NPM?
 
Wenn das mit Traefik geht, dann bestimmt auch mit NPM. Ich hoffe ich komme über die Feiertage mal dazu das zu testen. Ich werde berichten :-)
 
@suRe wie schon erwähnt, schau mal nach dem ArgoTunnel Tutorial von ibracorp. Dadurch sparst du dir auch jede menge AAA/A Einträge in cloudflare zbsp. und setzt nur noch cnames ein.
Dadurch kannst du in NPM einfach die ipv4:port vom docker benutzen + erstelltes CNAME.
 
Das klingt auch super. Ich seh schon, da muss ich mir am Donnerstag doch mal die Zeit für nehmen :-)
 
Tja, jetzt hatte ich letztes Wochenende mal Zeit, aber es wollte nicht klappen.
Die Docker-Container bekommen keine IPv6 zugewiesen. Muss ich da noch irgendwas beachten?
unRAID steht auf IPv4 + IPv6, ebenso Docker. Die Container sollen eigentlich über das custom Netzwerk "proxy" laufen, hier erscheint aber auch keine IPv6 für das Subnet. Lediglich bei Custom:br0.
In der FritzBox tauchen die entsprechenden Container nur mit einer IPv4 auf.

Meinen Desktop PC kann ich in der FritzBox "freigeben" und die IPv6 anpingen. Also scheint es ja grundsätzlich zu funktionieren.

Wenn ich hier nicht weiterkommen, probiere ich doch mal den Vorschlag von niteholic aus. Obwohl es mich ja schon reizt es gründsätzlich auch mit v6 hinzubekommen.
Habt Ihr ne Ahnung woran es liegen könnte?
 
Zurück
Oben