{"id":9515,"date":"2011-12-19T09:30:22","date_gmt":"2011-12-19T07:30:22","guid":{"rendered":"http:\/\/funrecycler.com\/?p=9515"},"modified":"2011-12-19T09:30:22","modified_gmt":"2011-12-19T07:30:22","slug":"lokaler-dns-cache","status":"publish","type":"post","link":"https:\/\/funrecycler.com\/index.php\/2011\/12\/19\/lokaler-dns-cache\/","title":{"rendered":"Lokaler DNS-Cache"},"content":{"rendered":"<p>Eine nicht allzu seltene Zugangsbarriere zum Internet ist die Bandbreite. Die Barriere kann einerseits darin bestehen das man einfach zuwenig Bandbreite besitzt oder aber die Bandbreite zu &#8222;teuer&#8220; ist, wen man zum Beispiel nur 1 GByte Traffic pro Monat frei hat.<br \/>\n<!--more-->Etwas nervig sind die stetigen DNS-Abfragen die jede Applikation f\u00fcr alles in das weltweite Netz absetzt. Das erzeugt auf der einen Seite Traffic und auf der anderen Seite kostet es wertvolle Zeit, wen st\u00e4ndig DNS-Abfragen abgesetzt werden m\u00fcssen.<br \/>\nAbhilfe schafft hier ein lokaler DNS-Server der die Abfragen sauber beantwortet und f\u00fcr zuk\u00fcnftige Abfragen vorh\u00e4lt. Damit wird auf der einen Seite das Netz entlastet und auch der anderen Seite gibt es etwas Performance.<br \/>\nZuerst installiert man sich &#8222;pdns&#8220;, ein Caching-DNS-Server.<\/p>\n<pre lang=\"BASH\">apt-get install pdnsd<\/pre>\n<p>Dannach muss man selbigen noch konfigurieren in der Datei \/etc\/pdnsd.conf . Als DNS-Server, welche uns die wirklichen Abfragen beantworten sollen w\u00e4hlen wir hier die \u00f6ffentlichen DNS-Server von Google 8.8.8.8 und 8.8.4.4. . Man kann hier auch andere \u00f6ffentliche DNS-Server w\u00e4hlen. Damit die \/etc\/hosts nicht ignoriert wird, wurde eine zus\u00e4tzliche Quelle auf die \/etc\/hosts zeigend eingetragen.<br \/>\nZus\u00e4tzlich blockieren wir hier noch einige DNS-Abfragen f\u00fcr bestimmte Domains, die st\u00e4ndig nerven in Form von &#8222;Tracking&#8220; &#8222;Ads&#8220; &#8222;Facebook&#8220; und Bandbreite kosten. Positiver Nebeneffekt dieser Art des &#8222;Blockings&#8220; ist, das man Browser explizit nicht konfigurieren muss und man seinen Applikationen lokal die &#8222;nicht Existenz&#8220; etwaiger Seite wie &#8222;facebook.com&#8220; &#8222;vorgauckeln&#8220; kann. Dies kann unter Umst\u00e4nden auch permanent gew\u00fcnscht sein \ud83d\ude42 .<br \/>\nWir haben pdnsd hier so konfiguriert das er lokal auf der IP 127.0.0.53 auf Port 53 lauscht. Damit der DNS-Server auch verwendet wird kann man unter Ubuntu im Network-Manager die Verbindung so einstellen, das bis auf die Standard-Einstellungen der DNS-Server von Hand eingestellt werden kann. Dieser Modus nennt sich &#8222;Automatisch (DHCP), nur Adressen&#8220;. Als DNS-Server gibt man hier &#8222;127.0.0.53&#8220; an.<br \/>\n<a href=\"http:\/\/funrecycler.com\/wp-content\/uploads\/2011\/12\/ubuntu-network-manager-dhcp.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9517\" title=\"ubuntu-network-manager-dhcp\" src=\"http:\/\/funrecycler.com\/wp-content\/uploads\/2011\/12\/ubuntu-network-manager-dhcp.png\" alt=\"\" width=\"580\" height=\"377\" \/><\/a><br \/>\n&nbsp;<br \/>\nEs folgt hier die \/etc\/pdns.conf ..<br \/>\n&nbsp;<\/p>\n<pre lang=\"BASH\">global {\n\tperm_cache=256000;\n\tcache_dir=\"\/var\/cache\/pdnsd\";\n\trun_as=\"pdnsd\";\n\tserver_ip = 127.0.0.53;\n\tstatus_ctl = on;\n\tparanoid=on;\n\tmin_ttl=15m;\n\tmax_ttl=1w;\n\ttimeout=10;\n}\nserver {\n\tlabel = \"google-public-dns\";\n\tip = 8.8.8.8, 8.8.4.4;\n\ttimeout = 15;\n\tuptest = ping;\n\tinterval = 30m;\n\tping_timeout = 300;\n\tpurge_cache = off;\n\texclude = \".localdomain\", \".local\";\n\tpolicy = included;\n\tpreset = off;\n}\nsource {\n\towner=localhost;\n\tfile=\"\/etc\/hosts\";\n}\nneg {\n\tname=ivwbox.de;\n\ttypes=domain;\n}\nneg {\n\tname=doubleclick.net;\n\ttypes=domain;\n}\nneg {\n\tname=google-analytics.com;\n\ttypes=domain;\n}\nneg {\n\tname=facebook.com;\n\ttypes=domain;\n}<\/pre>\n<p>Mit einem beherzten &#8222;service pdnsd restart&#8220; als Root auf der Shell l\u00e4dt man die neue Konfiguration. Dannach muss man die Netzwerkverbindung noch konfigurieren. Testen kann man die Funktion von pdns indem man mit &#8217;nslookup&#8216; eine DNS-Abfrage an 127.0.0.53 absetzt.<\/p>\n<pre lang=\"BASH\">root@victor:~# nslookup\n&gt; server 127.0.0.53\nDefault server: 127.0.0.53\nAddress: 127.0.0.53#53\n&gt; de.wikipedia.org\nServer:\t\t127.0.0.53\nAddress:\t127.0.0.53#53\nNon-authoritative answer:\nde.wikipedia.org\tcanonical name = wikipedia-lb.wikimedia.org.\nwikipedia-lb.wikimedia.org\tcanonical name = wikipedia-lb.pmtpa.wikimedia.org.\nName:\twikipedia-lb.pmtpa.wikimedia.org\nAddress: 208.80.152.201<\/pre>\n<p>Man wird merken, das die erste Abfrage mit einer schmalen Anbindung ein paar Sekunden dauern wird. Startet man nach erfolgreichen Beantworten der Abfrage selbige neu, wird diese quasi in Nullzeit beantwortet und geht nichtmehr \u00fcber das Netz. W\u00fcrde man jetzt hier ohne &#8222;pdnsd&#8220; die Abfrage absetzen, w\u00fcrde es wiederholt ein paar Sekunden dauern und wertvolle Bandbreite kosten.<br \/>\nZus\u00e4tzlich kann man ungew\u00fcnschte Domains schon auf DNS-Ebene blocken. Beliebte Kandidaten sind hier bekannte Tracking-Systeme wie &#8222;ivwbox.de&#8220; oder &#8222;google-analytics.com&#8220;. Hier k\u00f6nnte man z.Bsp. auch &#8222;googleadservices.com&#8220; und &#8222;googlesyndication.com&#8220; hinzuf\u00fcgen, um Werbeeinbledungen des bekannten AdSense-Netzwerks von Google schon auf DNS-Ebene zu verhindern.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine nicht allzu seltene Zugangsbarriere zum Internet ist die Bandbreite. Die Barriere kann einerseits darin bestehen das man<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,9],"tags":[2748],"class_list":["post-9515","post","type-post","status-publish","format-standard","hentry","category-computer-und-technik","category-linux-computer-und-technik","tag-ubuntu-dns-linux"],"_links":{"self":[{"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/posts\/9515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/comments?post=9515"}],"version-history":[{"count":0,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/posts\/9515\/revisions"}],"wp:attachment":[{"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/media?parent=9515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/categories?post=9515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/funrecycler.com\/index.php\/wp-json\/wp\/v2\/tags?post=9515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}