DNS Server um NatLoopback-unfähigen Router zu umgehen

bassist004

Enthusiast
Thread Starter
Mitglied seit
03.01.2011
Beiträge
24
Hallihallohallöchen,

ich habe ein Problem mit meinem Raspberry Pi. Genauer gesagt ist es ein Problem mit meinem Router. Dieser unterstützt kein Nat-Loopback...aber der Reihe nach...

Auf meinem Pi habe ich SeaFile installiert (Eine Cloud-Software). Da ich auf meine Daten natürlich auch von außen zugreifen möchte, musste eine DynDNS her. --> meinSeafile.no-ip.com (natürlich nicht so aber ähnlich ;) ).
Lokal kann ich diese Adresse leider nicht erreichen, da der Router (Speedport W 723 V ....grausames Teil) den Weg zurück ins eigene Netz nicht finden möchte.

Lösungsansätze habe ich einige im Netz gefunden. Zum Beispiel die Host Datei an meinem Windows Rechner zu ändern, sodass die dynDNS Adresse auf die lokale IP verweißt. Dies ist leider in meinem Fall eher unpraktisch. Bei meinem Windows Rechner handelt es sich um ein Laptop der natürlich auch außerhalb des lokalen Netzwerks an die Daten kommen soll...

Die für mich auf den ersten Blick elegantere Lösung war, auf meinem Pi einen DNS Server zu installieren der die dynDNS im lokalen Netz auf die lokale IP übersetzen kann.
Da ich die Idee ganz spannend fand auch gleich ein bisschen DNS-Caching zu betreiben befolgte ich zunächst die Anleitung dieses Videos: https://www.youtube.com/watch?v=rNxNazXe_QM
Die verwendeten Befehle sind auch hier zu finden: https://www.sempervideo.de/pi-dns.txt

Alles in allem habe ich also bind9 installiert.

Das Caching funktioniert auch soweit...nur stell ich mich zu unclever an jetzt das eigentlich Ziel zu erreichen.
Wie also kann ich erreichen das mein Laptop (sowohl im lokalen Netz als auch von außerhalb) unter dem Aufruf von "meinSeafile.no-ip.com" die IP des Pi findet.


(Da das Notebook lokal per LAN betrieben wird ist die Angabe des DNS - Server kein Problem)


Vielen Dank fürs Lesen und gegebenenfalls helfen ;)
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Du musst deinem lokalen DNS Server nun einfach beibringen, dass er auf Anfragen nach "A? meinSeafile.no-ip.com" (A Records für diese Domain) mit der lokalen IP antwortet und diese nicht erst extern auflöst.

Das scheint mit bind allerdings nur bedingt möglich zu sein, hier hat es jemand mit einem eigenen Zonefile für die Subdomain versucht: domain name system - Overriding some DNS entries in BIND for internal networks - Server Fault

Alternativ würde ich dir (wie auch im Link) Unbound als DNS-Resolver empfehlen, der bietet direkt einfache Optionen für solche Split-DNS Geschichten.


:wink:
 
Hallo,
vielen Dank für die Antwort und sorry das ich so lange auf eine Antwort habe warten lassen.
Ich habe deinen Rat befolgt und bind runtergeschmissen (vllt ganz gut nachdem ich über einige Sicherheitslücken gelesen haben) und unbound installiert. Ich habe mich nicht mit allen Konfigurationsmöglichkeiten beschäftigt ... es sind einfach auf den ersten Blick viele. Durch ein Tutorial (https://calomel.org/unbound_dns.html) und ziemlich wahrscheinlich zu wenig Gehirnanstrengungen meinerseits bin ich zur angehangen Config gekommen. Diese funktioniert theoretisch. Jedoch nicht so wie ich möchte und ich weiß nicht genau an welcher Stellschraube ich ansetzen muss. Will ja auch nicht alles ausprobieren und wenn es dann funktioniert, keine Ahnung haben wieso...

Das Configfile: Anhang anzeigen unbound_conf.txt

Bei einem lokalen nslookup (also auf dem Pi) funktioniert alles wie gewünscht. Auch die Domain für Seafile verweißt auf die lokale Addresse.
Leider wird der Server von meinem Windows gar nicht benutzt. Er benutzt weiterhin den Router.

Das scheint daran zu liegen, dass die IPv6 (default) Einstellungen unter Windows (diese habe ich nicht angerührt) verwendet werden. In den IPv4 Einstellungen ist der Pi als DNS Server eingetragen.
Ein simples Deaktivieren (heißt Häckchen weg nehmen) führt zu keinem Ergebniss. Es wird gar nichts mehr gefunden.

Im lokalen Netz ergeben sich IP's 192.168.2.x. Muss das im Config Script irgendwo berücksichtigt werden?
Oder muss ich IPv6 in der Unbound Configuration aktivieren? und worauf muss ich dabei achten? Dann muss ich mit Sicherheit auch die Ipv6 Adresse des Pi als DNS Server unter Windows eintragen ... richtig?

Vielen Dank für die Hilfe!

der bassist
 

Anhänge

  • unbound_conf.txt
    10,6 KB · Aufrufe: 77
Zuletzt bearbeitet:
Wie du richtig vermutet hast, würde ich mal versuchen IPv6 im unbound aktivieren und die IPv6 Adresse in Windows als DNS Server konfigurieren.

Eventuell zusätzlich zu dem IPv4 A Record für die lokale Adresse auch noch einen IPv6 AAAA Record auf die link-local Adresse (fe80:...) des Zielrechners setzen. Wenn dein OS dann als erstes einen AAAA Lookup versucht, wird der direkt beantwortet und es muss kein Fallback auf IPv4 erfolgen. Dieser Schritt ist aber optional.
 
Ok ich habe den Eintrag zu ipv6 in der Unbound Config geändert!

do-ip6: yes

Außerdem musste ich ipv6 für den Pi aktivieren...

Dann noch unter Windows den Eintrag gesetzt und siehe da....es geht leider noch nicht.

C:\Users\icke>nslookup www.google.de
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 2003:88:6b42:ff01:1014:3833:3ca5:9b61

DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Zeitüberschreitung bei Anforderung an UnKnown.

Lasse ich jedoch den ipv6 DNS wieder automatisch beziehen funktioniert die Anfrage wieder...

C:\Users\icke>nslookup www.google.de
Server: speedport.ip
Address: fe80::1

Nicht autorisierende Antwort:
Name: www.google.de
Addresses: 2a00:1450:4001:80a::101f
173.194.113.88
173.194.113.79
173.194.113.95
173.194.113.87


Habe derzeit deinen zweiten (Performance)Tipp noch nicht angewendet. Trotzdem danke schonmal dafür!
Hast du vllt noch ne Idee was ich jetzt noch falsch mache?
 
Zuletzt bearbeitet:
Hast du den DNS in Windows manuell konfiguriert ? Ich würde mal IPV6 ausmachen, und IPV4 mit der Hand konfigurieren. Der DNS zeigt dann auf die Raspberry IP.
 
Ja...die IPv4 ist unter Windows manuell eingestellt (Den DNS-Server (Pi) mit inbegriffen). Bei der Deaktivierung von IPv6 entstand das gleich Ergebniss wie im letzten meiner Posts, nur das als Addresse eine IPv4 Addresse da stand. Das müsste doch bedeuten das der Unbound Server falsch konfiguriert sein müsste oder?
 
ja

Du kannst auch mit Tools wie 'nslookup' oder 'dig' eine DNS-Server Adresse angeben um damit gezielt den Unbound auf dem RasPi abzufragen, unabhängig davon, was in den normalen OS Netzwerk-Settings eingestellt ist.
 
Zuletzt bearbeitet:
Ok...ich habe das Problem gelöst. Die Einstellungen unter Windows haben keine Probleme gemacht.

Ich habe einfach nur Copy-Paste (Asche auf mein Haupt) Fehler in der Unbound Config gemacht.

Genauer gesagt waren die Angaben zu interface und access-control fehlerhaft.

Im Interface muss natürlich die Addresse der Netzwerkkarte des PIs eingestellt werden. Im access-control muss natürlich der zuzulassende Addressbereich korrekt eingestellt werden.

Um das ganze im heimischen WLAN anzuwenden stoße ich allerdings wieder auf die Grenzen meines Routers...denn es ist nicht möglich im Router einen DNS-Server anzugeben...

Aber vielen Dank für die Hilfe!!!
 
Eventuell kannst du ja DHCP im Router deaktivieren und einen DCHP Server auf deinem RasPi installieren. Dann kannst du auch wieder ganz genau einstellen, welche DNS Server Adressen verteilt werden.
 
Scheint wohl die einzige Lösung zu sein. War gerade ein bisschen schockiert, als sich nach kurzer Suche bestätigte, dass der Speedport W723V diese absolute Basisfunktion nicht unterstützt.
 
Das ist keine Basis Funktion. Die Telekom Schlitten sind wie Vodafone Schlitten sehr in der Funktion eingeschränkt.
 
Das klingt doch alles sehr abenteuerlich, was du da vor hast...

Vielleicht ließt du dich einfach mal in die Grundlagen etwas ein ;) Dann wird das auch vom Verständnis her etwas besser.

Mal als kleine Hilfestellung meinerseits:
- brauchst du IPv6? Wenn ja, dann sollte das mit berücksichtigt werden, wenn nein -> ausschalten am Speedport, denn das spuckt dir durch die Autokonfig in die Suppe und du kannst das auf dem Speedport womöglich gar nicht deaktivieren! Vor allem, wenn du Adressen automatisch beziehst.
- woher holt der lokale DNS Server auf dem Pi seine DNS Infos? -> hier solltest du dich für einen Weg entscheiden. Entweder ALLE Clients fragen den Pi an, oder alle Clients fragen den Speedport an. Sinnvollerweise sollte man, wenn man schon den Aufwand betreibt, den Pi dafür nutzen... Bei aktivem IPv6 sollte das natürlich ebenso im gleichen Maße funktionieren! -> wenn du das nicht brauchst, wie gesagt, ausschalten!
- was versprichst du dir von der Konfig überhaupt? Wenn mich nicht alles täuscht, kann man auch auf dem Speedport lokale "DNS" Namen auf interne IPs verdrahten... Ob das auch mit public Namen geht, weis ich allerdings nicht. DU könntest aber einfach des Konfigurationsaufwandes geschuldet intern auf eine IP und extern auf deinen DynDNS Namen gehen. Für den reinen Access sollte das weniger eine Rolle spielen.



Wichtig bei so einem Vorhaben ist eigentlich nur, dass du dem Speedport die Funktionen verbietest, die du auf dem Pi machen willst. Sprich wenn du DNS vom Pi holst, solltest du gleichsam auch DHCP auf den Pi legen, damit du eben in den DHCP Optionen den Pi als DNS Server mitgeben kannst (das kann nämlich der Speedport soweit ich weis nicht umbiegen!)
Der Pi kann ja dann einen globalen DNS Forwarder auf den Speedport eingetragen haben -> dann geht bspw. auch "speedport.ip" auf die IP des Speedports intern aufzulösen.
Alternativ kannst du natürlich diese Konfig einfach auf dem DNS Server des Pi anlegen und auf die IP des Speedports zeigen lassen. Technisch wäre sogar ein conditional Forwarder auf die Domain "speedport.ip" zum Speedport möglich und alle anderen Anfragen in Richtung Internet zu senden -> was potentiell den Charm hätte, dass du damit weg von den provider DNS Servern kommst, die oftmals irgendwelche Werbeseiten aufrufen, wenn du auf URLs gehst, die es nicht gibt.


PS: das gesagte von foxxx oben mit den Zonen ist eigentlich genau das richtige für das, was du machen willst. Bind ist auch nicht unsicher. ;) Es ist, wenn mich nicht alles täuscht, so ziemlich die weit verbreitetste DNS Server Lösung überhaupt. Der Konfigaufwand ist allerdings etwas höher bis man einmal verstanden hat, wie das Dingens tickt.
Eigentlich musst du nur auf dem DNS Server des Pi eine Zone anlegen, die "meinSeafile.no-ip.com" heist. Diese Zone bekommt einen "A" Eintrag ohne Namen mitgegeben. Das heist, wenn du direkt diese Zone aufrufst/ansprichst, wird genau dieser "A" Eintrag ohne Namen zurückgegeben. Bei Verwendung von IPv6 wird dazu noch ein AAAA Eintrag ohne Namen erzeugt -> damit du auch ne IPv6 Adresse auflösen kannst (sofern der Pi und deine Cloudsoftware darauf überhaupt hören!)
Das gleiche wäre mit speedport.ip als Zone möglich...

Du bist mit nem lokalen DNS Server völlig frei in der Konfig. Es wäre tendentiel auch ratsam, bei Umzug der DNS Settings vom Speedport zum Pi die DNS Namen der Clients mit zu pflegen. Das geht automatisch wie auch statisch. Je nach Vorliebe halt. Also wenn sich ein Client eine IP vom DHCP Server abholt, sollte entweder der DHCP Dienst den Namen des Clients im DNS registrieren oder der Client sollte seinen Namen selbst im DNS registrieren. -> sonst kannst du intern in deinem Netz keine DNS Auflösung mehr zwischen den PCs machen... Damit das allerdings geht, musst du natürlich noch eine DNS Zone für dich intern erzeugen ;) Prinzip ist identisch zu oben, nur eben, dass dort A oder AAAA Einträge mit den Gerätenamen erzeugt werden.

Angesprochen werden können diese Geräte dann unter "gerät1.zone.tld".
Achso und bevor ich es vergesse, wenn du nur auf "gerät1" gehst, dann ist das nicht unbedingt DNS ;) Gerade in der Windows Welt nicht! -> der Speedport fängt das für dich ab, weil er dir solche Anfragen beantwortet, sofern die Clients vom DHCP des Speedports ihre IPs haben bzw. er den Client kennt... Der DNS Server auf dem Pi wird das nicht primär machen. Womöglich spielt sogar ein Client bei dir im Netz einfach mit Netbios. :fresse:
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh