DNS Server, Resolver/Forwarder und andere Geschichten



  • Moin zusammen,

    @m0nji said in Hardcoded DNS in Apps und Endgeräten:

    Nun habe ich etwas gegooglet und dabei feststellen müssen, dass mittlerweile einige Apps (z.B. Chrome) oder auch einige Endgeräte (Nvidia Shield, Google Home Mini, Chromecast) teilweise Anfragen hart kodiert an die Google DNS Server schicken.

    also gut das du es erwähnst, sollte hier nun auch genauer auf meine AdsBLs hinsehen was da so freudig in die weite Welt hinaus schreit.

    Gibt es eigentlich eine "Empfehlung" für DNS Server, so etwas wie hier: https://wiki.ipfire.org/dns/public-servers oder hier https://servers.opennic.org ?
    Oder ist es jedem hier selbst überlassen den passenden Server für sich zu finden?

    VG, p54


  • Moderator

    @p54 Empfehlung nicht, denn jeder hat da andere Prioritäten.
    Manch einer mag persönlich Google nicht, England nicht, keine Ahnung wen nicht ;) und nutzt dann eben entsprechend andere Server. Der Punkt ist eigentlich dass man das für sein Szenario wählen sollte und natürlich nebenbei auch Server, die ne entsprechende Laufzeit haben, damit man nicht dasteht und DNS nicht geht.

    Zudem gibts dann ja per default auf der Sense den Resolver, der eh DNS selbst auflöst und die DNSe der Zieldomain selbst befragt. Insofern jedem das Seine :)



  • Hier ist für jeden was dabei. Nutze persönlich die von CCC und German Privacy Foundation e.V.😃


  • Moderator

    @mike69 OK die Liste ist jetzt aber mal kurz - und hat zudem die kommerziellen DNSe auch mit drin. Mein Problem mit solchen Listen sind die SLAs. Wie gut funktionieren die Kisten und wie ist die Erreichbarkeit.

    Da hilft übrigens sowas wie "namebench" um mal wirklich von diversen DNS Servern einen Benchmark zu machen, wie schnell die von eurer Location aus erreichbar sind. Mag ja sein, dass XY sagt, dass ABC schnell ist. Aber das muss bei euch nicht stimmen.

    Bei mir sind bspw. die Kisten von Cloudflare (1.1.1.1) ein wenig schneller als Google (8.8.8.8) und die wieder schneller als Quad9 bspw. - von kleineren Servern via OpenNIC und Co. ganz zu schweigen, die manchmal etliche ms langsamer antworten.
    Das wiederum spielt aber auch nur eine Geige, wenn man DNS via Forwarding nutzt, nicht via Resolver :)



  • @jegr

    Gebe Dir Recht. Da hilft nur probieren. War auch nur als kleine Auswahl gedacht
    OpenNIC wäre auch nicht mein erster und zweiter Favorit, ziehe deutsche oder europäische Server vor IMOO


  • Moderator

    @mike69 die müssen inzwischen nicht mehr deutsch oder europäisch per se sein ;) Außer es sind natürlich einzelne Kisten. Aber Anycast DNS Services wie Cloudflare und andere liefern die Requests auch geographisch nahe deiner Location an die entsprechende Kiste, ansonsten hätten alle die 8.8.8.8 eingetragen haben ja endlose Laufzeiten :)

    Daher auch der Hinweis, das ggf. einfach mal bei euch lokal zu messen :)



  • Danke für die Hintergrundinfos dazu!

    Nur leider kommen mir nun nach genauerem Hinsehen neue Fragen zum DNS-Server auf der PFSense auf.
    Ich hoffe es ist okay, wenn ich hier diese Fragen los lasse.

    Unter Einstellungsseite "System -> Settings -> General" findet sich unter den DNS Servern folgende Funktion:

    Allow DNS server list to be overridden by DHCP/PPP on WAN die per default aktiv ist, das bedeutet meinen DNS-Server, z.B. CCC mit 194.150.168.168 würde er im Fall, wenn meine Fritzbox andere Infos im DHCP-Setting hat, mit diesen dann eben ersetzen und meine Einstellung ignorieren. Habe ich das richtig verstanden?

    0_1528287632585_dns1.png

    Auch der Punkt: Disable DNS Forwarder erschließt sich mir ncoh nciht ganz.
    Hiese das, dass mein DNS Resolver nicht mehr laufen würde?

    Hier mal meine Resolver Settings:
    0_1528287807849_dns2.png

    Und die Option "DNS Query Forwarding" ist ja auch im default aktiv.
    Was genau ist nun mit dieser Option gemeint? Bedeutet das, der Resolver läuft mit dieser aktivierten Funktion ausschließlich als Forwarder und löst selbst keine DNS Anfragen mehr auf?
    Macht es dann irgendeinen anderen Unterschied (etvl. Performancegründe), weshalb ich den Forwarder und nicht den Resolver im Forwarder Modus nutzen sollte?

    Dies ist hier meine Testfirewall zuhause mit der ich gerade alles etwas durchteste und versuch zu verstehen. Vielleicht könnt ihr mir hier etwas Licht ins dunkele Ende durchreichen. 😏

    VG, p54


  • Moderator

    @p54 said in Hardcoded DNS in Apps und Endgeräten:

    Allow DNS server list to be overridden by DHCP/PPP on WAN die per default aktiv ist, das bedeutet meinen DNS-Server, z.B. CCC mit 194.150.168.168 würde er im Fall, wenn meine Fritzbox andere Infos im DHCP-Setting hat, mit diesen dann eben ersetzen und meine Einstellung ignorieren. Habe ich das richtig verstanden?

    Korrekt, das sagt die Einstellung aus. Wenn nichts anliegt, nutze die vorgegebenen DNS Server (damit nicht gar keine da sind), wenn dir DHCP was anderes pusht, nutze diese.

    Auch der Punkt: Disable DNS Forwarder erschließt sich mir ncoh nciht ganz.

    Den Punkt musst du in Gänze lesen. Er bezieht sich nur auf die pfSense selbst (/etc/resolv.conf). Es geht also nur um die lokale Namensauflösung der Sense und der Dienste darauf und ob diese die angegebenen DNS Server plus den DNS Resolver nutzen können (wobei m.W. der Resolver zuerst gefragt wird) oder eben nur die angegebenen DNS Server und der Resolver nur bei direkten Anfragen an ihn (von anderen Clients) genutzt wird.

    Hiese das, dass mein DNS Resolver nicht mehr laufen würde?

    Nein, das hieße ;) , dass der Resolver lokal nicht mit zur DNS Auflösung herangezogen wird. Ob der Dienst läuft und wer ihn benutzt, regelst du ganz normal über den Service, was du per DHCP an Clients rausgibst und was du intern in deinem Netz zulässt und konfigurierst.

    Und die Option “DNS Query Forwarding” ist ja auch im default aktiv.

    Sicher dass sie das ist? IMHO ist genau diese Option nicht per default aktiv, das würde den Sinn des Resolvers nämlich ad-absurdum führen. Der Resolver soll selbst DNS Einträge auflösen und dazu den Query nicht an Upstream Server weitergeben. Schaltet man Forwarding ein, dann wird der effektive Sinn des Resolvers unterlaufen und man nutzt nur noch einen DNS Forwarder der alles nach draußen schickt. Im Prinzip - wenn du nicht pfBlocker nutzen würdest - könntest du dann den Resolver auch ausmachen und den Forwarder (dnsmasq) anmachen, der den gleichen Zweck erfüllen würde.

    Macht es dann irgendeinen anderen Unterschied (etvl. Performancegründe), weshalb ich den Forwarder und nicht den Resolver im Forwarder Modus nutzen sollte?

    Völlig abhängig davon was du tun möchtest. Wenn du bspw. Anfragen per DNS-over-TLS auflösen möchtest, dann braucht man den Forwarding Mode und muss das "overTLS" entsprechend konfigurieren. Dann werden alle DNS Calls an Upstream Server verschlüsselt weitergereicht -> dort aber eben aufgelöst und zurückgeliefert. Vorteil: Jemand der zwischen dir und dem Ziel-DNS sitzt kann deine DNS Abfragen nicht mehr abschnorcheln. Nachteil: Du verlässt dich auf den Anbieter (klar), würde man dort schnüffeln wollen, könnte man die wieder ablesen.
    Resolving Vorteil: du verlässt dich nicht auf 2-4 DNS Server, sondern machst den Call zum Upstream (.de, .com, whatever) und lässt dir den SOA der Zieldomain geben. Nachteil: Die initiale Nachfrage dauert länger, weil du Upstream->SOA->Request durchgehst, dafür cached dann Unbound den Request so dass alles andere dann blitzschnell und ohne Transferzeit funktioniert. Sprich die Performance ist beim ersten Hit ein wenig langsamer, bei allen weiteren dafür schneller. Ich bin mir gerade nicht sicher ob Unbound im Forwarder Modus auch cached. Das ist denkbar. Nachteil dann beim Resolver: schnüffelt jemand an deinem Anschluß/deinen ISP ab, dann sieht er von deinem Anschluß eben die DNS Requests an Gott und die Welt. Dafür können zig DNS Server ausfallen, und es macht dir nichts aus, solang es nicht die primären Server der Domain sind, die du gerade auflösen willst ;)

    BTW: es ist heiß, wenn ich in der Hitze des Büros jetzt was verdreht hab, korrigiert mich :)



  • Hoffendlich hat @m0nji nichts dagegen, dass wir seinen Thread missbrauchen. :)

    Habe mal namebench durchlaufen lassen, Google ist 199% schneller als die sense. :) Wusste es schon immer.

    0_1528290751054_namebench: 2018-06-06 14:54:32.462952 - Mozilla Firefox_032.png
    0_1528290773558_namebench: 2018-06-06 14:54:32.462952 - Mozilla Firefox_035.png



  • Schade das der Thread jetzt etas für die unbound Konfiguration missbraucht wird.

    @JeGr kein Widerspruch
    Angeblich wird auch im Forwarding Modus gecached. Werde ich mal mit namebench gegenchecken.

    @p54
    Wenn es dir nur um Performance geht und du recht wenige Clients hast, nutze den DNS Service als Forwarder und trage 2-4 Server unter System -> General ein.
    Willst du die Kontrolle darüber behalten, wer deine Anfragen beantwortet und niemanden die Möglichkeit geben deine Anfragen auszuwerten oder sie zu manipulieren, nutze den DNS Service als Resolver.

    Meiner Meinung nach funktioniert der Resolver Modus noch nicht so ganz wie ich es mir wünschen würde.
    Man sollte selbst beim Resolver mittel "Prefetch Support" auch abgelaufene Cache Anfragen deutlich verkürzen können, da sie im Hintergrund von der pfSense erneut aufgerufen werden und damit im Cache gehalten werden. Allerdings funktioniert das in der aktuellen Version nicht sauber. Ebenfalls unschön ist, dass nach einem Router Neustart leider die Cache Tabelle wohl gelöscht wird. Nach einem Neustart und dem Namebench Test, ist meine pfSense wieder mit Abstand der langsamste DNS Server.



  • @mike69 mach den Test in 10min noch mal und morgen noch einmal. Du wirst sehen, dass dein Resolver irgendwann der schnellste ist, sobald der Cache gefüllt wird/ist.



  • @m0nji said in Hardcoded DNS in Apps und Endgeräten:

    Schade das der Thread jetzt etas für die unbound Konfiguration missbraucht wird.

    Dann bin ich mal raus. Danke für den Tip mit den zweiten Durchlauf.


  • Moderator

    @mike69 und als kurzen Tipp noch, testet mal nicht nur gegen 8.8.8.8, sondern nehmt mal spaßeshalber auch 9.9.9.9 und vor allem 1.1.1.1 mit rein. Wenn schon extern und so ;)


  • Moderator

    @mike69 said in Hardcoded DNS in Apps und Endgeräten:

    Dann bin ich mal raus. Danke für den Tip mit den zweiten Durchlauf.

    Warum denn raus? Ich splitte das Thema einfach auf, sind ja beide durchaus interessant und wichtig :)



  • @jegr said in DNS Server, Resolver/Forwarder und andere Geschichten:

    @mike69 und als kurzen Tipp noch, testet mal nicht nur gegen 8.8.8.8, sondern nehmt mal spaßeshalber auch 9.9.9.9 und vor allem 1.1.1.1 mit rein. Wenn schon extern und so ;)

    Sorry, muss mich nebenbei um den Garten kümmern. :)
    Kann ich tuten tun.
    Erstmal schauen, wo ich das ändern kann.



  • Hi,

    nach ein paar tests mit den namebench siehts soweit gut aus, aber nur wenn ich cloudflare nehmen möchte 🦆

    0_1528304735003_dns01.png

    @jegr said in DNS Server, Resolver/Forwarder und andere Geschichten:

    Warum denn raus? Ich splitte das Thema einfach auf, sind ja beide durchaus interessant und wichtig

    Sorry für meine Anfragen im falschen Thema. Aber ja, interessant auf jedenfall und da kann man sich schön spielen damit.
    Danke für eure Erklärung zu den anderen Unbound/ DNS Settings, jetzt wirds langsam wieder hell ;)



  • Abend zusammen,

    ich hätte noch eine Frage zum DNS Logging. In wie weit lässt PFSense das Logging für den DNS Server / Resolver zu?
    Ich stell mich nämlich gerade an, mir nur die DNS-Anfragen anzeigen zu lassen.

    Hab ihr ein paar Tipps dazu wie und wo ich hier am leichtesten suchen muss, auch gern im via terminal mit clog.
    Wahrscheinlich hier: /var/log/system.log mit nem grep -E “[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.53” sollte es wohl gehen.

    Evtl. probiere ich es morgen einfach mal aus was mir da zum Vorschein kommt. Aber auch hier würde ich mich sehr über input von euch freuen. :)

    Schönen Abend. p54



  • @p54
    Reicht dir das Logging im Webinterface nicht?
    0_1528323447339_9c221be0-0a17-469b-879e-04ec33b3cc8c-image.png

    Loglevel stellst du im DNS Resolver unter Advanced ein.



  • Hier ein Test im Resolver Modus kurz nach einem Neustart des Routers.
    0_1528323858587_e6e28606-78ab-460e-8b46-8e50ae3f8fe3-image.png

    Daran sieht man schön, wenn der Cache voll läuft, ist der Resolver irgendwann der Schnellste.



  • Morgen,

    @m0nji said in DNS Server, Resolver/Forwarder und andere Geschichten:

    Loglevel stellst du im DNS Resolver unter Advanced ein.

    ja da war es auch. Na den Punkt hatte ich nicht gleich gesehen. Danke!

    VG, p54



  • Seltsam. bei 10 Durchläufen liege ich zwischen 50% und 150%. zur Nummer eins reicht es nicht.

    0_1528381703100_namebench: 2018-06-07 16:25:28.113659 - Mozilla Firefox_038.png

    Info an @JeGr cloudflare dominiert. 👍


  • Moderator

    @mike69 said in DNS Server, Resolver/Forwarder und andere Geschichten:

    Info an @JeGr cloudflare dominiert.

    Nunja ich will da keine Werbung machen - auch wenns ein gratis Dienst ist - aber von allen größeren kostenlosen Anbietern hat Cloudflare 2 essentielle Vorteile. Zum einen haben sie durch ihr eigenes Geschäftsfeld schon ein riesiges CDN, so dass einen Anycast DNS anzubieten ein Klacks ist (zudem machen Sie das ja für Kunden eh schon ;) ). Zum Anderen - wie es der CEO so schön sagt - sind Kundendaten für CF eher "toxisch" als "nützlich". Sie nutzen da per se schon recht wenig und lassen sich auch regelmäßig kontrollieren im Umgang damit und dass sie nichts länger speichern als es sein muss. Wenns also einen Anbieter gerade gibt, den man statt des Resolvers nutzt, dann von der Logik her einen, der die Daten nicht "haben" will, und da hat CF IMHO einen recht guten Stand.



  • sein screenshot verrät aber eigentlich, dass er im forwarding modus arbeitet. sonst wären da wohl nicht 2 replicas zu sehen.

    was nun wieder die frage stellt, wie gut ist der cache im forwarding modus, wenn man nach 10 versuchen immer noch nicht der schnellste ist.



  • Guten Abend,

    @m0nji said in DNS Server, Resolver/Forwarder und andere Geschichten:

    sonst wären da wohl nicht 2 replicas zu sehen.
    was nun wieder die frage stellt, wie gut ist der cache im forwarding modus, wenn man nach 10 versuchen immer noch nicht der schnellste ist.

    bin ich wohl auch, da diese Replicas zu sehen sind. Jedoch habe ich nur 5 x den Test gemacht bis ich der schnellste war.

    Aber wenn bei ihm 1.1.1.1 mit 45 ms angezeigt wird, kann es denn nicht an der Anbindung oder Cache auf der HDD liegen, evtl weil defekte Speicherbereiche vorhanden sind, oder woran errechnet sich die Leistung?

    Was bedeutet da jetzt eigentlich dieses Replica?

    VG, p54



  • Moin.

    @m0nji said in DNS Server, Resolver/Forwarder und andere Geschichten:

    sein screenshot verrät aber eigentlich, dass er im forwarding modus arbeitet. sonst wären da wohl nicht 2 replicas zu sehen.

    was nun wieder die frage stellt, wie gut ist der cache im forwarding modus, wenn man nach 10 versuchen immer noch nicht der schnellste ist.

    Eigendlich nicht.
    0_1528441797754_pfSense.home - Services: DNS Resolver: General Settings - Mozilla Firefox_039.png

    /tmp und /var laufen übrigens im RAM



  • @mike69
    Sorry laut deinem Bild hat ja UltraDNS 2 Replicas und nicht dein DNS Server. Vergiss was ich gesagt habe bzgl. der Replicas ;)

    Interessant, dass /var im RAM liegt. Wenn man jetzt wüsste, ob der Cache im /var oder /tmp liegt, erklärt das natürlich warum der Cache nach einem Neustart gelöscht ist. Anschließend wäre es natürlich sinnvoll, den Cache in eine permanente Partition schreiben zu lassen. Aufgrund von diversen Tests und pfBlockerNG Problemen, kommt es leider aktuell immer mal wieder vor, dass ich die pfSense neustarte.

    EDIT:
    Eben gesehen, dass man die RAMDisk manuell aktivieren muss, was ich gar nicht getan habe.



  • Der Cache von Unbound liegt immer im RAM, ein schreiben auf ein Speichermedium ist nicht vorgesehen. Deswegen ist er ja auch leer wenn man Unbound neu startet.



  • @m0nji said in DNS Server, Resolver/Forwarder und andere Geschichten:

    EDIT:
    Eben gesehen, dass man die RAMDisk manuell aktivieren muss, was ich gar nicht getan habe.

    Finde, es macht Sinn um die SSD oder Speicherkarte zu schonen. Habe /var 256 MB gegönnt, viel Platz für Logs und caching.



  • @grimson said in DNS Server, Resolver/Forwarder und andere Geschichten:

    Der Cache von Unbound liegt immer im RAM, ein schreiben auf ein Speichermedium ist nicht vorgesehen. Deswegen ist er ja auch leer wenn man Unbound neu startet.

    Und wieder was dazu gelernt. Danke für die Info.



  • @grimson said in DNS Server, Resolver/Forwarder und andere Geschichten:

    Der Cache von Unbound liegt immer im RAM, ein schreiben auf ein Speichermedium ist nicht vorgesehen. Deswegen ist er ja auch leer wenn man Unbound neu startet.

    ist das irgendwo dokumentiert? so richtig sinnvoll finde ich das nicht. der aufbau vom cache ist nicht mal schnell gemacht. da kommt man schon fast ins grübeln, dns wieder auszulagern.




  • Moderator

    @m0nji said in DNS Server, Resolver/Forwarder und andere Geschichten:

    ist das irgendwo dokumentiert? so richtig sinnvoll finde ich das nicht. der aufbau vom cache ist nicht mal schnell gemacht. da kommt man schon fast ins grübeln, dns wieder auszulagern.

    Warum sollte das "unsinnvoll" sein? Cache ist Cache, per Definition flüchtig. Jeder DNS Server, der mir bislang über die Füße gefallen ist arbeitet so. Egal ob das BIND, PowerDNS oder sonstwas ist, die Resolver Parts davon cachen natürlich, aber nach einem Neustart wird der zurückgesetzt. Ist ja auch durchaus sinnvoll um Dinge wie cache poisoning oder andere Geschichten schnell loszuwerden. Ja dafür könnte man einen cache purge schreiben, aber SO langsam ist eine normale DNS Anfrage nun auch nicht, und danach geht wieder alles in den Cache (solang die Laufzeit nicht abgelaufen ist). Die Einträge sind also eh nicht für die Ewigkeit bestimmt - DNS selbst erzwingt ja auch nach Zonen-definierter Zeit wieder ein Reload.



  • @jegr dann formuliere ich um: für mich ist es nicht sonderlich sinnvoll, wenn ich aktuell die pfsense öfters neustarte. Durch den Prefetch Support ist es halt auch sinnvoll, wenn der Cache nach einem Neustart erhalten bleibt, da die pfsense selbstständig die TTL verlängert vor Ablauf. Das ist besonders bei kleinen Umgebungen in der Theorie sinnvoll.