DNS Resolver vs. DNS Forwarder

Started by guest15032, March 19, 2017, 11:10:43 AM

Previous topic - Next topic
Hi zusammen,

ich mache das Thema hier neu auf, da sich das aus meinem anderen Thread hier ergibt (https://forum.opnsense.org/index.php?topic=4707.15).

@fabian hatte sich schon Mühe gegeben, mir das Thema näher zu bringen.

Nachdem ich nun etwas länger recherchiert habe und dabei u.A. auch auf Beiträge und Dokus von pfSense gestoßen bin, verstehe ich den Unterscheid zwischen DNS Resolver und Forwarder momentan so (wohlgemerkt, alles im Rahmen der Funktionalität  in der Firewall):

Der DNS Forwarder leitet alle Anfragen an einen externen DNS Resolver weiter, der auf dem jeweiligen DNS Server des Anbieters läuft. Dabei werden immer die DNS Server genutzt, die ich in den Einstellungen unter System -> Settings -> General eingetragen habe.

Der DNS Resolver (unbound) ist demnach genau so ein Resolver, wie bei den großen Betreibern. Dabei löst der OPNsense Resolver die DNS Anfragen auf und hält diese in seinem Cache vor. Wenn ich also DNS Anfragen auslöse, werden diese erst mal von meinem DNS Resolver beantwortet.

Hier beginnen jetzt meine Verständnisschwierigkeiten, was die Funktionalitäten innerhalb der Firewall betrifft.

Also mal ganaz konkret:

1. Der Resolver besitzt die Option "DNS Query Forwarding", die aktiviert werden kann. dazu lautet der Hilfe Text:

Quote
The configured system nameservers will be used to forward queries to.

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?  Das macht für mich aber wenig Sinn, da der Resolver doch so oder so auch als Forwarder fungieren muss. Wenn es z.B. keinen Eintrag im Cache des Resolvers gibt, dann muss dieser die Anfrage doch unweigerlich weiter leiten an einen der DNS Server aus meinen Firewall Einstellungen, oder?

Dazu heißt es im Erklärungstext des Resolvers:

Quote
If Forwarding, is enabled, the DNS Resolver will use the DNS servers entered in System: General setup or those obtained via DHCP or PPP on WAN if the "Allow DNS server list to be overridden by DHCP/PPP on WAN" is checked.

Also, was genau tut diese Funktion? Und welche DNS Server werden denn genutzt, wenn ich das Forwarding des Resolvers nicht aktiviert habe?  ???


2. Auf der genannten Einstellungsseite "System -> Settings -> General" findet sich unter den DNS Servern folgende Funktion:

Allow DNS server list to be overridden by DHCP/PPP on WAN

Beschreibend steht dazu:

Quote
If this option is set, DNS servers assigned by a DHCP/PPP server on WAN will be used for its own purposes (including the DNS forwarder). However, they will not be assigned to DHCP and PPTP VPN clients.

Bedeutet das nun, dass meine eingetragenen DNS Server in OPNsense nicht genutzt werden? Oder genauer gesagt: Bedeutet diese Funktion, dass z.B. mein Provider meine lokalen DNS Einstellungen an der Firewall überschreiben kann, weil er damit z.B. seine eigenen DNS Server verwenden kann? Falls ja, müsste ich dann folglich diese Funktion deaktivieren, um meine selbst eingetragenen DNS Server zu nutzen, richtig?

3. Unter den DNS Servern heisst es im Hilfe Text:

Quote
Enter IP addresses to be used by the system for DNS resolution. These are also used for the DHCP service, DNS forwarder and for PPTP VPN clients.

Ist daraus zu entnehmen, dass der DNS Resolver meine eingetragenen DNS Server per default nicht verwendet? Und bezieht sich das somit wieder auf Punkt 1.? Wann verwendet der Resolver dann meine DNS Server?

Letzter Punkt:

4. Wie sieht denn die Reihenfolge der verwendeten DNS Server genau aus?

Mein jeweiliger Client fragt beim Resolver an. Das ist logisch.

Und wie gehts dann weiter, von der Firewall aus?

Der Resolver nutzt dann also:

1. 127.0.0.1
2. .....
3. .....
4. .....

Alles nach Punkt 1. sind dann die eingetragenen DNS Server in den Settings? 

Danke für eure Hilfe.

Gruß
Chris

Hi Chris,

1. Aus der Unbound Doku zum Setting:

There may be multiple forward-zone: clauses. Each with a name: and zero
or  more  hostnames or IP addresses.  For the forward zone this list of
nameservers is used to forward the queries to. The  servers  listed  as
forward-host:  and  forward-addr:  have to handle further recursion for
the query.  Thus, those servers are  not  authority  servers,  but  are
(just  like unbound is) recursive servers too; unbound does not perform
recursion itself for the forward zone, it lets the remote server do it.
Class  IN  is  assumed.   A forward-zone entry with name "." and a for-
ward-addr target will forward all queries to that other server  (unless
it can answer from the cache)
.

Also ja: der Resolver wird zum Forwarder. Bedient aber aus seinem Cache sofern möglich.

2. Ja. Wird DHCP oder PPPoE auf dem WAN verwendet kann dies automatisch DNS Server propagieren. Werden diese Übergeben, so werden die manuellen Server ignoriert. Daher die Einstellung um beides gezielt möglich zu machen.

3. Der DNS Resolver nutzt die Root-Server, sofern er nicht im Forward-Modus ist. ;)

Mehr Lesestoff hier: https://calomel.org/unbound_dns.html


Grüsse
Franco

March 20, 2017, 03:02:44 PM #2 Last Edit: March 20, 2017, 03:05:27 PM by Oxygen61
hey hey,

ich werf mich mal dazwischen, weil ich das Thema (forwarder vs resolver) auch sehr fraglich finde
(Schönes Topic btw!) :)

Quote
Also ja: der Resolver wird zum Forwarder. Bedient aber aus seinem Cache sofern möglich.
Das klingt für mich als jemanden, der für sein Captive Portal den DNS forwarder der OPNsense im Einsatz hat so, als ob der Unbound DNS Resolver der OPNsense der verbesserte "DNS forwarder" der OPNsense ist und ich somit veraltete Technik anwende. Bei Unbound hatte ich auch etwas von DNSsec gelesen, was der DNS-Forwarder der OPNsense z.B. nicht bereitstellt.

Ich werf hier an der Stelle auch mal die pfSense Doku in den Thread in der geschrieben steht:
Quote
On pfSense 2.2, The DNS Forwarder is not active by default. It has been replaced by Unbound as a DNS Resolver. It may still be used, and is still active on upgraded configurations. To use the DNS Forwarder (dnsmasq) on 2.2, first disable Unbound and then enable the DNS Forwarder.
"replaced" deute ich stark als "forwarder -> alt" "resolver/unbound -> neu".
Vielleicht übersehe ich aber auch etwas grundlegendes. Ich werde mir mal den Link zum nachlesen anschauen. :)

Schöne Grüße
Oxy

Hi franco,

Quote
Also ja: der Resolver wird zum Forwarder. Bedient aber aus seinem Cache sofern möglich.

Ok. Wenn das eindeutig ist, dann muss ich mal ganz direkt fragen: Wozu dann noch der Forwarder als separates Modul? Ich kann mir geraden nur vorstellen, dass es aus Legacy Gründen vorerst verbleibt, weil sich viele User daran gewöhnt haben und auch nicht zur Umstellung gezwungen werden sollen?

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

Hier dann noch der Übergang zu dem, was Oxy geschrieben hat: Ich hatte die Stelle in der pfSense Doku auch gefunden und mir die selben Fragen gestellt.

Ich sehe, mit meinem bisherigen Verständnis, den Resolver als die bessere Lösung an, da ich hier den DNS Cache bei mir auf meiner Firewall habe und, wie Oxy auch sagte, DNSSEC unterstützt wird.

Irgendwelche Meinungen dazu?  :D

Quote
2. Ja. Wird DHCP oder PPPoE auf dem WAN verwendet kann dies automatisch DNS Server propagieren. Werden diese Übergeben, so werden die manuellen Server ignoriert. Daher die Einstellung um beides gezielt möglich zu machen.

Ok. Also will ich, dass meine eingetragenen DNS Server genutzt werden, deaktiviere ich das Häkchen für die Funktion. Richtig? ;)

Quote
3. Der DNS Resolver nutzt die Root-Server, sofern er nicht im Forward-Modus ist.

Hier noch mal ein Edit, ich hab grade gemerkt, dass ich es doch noch nicht verstanden habe: Was genau meinst Du mit "die Root-Server" ? Sprichst Du von "anderen" Servern als denen, die ich eingetragen habe? Denn da ist ja wieder der Punkt, dass der Resolver ja egal in welchem Modus er läuft, die DNS Server nutzen soll, die ich ihm vorgegeben habe. Oder verstehe ich das gerade grundlegend falsch?

Gruß
Chris

Hey ihr beiden,

Die kurze Antwort: historisch bedingt. :D

OPNsense wurde ein paar Monate vor dem pfSense 2.2 Release geforkt. Der DNS Resolver war ein Package bis 2.1, wurde dann aber für 2.2 eingebaut. Leider war der Einbau zumindest zum Zeitpunkt unseres Forks nicht qualitativ hochwertig genug um ihn zum Standard zu machen.

Jetzt ca. 2 Jahre später ist das Feature-Set beider DNS Dienste gut angeglichen und sauber integriert. Potentiell können beide Dienste zu Plugins gemacht werden und aus der Basisinstallation entfernt werden.

Unbound wurde populär, weil es als BSD Projekt Bind's Security Probleme lösen konnte, z.B. haben FreeBSD und OpenBSD auf Unbound gewechselt. Das wollte pfSense vermutlich damals auch machen. Letztlich sind aber sowohl Dnsmasq als auch Unbound zuverlässig und werden stetig gepatcht. Für kleine Anwendungen reicht Dnsmasq auch völlig aus. Deswegen haben wir es nicht geändert.

Wir könnten Unbound zum Default machen (vermutlich eher als Forwarder) und Dnsmasq entfernen. Die große Preisefrage ist aber: was bringt uns das.

Ich weiß es nicht. Was denkt ihr?


Grüsse
Franco

Hi franco,

Quote
Unbound wurde populär, weil es als BSD Projekt Bind's Security Probleme lösen konnte, z.B. haben FreeBSD und OpenBSD auf Unbound gewechselt.

Ja, ist mir auch im Kopf so hängen geblieben aus den Dokus.

Quote
Wir könnten Unbound zum Default machen (vermutlich eher als Forwarder) und Dnsmasq entfernen. Die große Preisefrage ist aber: was bringt uns das.

Ich weiß es nicht. Was denkt ihr?

Na ja, der einfachste Grund, so blöd es auch klingen mag, wäre für mich, um einfach Verwirrung zu vermeiden. Wozu zwei gleiche Funktionen bereitstellen? Wenn der Resolver forwarden kann, dann sehe ich nicht so wirklich Gründe, die für den Verbleib des Forwarders (dnsmasq) sprechen.

Radikaler ausgedrückt: Wozu Altlasten mitschleppen? ;)

Technisch gesehen, würde ich das mit einbeziehen, was ich weiter oben geschrieben habe: DNSSEC Unterstützung sowie einen Cache, den man selbst "unter Kontrolle" hat.   Wobei ich hier nicht weiß, inwieweit sich der Cache des Forwarders vom Resolver unterscheidet. Der Resolver hat doch einen richtigen eigenen DNS Cache, während der Forwarder nur den Cache für die nächsten DNS Server bereit hält, oder?

Kannst Du zu Punkt 2. und Punkt 3., die ich noch in meiner letzten Antwort aufgeführt habe, was sagen? ;)
Würde da gern noch mehr Verständis haben für die technischen Vorgänge innerhalb von OPNsense.

Gruß
Chris

Hi Chris,

QuoteOk. Also will ich, dass meine eingetragenen DNS Server genutzt werden, deaktiviere ich das Häkchen für die Funktion. Richtig? ;)

Genau.

QuoteHier noch mal ein Edit, ich hab grade gemerkt, dass ich es doch noch nicht verstanden habe: Was genau meinst Du mit "die Root-Server" ? Sprichst Du von "anderen" Servern als denen, die ich eingetragen habe? Denn da ist ja wieder der Punkt, dass der Resolver ja egal in welchem Modus er läuft, die DNS Server nutzen soll, die ich ihm vorgegeben habe. Oder verstehe ich das gerade grundlegend falsch?

Es gibt eine fixe Liste von Root-Servern die vom DNS zur Auflösung benutzt werden: https://de.wikipedia.org/wiki/Root-Nameserver

Dazu hat jeder Resolver eine Liste dieser IP Adressen. Du brauchst diese also nicht angeben.

QuoteNa ja, der einfachste Grund, so blöd es auch klingen mag, wäre für mich, um einfach Verwirrung zu vermeiden. Wozu zwei gleiche Funktionen bereitstellen? Wenn der Resolver forwarden kann, dann sehe ich nicht so wirklich Gründe, die für den Verbleib des Forwarders (dnsmasq) sprechen.

Stimmt schon, da gab es immer wieder Fragen.

Gut, dann mein Vorschlag für 17.7: Der DNS Forwarder wird als "os-dnsmasq" Plugin optional verfügbar und der Resolver wird als config.xml (Factory Reset) Standard im Forwarder-Modus angeboten? Dann kann man für 18.1 usw. immer noch an den Standardeinstellungen schrauben.

QuoteRadikaler ausgedrückt: Wozu Altlasten mitschleppen? ;)

Das sagt sich jetzt so einfach. In den letzten 2 Jahren wurden tausende von Zeilen DNS Forwarder/Resolver Code überarbeitet nur damit du das jetzt "so einfach" sagen kannst. ;)

Ich muss das noch intern absprechen ob okay. Und ein wenig mehr Arbeit wird es wohl auch. Ich denke das ist doch der Hauptgrund: einer muss die Arbeit machen am Ende des Tages...


Grüsse
Franco

March 20, 2017, 07:59:12 PM #7 Last Edit: March 20, 2017, 08:05:22 PM by Oxygen61
Quote
Gut, dann mein Vorschlag für 17.7: Der DNS Forwarder wird als "os-dnsmasq" Plugin optional verfügbar und der Resolver wird als config.xml (Factory Reset) Standard im Forwarder-Modus angeboten? Dann kann man für 18.1 usw. immer noch an den Standardeinstellungen schrauben.
Thumbs up! Find ich auch echt gut die Art wie ihr "alte Dienste" durch neue ersetzt durch die Umsetzung von Plugins. So kann man das Feature immer noch anbieten, zeigt der Community aber wo die Reise hingehen soll.
In meinem Fall kann ich also auf der faulen Haut liegen bleiben. Perfekt!  ;D

Quote
Ich muss das noch intern absprechen ob okay. Und ein wenig mehr Arbeit wird es wohl auch. Ich denke das ist doch der Hauptgrund: einer muss die Arbeit machen am Ende des Tages...
Muss ja nicht sofort sein, das hatte ja keiner gesagt.
Über die Zeit sollte man aber die "Ablösung" in Erwägung ziehen und darauf hin arbeiten.
Ich würd das auf keinen Fall als Prio. 1 ansehen, weil beide Features funktionieren und gepatched werden.
Für ver. 18.x könnte man es ja auf die Roadmap packen, wie du es schon gesagt hattest - Resolver im Forward Modus als Default und den Dnsmasq Forwarder als Plugin bereitstellen.

Ihr packt das schon!  ;D


Moin,

Quote
Quote

    Ok. Also will ich, dass meine eingetragenen DNS Server genutzt werden, deaktiviere ich das Häkchen für die Funktion. Richtig? ;)


Genau.

Ok, Danke. :)

Quote
Es gibt eine fixe Liste von Root-Servern die vom DNS zur Auflösung benutzt werden: https://de.wikipedia.org/wiki/Root-Nameserver

Dazu hat jeder Resolver eine Liste dieser IP Adressen. Du brauchst diese also nicht angeben.

Hmm... also... Ja, die großen globalen Root Server kenne ich natürlich. Und mir ist auch verständlich. dass jeder Resolver diese Liste hinterlegt hat.

Aber dann bedeutet das doch folgendes:

Der Resolver nutzt nur dann die von mir hinterlegten DNS Server, wenn er selbst im Forwarder Modus läuft?

Wenn das so ist, dann frage ich mich gerade, welchen technischen Grund es dafür gibt? Oder noch einfacher gesagt: Warum kann/darf/soll der Resolver nicht die DNS Server nutzen, die ich eingetragen habe in den Systemeinstellungen? Die Aufgabe des Resolvers ist es doch, die angeforderten Einträge erst ein Mal selber aufzulösen. Wenn er das nicht kann, dann wendet er sich an den nächsten DNS Server. Und warum sollte das dann zwingend einer der großen Root DNS sein und nicht einer meiner "gewünschten" DNS Server?

Ok, da ich nun gerade noch mal genauer gesucht habe, während ich das hier schreibe, kann ich mir die Antwort schon selbst geben.

Hier https://calomel.org/unbound_dns.html steht es gut nachvollziehbar (ich kopiere nur die Passagen raus, die ich gerade ansprechen möchte):

Quote

  • Your client resolver sends a query, "What is the IP address of calomel.org ?" to a locally configured DNS server like Unbound.
  • Unbound DNS server looks up calomel.org in local tables (its cache) - not found if we have never asked for this hostname before.
  • Unbound DNS sends a query to one of the root-servers in its root.hints file.
  • The root-server replies with a referral to the TLD servers for ".org".
  • .....usw.

[ ..... ]

caching DNS server

Caching name servers, also called DNS caches, are often also resolving name servers as they perform every step necessary to answer any DNS query they receive. To do this the name server queries each authoritative name server in turn, starting from the DNS root zone.

[ ..... ]

validating DNS server

[ ..... ]

Paranoia in DNS security is also a reason you really need to have trust in any resolving caching server you do not control. We like to always have a DNS server under our control query the root servers and work their way down to the domain's authoritative server. This way we are sure of the setup as we are the administrators and we are confident in the DNS servers cached data due to the security design we have implemented. If you setup your DNS resolver to query the local ISP's dns cache you really, really need to trust their people and their setup is secure. From the view of an attacker, an ISP's dns cache is the perfect target. The attacker only needs to poison one dns server and all queries from all the users of that ISP go to the attackers compromised machines.

So, dann kommt hier ja nun fast eine grundlegend philosophische Entscheidung ins Spiel, da es zwei Möglichkeiten gibt (und was auch meine Frage von oben beantwortet):

Alternative A:  Ich vertraue ausschließlich auf das Design des Resolvers und nutze somit immer den Weg über die Root DNS Server (sofern mein Resolver den Eintrag nicht im Cache hat).

Alternative B: Ich nutze die DNS Server, die ich eingetragen habe und die ich somit vorgebe (Forwarder Modus).

Die Frage aller Fragen ist für mich also: Was davon ist ....


  • sinnvoller
  • besser
  • sicherer
  • performanter

??

Wenn man die Sicherheitsthematik betrachtet, die dort durch das Beispiel Cache Poisoning hervrogehoben wurde, dann bekommt auch der Punkt, mit der Option, dass man per DHCP oder PPPoE auf WAN alternative DNS Server zulässt, noch eine bedeutendere Gewichtung.

Quote
Gut, dann mein Vorschlag für 17.7: Der DNS Forwarder wird als "os-dnsmasq" Plugin optional verfügbar und der Resolver wird als config.xml (Factory Reset) Standard im Forwarder-Modus angeboten? Dann kann man für 18.1 usw. immer noch an den Standardeinstellungen schrauben.

Finde ich sehr gut. :)

Quote
Das sagt sich jetzt so einfach. In den letzten 2 Jahren wurden tausende von Zeilen DNS Forwarder/Resolver Code überarbeitet nur damit du das jetzt "so einfach" sagen kannst.

Das würde ich auch niemals in Frage stellen! ;) Mir ist bewusst, dass das nicht mal eben beim Nachmittagskaffee umprogrammiert wird. ;)

Quote
Und ein wenig mehr Arbeit wird es wohl auch. Ich denke das ist doch der Hauptgrund: einer muss die Arbeit machen am Ende des Tages...

Immer her damit. :P

Gruß
Chris

hey hey,

das hatte ich selbst bei pfSense im Handbuch so nachgelesen. Die gingen sogar einen Schritt weiter und meinten, es sei sicherer den DNS Cache und die Root Server zu nutzen, anstatt den Forwarder, gerade in Bezug auf DNSsec.
Siehe:
Quote
Enable DNSSEC Support: Uses DNSSEC to validate DNS queries. Be aware that it is recommended to disable forwarding and allow Unbound to handle all DNS resolution via root servers, which is the default behavior.
Hier tritt aber meine Paranoia in den Vordergrund und sagt mir: "ich vertraue den amerikanischen root Servern nicht". Auf jeden Fall mehr als meinem ISP, aber dennoch.
Nun bietet OpenNIC Tier 1 Root Server an als Alternative, aber wie zum Geier kriegt man das wieder in Unbound konfiguriert frag ich mich da. Fragen über Fragen. :P

Quote
Wenn das so ist, dann frage ich mich gerade, welchen technischen Grund es dafür gibt? Oder noch einfacher gesagt: Warum kann/darf/soll der Resolver nicht die DNS Server nutzen, die ich eingetragen habe in den Systemeinstellungen?
So wie ich das verstanden habe, sind deine eingetragenen Server nicht länger notwendig. Es wird ja direkt der root Server angesprochen, der seinen Weg auch ohne deine eingetragenen DNS Server kennt um Namen aufzulösen. Er weiß ja sozusagen "besser" als du welchen Weg er nehmen muss für die Auflösung.

Quote
The attacker only needs to poison one dns server and all queries from all the users of that ISP go to the attackers compromised machines.
Vor ein paar Jahren gab es da doch mal einen Angriff genau auf diese Art um DNS Anfragen auf Webseiten mit Werbe-Bannern aufzulösen. Ich find leider den Artikel dazu nicht mehr. :-/
Ziemlich beängstigend um ehrlich zu sein. :)

Quote
Alternative A:  Ich vertraue ausschließlich auf das Design des Resolvers und nutze somit immer den Weg über die Root DNS Server (sofern mein Resolver den Eintrag nicht im Cache hat).

Alternative B: Ich nutze die DNS Server, die ich eingetragen habe und die ich somit vorgebe (Forwarder Modus).
Ich würde sagen das variiert stark anhand deines Netzaufbaus.
Alternative A würde bei mir und meiner Captive Portal Umsetzung im Betrieb keinen Sinn machen, weil die Captive Portal Seite auf der OPNsense bereits bekannt ist als "Host Overrides" Eintrag und die restlichen Anfragen mit dem Forwarder (Dnsmasq) zu einem lokalen DNS Server im Unternehmen geschickt werden (dem ich irgendwie zwangsläufig vertrauen muss). Selbe Umsetzung wäre im Forwarder Modus für Unbound ja dann ebenso gleichbedeutend für das Endergebnis.

Für Zuhause klingt Alternative A mit DNSsec und alternativen Root T1 Servern für mich auf jeden Fall erst einmal sicherer und im Bezug auf den Datenschutz vertraulicher. (Geschmackssache)

Performanter (nach meiner Naiven Vorstellung) klingt hingegen der Resolver im Forwarder Modus, obwohl man sagen muss, dass man das wahrscheinlich gar nicht merkt. (Vermutung)

Quote
Wenn man die Sicherheitsthematik betrachtet, die dort durch das Beispiel Cache Poisoning hervrogehoben wurde, dann bekommt auch der Punkt, mit der Option, dass man per DHCP oder PPPoE auf WAN alternative DNS Server zulässt, noch eine bedeutendere Gewichtung.
Genau .. also ausschalten, man hat ja bei "Settings > General" bereits DNS Server eingetragen.

Schöne Grüße
Oxy

Ps.: Falls jemand für OpenNIC + OPNsense (DNS Resolver/Unbound) irgendwelche "Kochrezepte/Anleitungen" hat immer her damit. :)

> Hier tritt aber meine Paranoia in den Vordergrund und sagt mir: "ich vertraue den amerikanischen root Servern nicht". Auf jeden Fall mehr als meinem ISP, aber dennoch.

Das ist aber quatsch. Es ist völlig egal, ob das jetzt ein US Root ist oder nicht, aber irgendwo steht nunmal der Root der Zone bspw. .org. Und das wird dann eben recht häufig auch mal ein US Server sein. Entweder vertraut man DNS oder nicht, da gehört dann Vertrauen in die großen ROOTs mit rein. Die zudem meist Anycast ausliefern und das aus Servern in deiner Nähe, als auch bspw. eben Europa oder Deutschland.

> Nun bietet OpenNIC Tier 1 Root Server an als Alternative, aber wie zum Geier kriegt man das wieder in Unbound konfiguriert frag ich mich da. Fragen über Fragen. :P

Unnötiger schnickschnack meines Erachtens. OpenNIC macht nicht einen eigenen ROOT, sondern macht das um (zu alten Zeiten als es kaum gTLDs gab) eigene Domain TLDs nach eigenem Gusto anbieten zu können. Braucht aber nun wirklich kein Mensch. Dass man mehr freie und performante DNS Server brauchen könnte - keine Frage - dafür ist OpenNIC toll. Aber ich brauche keine alternativen ROOTs mit eigenen eingepflegten Zusatz TLDs denen ich dann auch wieder "trauen" muss, dass sie keine Zone wie bspw. .org mit was eigenem Überschreiben.

> Vor ein paar Jahren gab es da doch mal einen Angriff genau auf diese Art um DNS Anfragen auf Webseiten mit Werbe-Bannern aufzulösen.

Ist bei genug Anbietern und ISPs immer noch Gang und Gäbe. Nicht Werbebanner aber es gibt genug "schlechte" DNSe, die bspw. bei einem NXDomain eigene Seiten ausliefern als "Alternative". Was DNS im Grunde schon kaputt macht (weil es kein negatives Caching gibt, sondern der Client denkt, er hat was korrekt aufgelöst, obwohl es Werbung oder ISP Bullshit ist).

Grüße
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

> Entweder vertraut man DNS oder nicht, da gehört dann Vertrauen in die großen ROOTs mit rein. Die zudem meist Anycast ausliefern und das aus Servern in deiner Nähe, als auch bspw. eben Europa oder Deutschland.

Okay alles klar. :)

> Aber ich brauche keine alternativen ROOTs mit eigenen eingepflegten Zusatz TLDs denen ich dann auch wieder "trauen" muss, dass sie keine Zone wie bspw. .org mit was eigenem Überschreiben.

Hmm schwierig, wenn es dann doch noch eine menge Beiträge darüber gibt, die davon reden OpenNIC als Root Server Alternative zu nutzen.  ??? Aber klar klingt schon logisch. Hab auch oft gelesen, dass die Server wohl nicht stabil laufen, aber interessant wäre es trotzdem. :)

> [...] Nicht Werbebanner aber es gibt genug "schlechte" DNSe, die bspw. bei einem NXDomain eigene Seiten ausliefern als "Alternative". [...] der Client denkt, er hat was korrekt aufgelöst, obwohl es Werbung oder ISP Bullshit ist.

Ich weiß nich mehr die Details, aber die hatten auf jeden Fall Werbe-Betrug durchgezogen im großen Stil.

Vielleicht kommen wir aber nochmal zurück zum Thema:
Was nutzt du bei dir JeGr? Dnsmasq oder Unbound und wenn Unbound, dann im Forwarder Modus oder die DNS Cache/root Server Umsetzung? Würde mich echt interessieren. :)

Moin zusammen,

Quote
Hier tritt aber meine Paranoia in den Vordergrund und sagt mir: "ich vertraue den amerikanischen root Servern nicht". Auf jeden Fall mehr als meinem ISP, aber dennoch.

Joa, ich schwanke da auch so irgendwo in der Mitte... Mein ISP (Unitymedia) ist ja, ganz nüchtern betrachtet, irgendwo im Mittelklasse Feld, behaupte ich einfach aus Erfahrung. Dass die ihre DNS Server wirklich sicher aufgesetzt haben, traue ich denen nicht wirklich zu. Einfach auch, weil selbst deren Techniker oft mit den einfachsten Problemstellungen bisher immer überfordert waren (und ich hatte schon so einige Telefonate, direkt mit den technischen Abteilungen).

Das Vertrauen in die großen Root Server ist bei mir schon, zum Großteil, gegeben. Zumal ja gerade da einfach nichts schief gehen darf, wenn die Struktur des Internets stabil bleiben soll. Aber es hinterlässt auch bei mir einen etwas faden Beigeschmack, wenn man bedenkt, dass einige der Root Server u.A. dem US Militär, dem US DoD oder der NASA gehören.

Quote
Nun bietet OpenNIC Tier 1 Root Server an als Alternative, aber wie zum Geier kriegt man das wieder in Unbound konfiguriert frag ich mich da. Fragen über Fragen.

Na ja, ohne Umprogrammierung der unbound Libs, wohl garnicht. Aber da kommen wir ja wieder zum Ursprungsproblem, dass man ja dann einfach den Forwarder Modus aktivieren müsste und sich auf die DNS verlässt, die man selbst wählt. Ich habe z.B. die OpenDNS Server eingetragen (ich glaube Du, @Oxy, hattest das selbst mal geschrieben, dass Du die nutzt) und frage mich da nun die ganze Zeit:

Ist mein Vertrauen nun in die (großteils amerikanischen) Root Server berechtigter, als in z.B. OpenDNS Server (die ja nun auch Amerikaner -> "Cisco" sind)?

Quote
So wie ich das verstanden habe, sind deine eingetragenen Server nicht länger notwendig. Es wird ja direkt der root Server angesprochen, der seinen Weg auch ohne deine eingetragenen DNS Server kennt um Namen aufzulösen. Er weiß ja sozusagen "besser" als du welchen Weg er nehmen muss für die Auflösung.

Genau.

Quote
Vor ein paar Jahren gab es da doch mal einen Angriff genau auf diese Art um DNS Anfragen auf Webseiten mit Werbe-Bannern aufzulösen. Ich find leider den Artikel dazu nicht mehr. :-/
Ziemlich beängstigend um ehrlich zu sein.

Ich meine sogar, da in den letzten 3 Jahren von so einigen dieser Attacken gelesen zu haben, nur waren viele davon kleiner und damit auch nicht in den großen, populären Medien aufgetaucht, dafür aber in kleineren Fachportalen zu finden (müsste da auch etwas länger suchen).

Quote
Ich würde sagen das variiert stark anhand deines Netzaufbaus.
Alternative A würde bei mir und meiner Captive Portal Umsetzung im Betrieb keinen Sinn machen, weil die Captive Portal Seite auf der OPNsense bereits bekannt ist als "Host Overrides" Eintrag und die restlichen Anfragen mit dem Forwarder (Dnsmasq) zu einem lokalen DNS Server im Unternehmen geschickt werden (dem ich irgendwie zwangsläufig vertrauen muss). Selbe Umsetzung wäre im Forwarder Modus für Unbound ja dann ebenso gleichbedeutend für das Endergebnis.

Das stimmt natürlich. In jedem Setup, in dem eigene DNS Server unabdingbar sind, ist der Resolver (im Resolver Modus ^^) nicht mehr möglich.

Quote
Für Zuhause klingt Alternative A mit DNSsec und alternativen Root T1 Servern für mich auf jeden Fall erst einmal sicherer und im Bezug auf den Datenschutz vertraulicher. (Geschmackssache)

"Gefühlt" (momentan) schon.  :D

Quote
Performanter (nach meiner Naiven Vorstellung) klingt hingegen der Resolver im Forwarder Modus, obwohl man sagen muss, dass man das wahrscheinlich gar nicht merkt. (Vermutung)

Ich habe da so ein paar Einträge gelesen und selber mal getestet in meinem Setup.

Prinzipiell bedient ja der Resolver, nach dem ersten Aufruf, aus seinem Cache. Da hat man dann natürlich DNS Abfragen im Bereich von 0-3ms (ich denke, 0ms als Wert versteht man einfach als "extrem schnell" und nicht in > 1ms messbar).  Eine normale Anfrage an Seiten (mit dem Resolver, also über die Root DNS), die nicht in meinem Cache liegen, laufen bei mir mit ~50-300ms durch (das sind natürlich auch alles nur Näherungswerte und niemals 100% exakt.

Ich hatte in einigen Portalen (vieles in pfSense Portalen) gelesen, dass sich Nutzer darüber beschwert haben, dass im Resolver Modus eben, ungecachte Einträge, mit bis zu 500ms aufgelöst wurden, wobei der Forwarder da Anfragen, mit meist unter 20ms, bedient hat.

Ich halte das alles eher für Performance Geilheit und ich glaube (wie einige andere auch), dass man solche Unterschiede als Endnutzer kaum merken kann und wird.  Zumal wir hier wirklich nur von ungecachten Aufrufen sprechen. Außerdem, wie @JeGr auch geschrieben hat, verteilen die Root DNS fast alle per Anycast.

Quote
Entweder vertraut man DNS oder nicht, da gehört dann Vertrauen in die großen ROOTs mit rein. Die zudem meist Anycast ausliefern und das aus Servern in deiner Nähe, als auch bspw. eben Europa oder Deutschland.

Genau, das "kann" man ja im letzten Schritt als eine Problematik sehen oder auch nicht. Wenn der selbst gewählte DNS dann nicht mehr weiter weiß, landet eine Anfrage so oder so, zwangsläufig, immer bei einem der Root Server.

Das einflechten einer Alternative, wie z.B. das mit den OpenNIC Tier 1 Servern, ist natürlich ein guter Ansatz, wenn es um das komplette Ersetzen der DNS Struktur geht, auf die man vertraut. Bei mir hinterlässt das dennoch einen etwas mulmigen Eindruck, weil man ja auch da erstmal einfach nicht weiß, was diese DNS dann auflösen und was evtl. nicht...?!  ???

Quote
Nicht Werbebanner aber es gibt genug "schlechte" DNSe, die bspw. bei einem NXDomain eigene Seiten ausliefern als "Alternative". Was DNS im Grunde schon kaputt macht (weil es kein negatives Caching gibt, sondern der Client denkt, er hat was korrekt aufgelöst, obwohl es Werbung oder ISP Bullshit ist).

Genau, erlebt man ja ab und an mal, wenn z.B. ein Vertipper in der URL genutzt wird und man auf irgendwelchen Redirect Seiten landet, auf denen dann Werbung liegt oder diverse Domains zum Kauf angeboten werden, usw.

Quote
Hab auch oft gelesen, dass die Server wohl nicht stabil laufen, aber interessant wäre es trotzdem.

Meine Hauptkritik liegt hierbei auch auf der Performance-/Ausfallsicherheit. Das Geflecht aus den 13 Root DNS und den hunderten Anycast DNS Servern ist dem OpenNIC DNS Ansatz vermutlich einfach deutlich überlegen, durch die redundante und globale Infrastruktur. 

Ich persönlich habe momentan den Resolver aktiviert und nicht  im Forwarder Modus. Ich nutze also das Setup, mit eigenem Cache und Root DNS. Und ich werde in den nächsten Tagen mal das ein oder andere Benchmarking laufen lassen.

Wobei mir noch ein Punkt in den Sinn kommt, der eigentlich der Ursprung dieses Threads ist (und aus dem anderen Thread stammt, in dem fabian dsa angesprochen hatte):

Da der Resolver ja den eigenen Cache vorhält, habe ich ja auch unter Kontrolle, ob ich unerwünschte Domains im DNS blocke oder nicht (durch eigene Sperrlisten, bei denen man ja bestimmte Hosts im DNS auf 0.0.0.0 schickt).

Geht das nun auch im Forwarder Modus mit dem Resolver? Und funktioniert das auch mit dem reinen Forwarder (dnsmasq) ?

Gruß
Chris




btw: der Resolver ist derzeit einer meiner Kandidaten für die Microsoft-Telemetry DNS Abfragen meiner "leeren" opnsense (keine clients) nach dem booten und auch danach immer wieder...

https://forum.opnsense.org/index.php?topic=4803.msg18835#msg18835

kind regards
chemlud
____
"The price of reliability is the pursuit of the utmost simplicity."
C.A.R. Hoare

felix eichhorns premium katzenfutter mit der extraportion energie

A router is not a switch - A router is not a switch - A router is not a switch - A rou....

Hey hey,

Quote
Ich habe z.B. die OpenDNS Server eingetragen (ich glaube Du, @Oxy, hattest das selbst mal geschrieben, dass Du die nutzt) und frage mich da nun die ganze Zeit:
Ist mein Vertrauen nun in die (großteils amerikanischen) Root Server berechtigter, als in z.B. OpenDNS Server (die ja nun auch Amerikaner -> "Cisco" sind)?
Man muss hier ganz klar zwischen den Begriffen "Vertraulichkeit"/Datenschutz und "Sicherheit"/Vertrauen/Stabilität unterscheiden.
Ich halte OpenDNS als sehr performant und stabil (ist mir noch nie entfallen die Verbindung), jedoch in Punkto Vertraulichkeit schlechter als OpenNIC.
Die Tatsache, dass viele der Root Server in Amerika stehen, ist vielleicht viel eher ein globales Problem, als dass man es als "kleiner Mann" unter Kontrolle kriegt. Wie du (@ne0h) und @JeGr ja schon meinten, wenn ich den Root Servern nicht mehr vertrau... wem denn dann?
Muss leider zugeben, dass ich da zu naiv gedacht habe, grade im Bezug auf die Aussage von JeGr:
Quote
Aber ich brauche keine alternativen ROOTs mit eigenen eingepflegten Zusatz TLDs denen ich dann auch wieder "trauen" muss, dass sie keine Zone wie bspw. .org mit was eigenem Überschreiben.
irgendwie also ein Teufelskreis...

Quote
Ich hatte in einigen Portalen (vieles in pfSense Portalen) gelesen, dass sich Nutzer darüber beschwert haben, dass im Resolver Modus eben, ungecachte Einträge, mit bis zu 500ms aufgelöst wurden, wobei der Forwarder da Anfragen, mit meist unter 20ms, bedient hat.
500ms sind 0,5 Sekunden. Ob einem das wirklich auffällt? ::)

Quote
Ich persönlich habe momentan den Resolver aktiviert und nicht  im Forwarder Modus. Ich nutze also das Setup, mit eigenem Cache und Root DNS. Und ich werde in den nächsten Tagen mal das ein oder andere Benchmarking laufen lassen.
Quote
btw: der Resolver ist derzeit einer meiner Kandidaten für die Microsoft-Telemetry DNS Abfragen meiner "leeren" opnsense (keine clients) nach dem booten und auch danach immer wieder...
Kann das jemand abnicken? Das wär für mich ja schon das Todesurteil für Unbound. Mein Dnsmasq macht da nämlich keine Fachsen  ???

Quote
Und funktioniert das auch mit dem reinen Forwarder (dnsmasq) ?
Kurz gegoogelt und paar Einträge gefunden. Sollte also möglich sein. Nich unbedingt in der GUI aber in der Konsole. :)

Schöne Grüße
Oxy