{"id":1292,"date":"2011-11-29T17:43:48","date_gmt":"2011-11-29T16:43:48","guid":{"rendered":"http:\/\/my.stargazer.at\/?p=1292"},"modified":"2011-11-30T17:34:39","modified_gmt":"2011-11-30T16:34:39","slug":"the-schizophrenic-dns","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2011\/11\/29\/the-schizophrenic-dns\/","title":{"rendered":"Der Schizophrene DNS"},"content":{"rendered":"<p>Heute m\u00f6chte ich euch ein kleines, praktisches Feature von Nameservern am Beispiel BIND vorstellen, das auf den ersten Blick vielleicht ein bisschen seltsam aussieht, jedoch irre praktisch ist: BIND kann je nach Anfrage verschiedene IPs f\u00fcr den selben Namen liefern.<\/p>\n<p><!--more-->Wozu braucht man das? Server h\u00e4ngen selten direkt im Internet und haben daher hinter der Firewall meistens einen anderen Nummernkreis in der sogenannten DMZ. Das hei\u00dft auch, dass die Server zum Teil auch direkt miteinander kommunizieren k\u00f6nnten, sofern es die Konfiguration zul\u00e4sst.<\/p>\n<p>Wenn ich Server nicht unbedingt per IP ansprechen will, sondern in den Konfigurationen eben einen Namen stehen haben m\u00f6chte, bleibt mir der Weg \u00fcber <em>\/etc\/hosts<\/em> oder \u00fcber einen Nameserver, wobei ersteres nicht unbedingt pflegeleicht ist und sogar einigen Aufwand bedeutet. Beim Nameserver habe ich zumindest nur eine zentrale Stelle wo ich an den Konfigurationsdateien etwas \u00e4ndern muss&#8230;<\/p>\n<p>Um das nun zu realisieren, beginnen wir den Umbau der <em>named.conf<\/em> mit einer ACL mit welcher wir eine Gruppe definieren, in unserem Fall my-dmz, in welcher der IP Kreis 192.168.1.1-254 vertreten ist:<\/p>\n<blockquote>\n<pre>acl my-dmz {\r\n    192.168.1.0\/24;\r\n };\r\n<\/pre>\n<\/blockquote>\n<p>Dann erweitern wir die Konfiguration um sogenannte &#8218;views&#8216; mit den vorhin angelegten ACLs, in die wir unsere aktuellen Zonen verschieben. Besonderheiten dabei sind, dass wir intern keine anderen DNS Server verst\u00e4ndigen m\u00fcssen und wir extern keine rekursiven Abfragen zulassen:<\/p>\n<blockquote>\n<pre>\r\nview \"internal\" {\r\n        match-clients { my-dmz; };\r\n        recursion yes;\r\n        notify no;\r\n\r\n        zone \".\" in {\r\n                type hint;\r\n                file \"\/var\/bind\/root.cache\";\r\n        };\r\n\r\n        zone \"localhost\" IN {\r\n                type master;\r\n                file \"pri\/localhost.zone\";\r\n                notify no;\r\n        };\r\n\r\n        zone \"127.in-addr.arpa\" IN {\r\n                type master;\r\n                file \"pri\/127.zone\";\r\n                notify no;\r\n        };\r\n\r\n\r\n        zone \"example.com\" {\r\n                type master;\r\n                file \"\/var\/bind\/pri\/example.local.hosts\";\r\n        };\r\n\r\n};\r\n\r\nview \"external\" {\r\n        match-clients { !my_dmz; any; };\r\n\r\n        zone \"example.com\" {\r\n                type master;\r\n                file \"\/var\/bind\/pri\/example.com.hosts\";\r\n        };\r\n};\r\n\r\n<\/pre>\n<\/blockquote>\n<p>In den entsprechenden Zone-Files sind dann die Eintr\u00e4ge entsprechend f\u00fcr die Hosts gesetzt. Diese m\u00fcssen nicht gleich sein, sondern k\u00f6nnen den Bed\u00fcrfnissen entsprechend angepasst werden. Das Ergebnis ist dann ein DNS Server, der je nach Quelle der Anfrage die passenden Antworten gibt. Ein Schizophrener DNS Server. Ein Plus an Sicherheit.<\/p>","protected":false},"excerpt":{"rendered":"<p>Heute m\u00f6chte ich euch ein kleines, praktisches Feature von Nameservern am Beispiel BIND vorstellen, das auf den ersten Blick vielleicht ein bisschen seltsam aussieht, jedoch irre praktisch ist: BIND kann je nach Anfrage verschiedene IPs f\u00fcr den selben Namen liefern.<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[339,371,163],"class_list":["post-1292","post","type-post","status-publish","format-standard","hentry","category-it-related-stuff","tag-dns","tag-network","tag-server"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=1292"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1292\/revisions"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=1292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=1292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=1292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}