Split DNS, Zertifikat lokale IP

Problem mit SplitDNS, Nginx Proxy Manager und Nextcloud (Snap)

Hallo zusammen,

ich stehe vor einem Problem mit meiner Nextcloud (Snap), die ich in Kombination mit dem Nginx Proxy Manager und Pi-hole verwende. Ich habe folgende Konfiguration:

1.	Nextcloud ist lokal über die IP-Adresse erreichbar.
2.	Global ist sie über eine Domain erreichbar, die durch den Nginx Proxy Manager weitergeleitet wird. Für die Domain verwende ich ein SSL-Zertifikat, das ich ebenfalls über den Nginx Proxy Manager eingerichtet habe.

Nun möchte ich SplitDNS über meinen Pi-hole verwenden, damit ich sowohl lokal als auch global die Domain nutzen kann, anstatt für den lokalen Zugriff die IP-Adresse zu verwenden. Dies funktioniert soweit, dass die Domain lokal auf die IP-Adresse aufgelöst wird, aber:

•	Der Zugriff über den Nextcloud-Client auf Desktop und Handy funktioniert nicht richtig. Die Domain wird zwar auf die IP-Adresse aufgelöst, aber es gibt ein Problem mit der HTTPS- bzw. HTTP-Konfiguration. Lokal wird nämlich nur HTTP verwendet, während global HTTPS genutzt wird. Daher funktioniert die Verbindung nicht reibungslos.

Ich habe bereits versucht, über den Nginx Proxy Manager ein lokales Zertifikat für die IP-Adresse einzurichten, aber ich kann die IP-Adresse nicht über HTTPS aufrufen.

Meine globale Domain läuft weiterhin ohne Probleme mit einem gültigen SSL-Zertifikat, aber ich möchte sicherstellen, dass auch der lokale Zugriff über HTTPS möglich ist, um Konflikte zu vermeiden.

Hat jemand eine Idee, wie ich dieses Setup so konfigurieren kann, dass sowohl der globale als auch lokale Zugriff über die Domain mit HTTPS funktioniert, ohne dass der Nextcloud-Client (oder die Apps) Probleme macht?

Vielen Dank im Voraus für eure Hilfe!

Habe das fast das gleiche Setup, einfach mit bare metal anstelle von snap.
Den Traffic zwischen Proxy und Nextcloud mache ich unverschlüsselt, da im eigenen VLAN.

Angenommen dein Proxy ist 192.168.1.2 und deine Nextcloud 192.168.1.3.
Deine Nextcloud hat 192.168.1.2 als trusted proxies hinterlegt.
Dein Proxy hat ein cert.
Das cert lautet auf domain.com.
Domain.com hat einen A record der ist 80.80.80.1.
Für den AAAA record müssen wir nichts weiter machen, da kein NAT.
Für den A record brauchen wir aber SplitDNS, da NAT vorhanden ist und externe und interne IP nicht übereinstimmen.
Bei pihole sage ich also unter Local DNS records, dass:
die Domäne domain.com auf 192.168.1.2 zeigt.
Damit funktioniert dein Cert lokal und von unterwegs, da dein DNS immer auf den Proxy zeigt.

2 Likes

Danke für deine Antwort! Dein Vorschlag funktioniert bei meinem Notebook und PC reibungslos: die lokale IP wird automatisch über die Domain geleitet.

Leider tritt bei meinen iPhones und iPads folgendes Problem auf: Trotz aktiver Pi-hole-Konfiguration greifen die Geräte weiterhin auf die öffentliche Domain zu, anstatt auf die lokale. Zusätzlich kann ich über das Mobilfunknetz gar nicht mehr auf die Domain zugreifen (“Host not found”), es sei denn, ich nutze NordVPN.

Hast du eine Idee, woran das liegen könnte oder was ich noch testen könnte?

Vielen Dank im Voraus!


hallo @Sam00 wilkommen im Forum :handshake:

man kann für eine IP kein valides öffentliche Zertificat ausstellen (von selbserstellten rate ich ab wegen handling).

Ich gluabe du gehtst die Sache von der Falschen Seite an - man muss nicht unterschiedliche Zertificate usw haben - der “Eingang” intern und extern musst gleich sein, sprich dein Client greift intern und extern auf der Reverse Proxy zu nur dass extern der Zugriff zusätzlich über der Router und Prot Forwarding passiert. Schaue dir bitte dieses high-level Artikel dazu an 101: Split-Brain DNS (split-horizon)

2 Likes

Beide Geräten sind Mobilgeräte und verbinden sich mittels WLAN, daher musst Du vermutlich in Deinem lokalen DHCP Server sicher stellen, dass dieser auch den richtigen “internen” DNS propagiert

Solche Effekte können auftreten, wenn Dein Router z.B. über IPv4 und IPv6 von außen erreichbar ist. In einem solchen Fall bevorzugen Mobilgeräte üblicherweise eine IPv6-Verbindung, die fehlschlägt, wenn das Protokoll lokal nicht korrekt konfiguriert ist. Hier kann es helfen IPv6 z.B. auf dem Internet-Router zu deaktivieren.

1 Like

@Sam00
Ich verstehe einfach nicht, warum immer alle unterschiedliche Wege von innen (LAN) und außen (Internet) nutzen wollen. Kannst du nicht von außen und innen auf dieselbe nginx-Infrastruktur zugreifen? Dann sparst du dir den ganzen unnötigen Aufwand. Von der Performance ist es praktisch auch egal. Vielleicht brauchst du nur sowas wie Hairpinning oder NAT Loopback auf deinem Internetrouter.

Schon darauf würde ich verzichten. Die Domain sollte auf die weltweite IP-Adresse zeigen und trotzdem vom Intranet (LAN) aufrufbar sein.

Leider habe ich mit Snap Nextcloud sehr negative Erfahrungen bzgl. Zertifikate gemacht. Bei normalen Nextcloud-Installationen kannst du nämlich problemlos mehrere Subdomains/Domains/Zertifikate verwalten in einer reinen LAMP-Installation. Snap kann wohl nur ein Zertifikat verwalten und du musst wohl immer einen Reverse Proxy vorschalten wenn du mehrere Subdomains/Domains/Zertifikate für deine Nextcloud willst. Viele sehen das als nicht schlimm an. Ich halte das oft für unnötig, kompliziert und fehleranfällig. Allein bei dem Ärger habe ich eine Standard-Nextcloud schon drei Mal installiert.

:roll_eyes:

:thinking:

Danke für dein Feedback. Leider kann ich es nicht wirklich deuten. Es gibt bestimmt einige die mit Nextcloud Snap glücklich geworden sind.

Ich sollte vor ein paar Jahren jemanden mit einer Nextcloud Snap Installation (Ubuntu-Server irgendwo im Büro) und einigen Dutzend produktiven Benutzern dabei unterstützen von einer Domain auf eine andere zu migrieren (schönerer Name). Bei meinen Installationen ist das nur ein Domaineintrag, ein Apache2-Eintrag, ein Lets Encrypt Zertifikat und die Erweiterung (zusätzlicher Name) in config/config.php. Das hätte ich riskiert. Aber einen Reverse Proxy vor einer produkten Nextcloud zu schalten nur um temporär zwei Domains zu ermöglichen … Sagen wir es so. Die Nextcloud ist bis heute nicht umgestellt und hat immer noch eine Subdomain eines DynDNS-Services obwohl es eine eigene Domain mit der Möglichkeit von Subdomains (CNAME) gibt.

deine Abneigung ist bestimmt “nur” persönlich… schlecht machen ist jedoch unnötig.

hat sich bestimmt einiges geändert und ist seither dokumentiert. vielleicht hilft managing encryption?

wir sind alle überzeugt von Nextcloud. es gibt viele möglichkeiten eine Nextcloud zu implementieren. die eine oder andere methode mag für den einen oder anderen nicht ideal sein, aber “jeder wie ers mog” und “wer ko der ko”.

1 Like

Das stimmt natürlich.

1 Like

Uff, verwirrt den armen @Sam00 doch nicht unnötig :smile:
Es funktioniert ja bereits, ausser auf den Apple Geräten.
Der Fehler liegt also dort und ich ignoriere mal Eure posts dazwischen.

Ich habe eine starke Vermutung.
Ist Apple relay aktiv?

Apple privacy relay kommt mit einem eignen DNS over HTTPs und ignoriert dein Pihole (und damit im übrigen auch dein Werbeblocker).

Du musst also entweder

  • privacy relay für dieses WLAN ausschalten, indem du “tracking der IP adresse” deaktivierst
  • Auf pihole den Apple relay sperren
2 Likes

du hast Recht… sorry

@Sam00 bitte entschuldige…

Seitdem ich Split-DNS eingerichtet und meine öffentliche IP auf IPv4-only über den Router umgestellt habe (ich habe DualStack, also sowohl IPv4 als auch IPv6), habe ich große Probleme, auf meine Domain zuzugreifen. Manchmal funktioniert es für etwa eine Minute, aber meistens erhalte ich dann “Host not found” und bekomme keine Ping-Antworten mehr.

Davor, als ich noch nicht an der Konfiguration herumgespielt hatte, hat es größtenteils funktioniert, auch wenn es hin und wieder Ausfälle gab. Ich habe inzwischen IPv6 wieder aktiviert und die Split-DNS-Konfiguration in Pi-hole zurückgesetzt, aber das Problem besteht weiterhin. Mittlerweile bin ich echt verzweifelt, weil ich schon seit einer gefühlten Ewigkeit mit Nextcloud kämpfe. Immer wieder gibt es Probleme, und mittlerweile ist es für mich praktisch unbrauchbar.

Ursprünglich hatte ich Nextcloud über LAMP eingerichtet, aber dort gab es so viele Fehler, die ich nicht beheben konnte. Deshalb bin ich zur Snap-Version von Nextcloud gewechselt, aber auch damit laufe ich ständig gegen neue Hindernisse.

Hat jemand vielleicht eine Idee, was ich falsch mache, oder kennt einen Leitfaden, wie ich die Konfiguration sauber hinbekomme? Ich wäre wirklich dankbar, wenn sich jemand die Zeit nehmen könnte, mir dabei zu helfen, das Ganze endlich stabil zum Laufen zu bringen.

@NaXal… any chance you can help here?

@Sam00
Den Mehrwert von IPv6 von außen sehe ich nicht. Aber immerhin hast du (hoffentlich) kein DS-Lite, dann könntest du den Zugriff von außen praktisch vollkommen vergessen. Z. B. Firmen nutzen oft Proxysysteme, die nur IPv4 können wodurch dein Server aus dem Internet für diese Anwender nicht mehr direkt erreichbar wäre.

Kannst du sagen, ob der Zugriff aus dem Internet problemlos funktioniert? Sowohl von irgendwelchen PCs (z. B. von Freunden), Android als auch von iOS-Geräten (Mobilfunk)? Natürlich kannst du auch einen WLAN-Hotspot im Mobilfunknetz aufspannen und es darüber versuchen (z. B. PC über Mobilfunk vom Smartphone falls du deine Freunde nicht auf einen Kaffee :coffee: besuchen willst).

Wenn das läuft, solltest du weiter suchen. Verzichte evtl. auch erst auf dein Pi-Hole und andere Spielereien. Löse erst mal deine Nextcloud-Probleme.

1 Like

Hello,

Pardon me, but I don’t understand the language so unfortunately, I am having difficulties in understanding the discussion here. I have tried to use Google Translate and this is what I figure the issue is,

OP runs Snap Nextcloud behind Nginx Proxy Manager
OP also have a Pi-Hole local DNS running.
OP wishes to ensure local resolving of the domain to snap nextcloud

and there is some problem with local resolving of the said domain.

Few things I would suggest to ensure proper connectivity within local LAN zone.

  1. Install the domain based SSL (3rd party) in Nextcloud Snap. This must be the same SSL certificate used in NginX Proxy Manager.
  2. Ensure Forced SSL (that is HTTP to HTTPS redirection) for Nextcloud Snap.
  3. Nginx Proxy Manager should be configured to access Snap Nextcloud via HTTPS and force SSL on that too.

Second thing, Mobile OS Clients may have an option to overwrite local DNS. OP must ensure the clients are using Pi-Hole and nothing else.

Now configure local resolving of domain.tld to local Nginx Proxy Manager access. Do not resolve local dns to Snap Nextcloud directly. Do not bypass the NginX Proxy Manager even in local resolving.

Just to ensure local resolving, make sure to setup a local host name for local LAN resolving in the router too…

Thanks.

1 Like

OP is having an issue with routing IPv6 and wanting to split DNS for internal IPv4 behind pihole… you were my “last straw” as you’re the IPv6 networking pro :+1:

thanks for reacting so soon… I know you’re busy and thanks for your support.

OP issue is not a snap issue, but rather a networking issue in connection with his IOS device… I’m guessing DNS rebind issues which is typical for IOS

1 Like

Hello,

That is a “route” related issue rather than DNS resolving problem.

If a client is shown domain.tld resolving to both v4 and v6 and both these are different destination, then it’s no longer the job of DNS resolving, rather, now it is about route selection. Unless a custom route is present in the getway (router), clients are free to choose and make their own decision.

As per my understanding and experience, 99% of the time, clients will choose the v6 over v4.

Thanks.

1 Like

Momentan habe ich das Problem, dass ich Nextcloud quasi gar nicht mehr nutzen kann, da ich nur sehr sporadisch auf meine Domain zugreifen kann. Auf die lokale IP-Adresse kann ich problemlos zugreifen, aber der Zugriff über die Domain ist reine Glückssache. Meistens funktioniert der Zugriff nicht, und wenn er einmal funktioniert, dann höchstens für eine Minute, bevor die Verbindung wieder abbricht.

Bevor ich an den Einstellungen herumgespielt habe, hat es größtenteils funktioniert, nur selten, etwa drei- bis fünfmal am Tag, gab es Ausfälle (vor dem Split DNS Einstellung am Pi hole). Jetzt aber ist es so, dass in 95% der Fälle die Domain nicht mehr erreichbar ist. Komisch denn ich habe nun alles wieder rückgängig gemacht und trotzdem nur sehr selten Zugriff.

Ich habe Split-DNS deaktiviert und die ursprünglichen Router-Einstellungen wiederhergestellt, sodass sowohl IPv4 als auch IPv6 unterstützt werden (hatten das ja wie oben beschrieben nur auf IPv4 umgestellt für die Split-DNS), aber das Problem bleibt bestehen. Ich verstehe nicht, warum, denn ich habe im Nginx Proxy Manager keine Änderungen vorgenommen, sondern nur an den Router-Einstellungen.

Es macht keinen unterschied ob ich in einem fremden WLAN bin oder welches Gerät ich nutze. Es ist immer gleich sporadisch nutzbar. Nur lokal über die ip funktioniert zuverlässig, aber halt nicht die globale Domain.

English Version: At the moment, I am facing the problem that I can hardly use Nextcloud at all, as I can only sporadically access my domain. I can easily access the local IP address, but accessing the domain is a matter of luck. Most of the time, the domain doesn’t work, and if it does, it only works for about a minute before the connection drops again.

Before I changed any settings, it was mostly working, with only rare outages, around three to five times a day. Now, however, the domain is unreachable 95% of the time.

I have disabled Split-DNS and restored the original router settings to support both IPv4 and IPv6, but the problem persists. I don’t understand why, as I haven’t changed anything in the Nginx Proxy Manager, only in the router settings.

Du schreibst nicht, wo du aktuell stecken bleibst, darum ist es schwierig dir einen Tipp zu geben. Ich kann dir nur meine Installationsanleitung empfehlen.
Anleitung

Bitte beachte auch die Netzwerkanforderungen und das Vermeiden von CG-NAT:
CG-NAT

Das ist schon mal nicht gut, da ein Config Fehler vorliegt.
Bitte beachte auch, dass gerade consumer router sehr häufig total verbuggte Firmwares haben können und mit NAT Probleme haben.

Für das weitere vorgehen würde ich vorschlagen du gehst wie folgt vor:

  • Check ob du CG-NAT hast
  • Gehs langsam an, Schritt für Schritt. Erstmal nur IPv4.
  • Erstelle ein kleiner Netzwerkplan (und post ihn hier zur Kontrolle)
  • Installiere Nextcloud neu oder mach die Netzwerk Einstellungen neu. Mit trusted proxies usw, alles sauber nach Netzwerkplan.