Wie unbound richtig nutzen? - Thema DNS im Heimnetztwerk bzw. kleinem Firmennetzwerk

cabriofahrer

Well-Known Member
Auf Bitten von @holgerw eröffne ich einen neuen Thread zum o.g. Thema.

Die Frage lautet: Zum Thema des Heim- bzw. kleinen Netzwerks allgemein mit Router vom ISP (Im Falle von @holgerw Fritzbox), könnte mal hier erläutert werden, wie man das im Basissystem enthaltene unbound genau bzw. sinnvoll nutzen kann? Die Erklärung im Handbook ist für mich nicht so ganz aufschlussreich. Wenn man es startet, wird jedenfalls die /etc/resolv.conf überschrieben und bei einem Neustart, ohne den Service unbound ebenfalls mitzustarten, kommt man auf einmal nicht mehr ins Internet.

Weiter Frage in diesem Zusammenhang: Könnte man auf den Heimroutern (wie hier Fritzbox) einfach pfsense bzw. FreeBSD installieren, oder verweigert der ISP den Betrieb, wenn er im Router seines Endkunden nicht sein eigenes Betriebsystem erkennt?

Ziel dieses Threads wäre so eine Art Bauanleitung für ein Netzwerk mit Heimrouter unter Einbeziehung von unbound (Basissystem) als DNS-Server, die vielleicht auch im Wiki landen könnte.
 
Hallo,

dann liefere ich mal im Groben unser Heimnetzwerk als Beispielszenario:
Fritzbox (DSL-Router, MAC bezogene IP-Vergabe an Netzwerkgeräte)
PC meiner Frau mit FreeBSD (Lan)
PC von mir mit FreeBSD (Lan)
Notebook mit FreeBSD (Wlan)
NAS mit FreeBSD (Lan)
Backup-NAS mit Debian (Lan)
WD-Live mit Customimage (Lan)
geplant ist ein Mini-PC als HTPC-System mit FreeBSD (Lan)
Hifi-Geräte (Lan)
Drucker (Lan bzw. Wlan)
Smartphones & Tablet per Wlan

Wie nun hier unbound einsetzen? Ich vermute mal, es ist sinnvoll, zunächst einen DNS-Server auf einer Maschine einzurichten, und zwar auf einer, die ständig online ist. Das sind bei mir:
Fritzbox
Backup-NAS
das geplante HTPC-System

Es soll gewährleistet bleiben, dass:
Allen Geräten MAC-bezogen IP-Adressen per DHCP zugeordnet werden, damit ssh-Login und nfs immer reibungslos funktionieren.

Wo muss jetzt wie was konfiguriert werden? Irgendwie ist mir der unbound-Ansatz noch nicht richtig klar.
 
Also, in Deutschland ist der Routerzwang zum 1. August 2017 abgeschafft worden, es besteht Wahlfreiheit des Router. Man kann also jeden Router an seinen Anschluss hängen, der ISP muss auf Bitten den Betrieb ermöglichen. An der Frage, was man daraus machen kann, scheiden sich allerdings die Geister. Meine bescheidene Meinung ist:
  • Wenn man einfach nur Internet will, ist es der einfachste Weg, den mitgelieferten Plastikrouter des jeweiligen ISP zu nutzen. Die tun was sie sollen und sind im Servicefall problemlos, da der ISP den Service nicht verweigern kann. Oder anders gesagt, man tut seinen Eltern, Bekannten und und so weiter meist keinen Gefallen damit ihnen einen anderen Router zu installieren. Auch wenn der technisch besser sein sollte.
  • Wenn man mehr will, würde ich empfehlen einen guten (oder realistischer formuliert vielleicht besseren) Router zu kaufen und den auch wirklich nur Router spielen zu lassen. Also rein und raus ins Netz, aber kein DNS, kein DHCP, kein VPN, kein Mediencenter und so weiter. Einen Router und kein Modem, da es eh kaum mehr echte Modems auf dem Markt gibt und ein Router im Modem-Mode meiner Meinung nach nicht besser als Modem + Kiste für die Einwahl und das NAT dahintergeschaltet ist.
Für den Fall, dass man mehr will, macht man alles andere hinter dem Router. Man baut sich also eine schöne Kiste, z.B. auf Basis der PC Engines APU Boards, auf der das Betriebssystem der Wahl läuft. Darauf dann DNS und DHCP, wenn man IPv6 stateless macht den Router Advertising Daemon, eventuelle VPN-Endpunkte und so weiter. Damit hat man alles in seiner Hand und umgeht eventuelle Probleme im Zusammenspiel mit dem Plastikrouter.

Bezogen auf DNS ist es eine gute Idee zumindest zwei Zonen zu betreiben, eine für statische Hosts und eine für dynamische Hosts. Ich habe z.B. home.yamagi.org für die statischen Hosts, dynamisch vergebene IPs werden in dhcp.yamagi.org gefüttert. Damit ist auch kein Zwang mehr da DHCP-Hosts per MAC-Adresse immer die gleiche IP zuzuweisen; beispielsweise ist mir die Adresse von ps4.dhcp.yamagi.org völlig egal, ich habe ja einen funktionierenden DNS-Namen.

WLAN ist ein Thema für sich. Ob man das WLAN einfach als ein Teil des Netzes betrachtet oder als eigenes Netz, muss jeder für sich wissen. Danach entscheidet sich dann auch, wie man es einbindet. Grundsätzlich gilt aber, dass sich gute Access Points lohnen. Ein paar Euro mehr investiert bringen oft deutlich bessere Ausleuchtung und wesentlich höheren Durchsatz.
 
Das ist mal wieder eine typische Yamagi-Antwort.:)

Vielen Dank für diesen informativen Kommentar.
Ich werde wohl bei der Fritzbox basierten Konfiguration bleiben (zumal ich mir zwecks Erweiterung der WLAN-Fähigkeit eine weitere Mesh fähige Fritte kürzlich besorgt habe).
 
Sehr gute Ausführung zum Thema Hardware/Homerouter! Jetzt wäre noch interessant, wie man mit dem "Onboard"-Unbound ein Heimnetztwerk mit NAS, mehreren PC's, Drucker, usw. realisiert. Die verschiedenen Server/Dienste wie DNS, DHCP, NFS, sendmail, usw. können ja alle auf einer Maschine betrieben werden, auf der FreeBSD installiert ist und die dauerhaft in Betrieb ist, sagen wir also, der NAS.

Wenn man den Tipp von @Yamagi befolgen will, einfach den Router des ISP zu verwenden, welche Rolle könnte dabei unbound (oder auch bind) spielen, um sein Netzwerk mit einem DNS zu versehen?

Andere Frage in diesem Zusammenhang: Wenn man sendmail als Mailserver benutzen will, braucht dieser, soweit ich das verstehe, zum Betrieb anderer Domains außer dem systemeigenen von der FreeBSD-Installation einen DNS-Server. Kann dieser DNS-Server denn der des Heimrouters sein? Oder hat jeder Heimrouter überhaupt einen eingebauten DNS-Server, den man konfigurieren kann? MW hat der Heimrouter doch nur DHCP und man kann Ports für FTP, HTTP usw. öffnen?
 
Ich habe im Heimnetz einen Unbound laufen der:

DNS Anfragen aus dem lokalen Netz beantwortet -> dazu geht er per SSL auf die Server von Quad9 bzw. Cloudflare. Zusätzlich wird die TTL deutlich erhöht (jaja nicht schön) da die Abfrage über SSL deutlich länger dauert. Dafür liest niemand mit.

Zudem verwalte ich die locale local. Zone für meine interne Hardware und blocke direkt bekannte Spam/Werbe URLs indem ich die Zone "verwalte" aber alles auf localhost umleite.

Am Router wird nichts großartiges geändert, nur der default DNS der über DHCP gesetzt wird, zeigt eben auf meinen Server (in dem Fall ein RPI).

Coole Unbound-Tutorials gibts auf https://calomel.org (Ich hab mit der Seite nichts zu tun, finde nur die Tutorials dort gut gemacht).
 
Yamagi hat grundsätzlich recht, die "Boxen" der ISPs sind völlig Okay um Eltern oder so mit dem Internet zu versorgen wenns darum geht 2x Smartphones, ein Tablet und ein Notebook zu versorgen dir nur HTTP machen.

Sobald auch nur ein bisschen komplexeres oder sagen wir mal "ungewöhnliches" drüber läuft würde ich eher zu etwas anderen raten.
Damit möchte ich aber auch nicht zu irgend einer hochkomplexen selbstbastellösung raten. Eine FritzBox (o.ä.) reicht völlig aus. Klar, die gehören auch in die Kategorie "einfache Plasterouter", bieten aber idr. eine bessere Firmware.

Ausserdem werden die von den meisten ISPs inzwischen auch als "Quasi Standard" so "halbwegs" unterstützt. Bei Telekom-DSL läuft sogar die Autokonfiguration in wenigen sekunden durch - Anschließen, Einschalten, 2x auf "weiter" klicken und Zugangsdaten, Telefonieoptionen e.t.c. werden automatisch gezogen.

Was meine ich mit "komplexeren" Sachen? Eigentlich garnichts soooo spezielles. Folgendes fällt mir gerade spontan ein:
  • Einfaches SSL-VPN von einem Notebook zu einem fernen Server aus. Auf den Speedports & Co. wesentlich instabiler, wechsel gegen Fritz am gleichen Anschluss -> Probleme weg
  • Komische technische Defekte (Meine Schwiegereltern hatten da 3,4 Stück tauschen lassen, alle mit dem gleichen Fehler: Nach 2-5 Tagen musste man den Router neustarten um wieder WLAN zu haben)
  • PC-Spiele spielen. Wir hatten da im Clan immer mal wieder Probleme die nach dem Router-Wechsel weg waren.
  • Am "krassesten" war das mal auf einer kleinen LAN-Party - der Speed-Port hat immer nur exakt 5 Spiele-Sessions gleichzeitig zugelassen bei einem bestimmten spiel. Der 6. kam dann nicht mehr rein.
Also sobald z.B. PC-Spielende-Kinder oder so da sind würde ich immer empfehlen das Fritz-Gerät (o.ä.) zu verwenden.
 
@cabriofahrer

Dein Urbauvorhaben (blankes FreeBSD auf Kiste, reines Modem dranpappen und dann als Router konfigurieren) habe ich lange Zeit am Laufen gehabt. Man lernt viel, sehr viel, hat damit aber sehr viel Arbeit.
Deine erste Stolperfalle wird wahrscheinlich gewesen sein, dass der Router in punkto DNS nach Einwahl nicht auf sich selber gezeigt hat, erst Recht, wenn man die Dienste in jails packt.
Minimal brauchst du z.B. was als Einwahl (mpd5), DNS (unbound) und DHCP (isc-dhcp). Dann hast du aber noch keine Firewall und erst Recht noch keine Regeln dafür.
Da mir im Moment etwas arg viel Zeit für Spielereien fehlt, habe ich mich entschieden OPNsense zu verwenden. Da hast du das aus einem Guss, wenig Möglichkeiten, dich selber auszusperren (blöd, wenn man wegen seiner config nicht ins Netz kann, um nachzugooglen ;) ) und man kann komfortabel alles zusammenklicken, ohne auf Featureritis verzichten zu müssen. Zumindest ich habe jetzt noch nichts gefunden, was ich vermisse.

Für Bekannte würde ich das nicht hinstellen, weil die damit nicht adäquat umgehen werden. Nicht-Techies ziehen gerne einfach mal den Stecker oder hauen auf den Monitor. :D Das sollen fertige Router abkriegen und keine von dir liebevoll eingerichteten Kisten.
 
Ich habe im Heimnetz einen Unbound laufen der:

DNS Anfragen aus dem lokalen Netz beantwortet -> dazu geht er per SSL auf die Server von Quad9 bzw. Cloudflare. Zusätzlich wird die TTL deutlich erhöht (jaja nicht schön) da die Abfrage über SSL deutlich länger dauert. Dafür liest niemand mit.

Zudem verwalte ich die locale local. Zone für meine interne Hardware und blocke direkt bekannte Spam/Werbe URLs indem ich die Zone "verwalte" aber alles auf localhost umleite.

Am Router wird nichts großartiges geändert, nur der default DNS der über DHCP gesetzt wird, zeigt eben auf meinen Server (in dem Fall ein RPI).

Coole Unbound-Tutorials gibts auf https://calomel.org (Ich hab mit der Seite nichts zu tun, finde nur die Tutorials dort gut gemacht).

Die angegebene URL ist echt gut, Danke!

Allerdings habe ich überhaupt kein Internet mehr, wenn ich die Anleitung von Kap 29.7 im Handbook befolge und unbound einfach nur mittels

service local_unbound onestart

starte. Damit werden ja auch alle Konfigurationsdateien automatisch erstellt.
Ich habe erst wieder Internet, wenn ich die von unbound erstellte /etc/resolv.conf wieder mit dem Backup des Originals von /etc/resolv.conf ersetze und den Rechner wieder ohne unbound neustarte.

Was geht hier schief?
 
Zeig doch mal den Inhalt deiner resolv.conf bevor und nach unbound-start.
In dem unbound-Tut werden ja mehrere Varianten erklärt, ich nehme sonst mal an, dass mglw. der DNS-Upstream falsch konfiguriert ist?
 
Ich glaube, ich habe den Fehler gefunden. Habe das gleiche nochmal in virtualbox ausprobiert und bekam dann zuerst auch kein Internet.

In der neuen resolv.conf stand

# nameserver 192.168.1.1

nameserver 127.0.0.1

Also ausgerechnet mein Gateway anscheinend defaultmäßig auskommentiert (warum?). Wenn ich also

nameserver 192.168.1.1

# nameserver 127.0.0.1

daraus mache und unbound neustarte, klappt es.

Weitere Frage: In dem Blog (https://calomel.org) werden mehrere Beispiele für die /etc/unbound/unbound.conf beschrieben.

Der Inhalt des Ordners /etc/unbound nach dem Starten von unbound sieht folgendermaßen aus:

Code:
$ cd /etc/unbound/
$ ls
conf.d        forward.conf    root.key
control.conf    lan-zones.conf    unbound.conf

Die Inhalte dieser Dateien sind sehr spärlich und haben mit den Beispielen im Blog überhaupt nichts zu tun. Was ich eigentlich genau vorhabe:

An meinem Router habe ich zwei Geräte hängen, einen PC und ein Laptop, der eine heißt "amd64.lan" (mit der IP 192.168.1.34) und der andere "elvis69.lan" (mit der IP 192.168.1.93).

Ich will, dass die sich gegenseitig mit "ping amd64.lan" und ping "elvis69.lan" erreichen können und nicht nur durch pingen der IP.
Wie genau müsste ich welche der Konfigurationsdateien ergänzen, um das zu erreichen?
Dürften doch nur zwei/drei Zeilen sein, oder?
 
Ich glaube, ich habe den Fehler gefunden. Habe das gleiche nochmal in virtualbox ausprobiert und bekam dann zuerst auch kein Internet.

In der neuen resolv.conf stand

# nameserver 192.168.1.1

nameserver 127.0.0.1

Also ausgerechnet mein Gateway anscheinend defaultmäßig auskommentiert (warum?). Wenn ich also

nameserver 192.168.1.1

# nameserver 127.0.0.1

daraus mache und unbound neustarte, klappt es.

Ähm... Du hast nicht den Fehler gefunden, sondern die Konfiguration des lokalen Unbounds damit kaputt gemacht.

Erklärung:

Dein DHCP Server liefert an den Client neben der IP Adresse auch die Adresse des DNS Servers, im Deinem Fall die 192.168.1.1, diese IP Adresse wird von DHCP Client an das resolvconf Skript weitergegeben, welches es normalerweise in die /etc/resolv.conf einträgt. Die Konfiguration des resolvconf Skripts kannst Du in /etc/resolvconf.conf einsehen, aus dieser geht hervor was das Skript macht.

Installierst Du den lokalen Unbound, dann wird folgendes verändert: In die /etc/resolv.conf wird als DNS Server fest die 127.0.0.1 eingetragen, dort läuft der lokale Unbound. Alle anderen dort eingetragenen Nameserver werden auskommentiert. Die Konfiguration der resolvconf Skripts wird dahingehend verändert, dass es nicht mehr die /etc/resolv.conf bearbeitet, sondern die /etc/unbound/forward.conf, dort wird nun Dein Gateway eingetragen.

Das Ergebnis ist, dass alle Nameserveranfragen des Stub Resolvers (welcher die /etc/resolv.conf auswertet) nunmehr an 127.0.0.1 und damit an den lokalen Unbound gehen. Dieser wiederum benutzt falls vorhanden die in der /etc/unbound/forward.conf eingetragenen Nameserver. Ist dort nichts eingetragen (oder die Datei nicht vorhanden), dann sollte Unbound die Namensauflösung selbst machen (also direkt auf die Root Server gehen und sich durchfragen).

Warum genau das jetzt bei Dir nicht geht kann ich Dir nicht sagen, nur wenn Du die /etc/resolv.conf so bearbeitest wie Du es gemacht hast, dann umgehst Du den Unbound einfach.

EDIT: Ich weiss jetzt nicht ob hier ein Missverständnis vorliegt und was Du eigentlich genau machen willst. Aber der local_unbound wie er von FreeBSD geliefert und konfiguriert wird ist ein reines Client Setup. Das ist KEIN Setup um einen Nameserver im lokalen Netz bereitzustellen.
 
Vielen Dank für diese ausführliche Erklärung!

EDIT: Ich weiss jetzt nicht ob hier ein Missverständnis vorliegt und was Du eigentlich genau machen willst. Aber der local_unbound wie er von FreeBSD geliefert und konfiguriert wird ist ein reines Client Setup. Das ist KEIN Setup um einen Nameserver im lokalen Netz bereitzustellen.

Deswegen meine Frage zu den Konfigurationsdateien und dem Blog, in dem eben sehr wohl ein Beispiel (Nr. 3) genannt wird, um mit unbound einen Nameserver im lokalen Netz bereitzustellen.

Und das ist genau das, was ich will, einen lokalen Nameserver, damit, wie schon vorher gesagt:

An meinem Router habe ich zwei Geräte hängen, einen PC und ein Laptop, der eine heißt "amd64.lan" (mit der IP 192.168.1.34) und der andere "elvis69.lan" (mit der IP 192.168.1.93).

Ich will, dass die sich gegenseitig mit "ping amd64.lan" und ping "elvis69.lan" erreichen können und nicht nur durch pingen der IP.

Ist für dieses Vorhaben vielleicht BIND die bessere Lösung, zumal BIND sich auch mit webmin ansprechen lässt?
 
Wenn du nur die beiden hast: jeweils in die /etc/hosts eintragen und gut is. Alles andere wäre viel zu viel Aufwand :)

So etwas hatte ich auch vermutet, vielen Dank! Wie wäre denn die genaue Syntax? Reicht da einfach:

amd64.lan 192.168.1.34
elvis69.lan 192.168.1.93

in beiden Rechnern oder der Eintrag nur in einem der beiden oder muss jeweils in einen der Rechner die Adresse des anderen?
 
Anders rum: erst die Adresse und dann (beliebig) viele Namen. Es reicht nur den jeweils anderen in der lokalen Hosts zu haben, ich würde aber einfach beide eintragen. Dann kannst du dich selbst auch mit Namen pingen ;-)

um mit unbound einen Nameserver im lokalen Netz bereitzustellen.
Natürlich kann der unbound das. Nur der im Basissystem ist eben als lokaler resolver vorkonfiguriert und die Init Skripten verändern deine resolv.conf. Wenn du den unbound fürs lokale Netz nehmen willst, dann nimm den aus den Ports, der ist nicht so vorkonfiguriert - irgendwo steht das auch.
 
Mit der conf aus dem Tutorial sollte das problemlos klappen was du vorhast. Ich würd nochmal schauen ob du irgendwo nen Müll reingepastet hat. Bzw. schau mal in die Logs.
Für nen einfachen DNS im lokalen Netz fände ich BIND einen overkill, wer Webmin braucht sollte sich sowieso besser mit seiner Fritzbox begnügen ;)
 
Zurück
Oben