Unbound Users: root.hints Update

Vielleicht bin ich ein bißchen spät dran, aber mir ist heute Morgen aufgefallen, dass die root.hints für den Service Unbound geändert wurde. Die aktuelle Version ist vom 25.03. 2024.

Änderung: B.ROOT-SERVERS.NET Adressen sind erneuert worden.

Aus meiner Sicht nötige Schritte:
Root-Server für Unbound aktualisieren
wget https://www.internic.net/domain/named.root -qO- | sudo tee /var/lib/unbound/root.hints

Root Server in der Unbound Config anpassen
sudo nano /etc/unbound/unbound.conf.d/pi-hole.conf

Unbound Service neu starten
/usr/sbin/service unbound reload

Wenn man Unbound per apt-get installiert hat, wird die root.hints automatisch aktualisiert. S. Wiki

If you are installing unbound from a package manager, it should install the root.hints file automatically with the dependency dns-root-data . The root hints will then be automatically updated by your package manager.

EDIT:

Wobei ich mich gerade wundere, dass die root.hints vom package manager vom 01.01.2023 ist. Und bei github steht was anderes als in der Dokumentation?!

Setting up Pi-hole as a recursive DNS server solution

We will use unbound, a secure open-source recursive DNS server primarily developed by NLnet Labs, VeriSign Inc., Nominet, and Kirei. The first thing you need to do is to install the recursive DNS resolver:

sudo apt install unbound

Important: Download the current root hints file (the list of primary root servers which are serving the domain "." - the root domain). Update it roughly every six months. Note that this file changes infrequently.

wget -O root.hints https://www.internic.net/domain/named.root sudo mv root.hints /var/lib/unbound/

Ja, vielleicht beim ersten Mal. Automatisch passiert danach mit der root.hints nix mehr.
Am besten einen Cronjob anlegen, der 2x im Jahr die Listen aktualisiert. So viel passiert da nicht.

Es steht aber so in der Doku?!

Ich hatte Unbound wie in der Doku beschrieben installiert, aber die root.hints aktualisiert sich nicht automatisch.

It will once the OS updates the package. Assuming you are using Debian, all current branches (stable, testing, and unstable) are still using version 2023010101 of the dns-root-data package.

https://tracker.debian.org/pkg/dns-root-data

1 Like

Das ist sehr gut zu wissen. Dann sollte man tatsächlich die root.hints per Hand aktualisieren oder cronjob.

Allerdings muss man dann auch die Dokumentation richtig lesen und in der /etc/unbound/unbound.conf.d/pi-hole.conf die Raute vor dem root-hints: "/var/lib/unbound/root.hints" entfernen...

@wd9895 hast du die Raute denn entfernt?

Der Abschnitt sieht so aus:

fallback-enabled: yes
for-downstream: no
for-upstream: yes
zonefile: "/var/lib/unbound/root.zone"

Es gibt kein # in der Zeile und keinen Update Automatismus.
Ich werde einen vierteljährigen Cronjob einbauen. Ist wahrscheinlich das Einfachste als sich durch seitenweise mißverständlicher Dokumentationen zu arbeiten.

Das ist auf die Installation von Unbound bezogen! Lies es dir bitte nochmal durch...

Aktualiserungen der root.hints erfolgen selten und spärlich, d.h. alle paar Jahre ändern sich ein paar einzelne Einträge.

Der Unterschied zwischen der aktuellsten Version zu der aus meinem Paketmanager beschränkt sich z.B. auf die Adressen für B.ROOT-SERVERS.NET (klicken für Details)
12,13c12,13
< ;       last update:     March 13, 2019 
< ;       related version of root zone:     2019031302
---
> ;       last update:     March 25, 2024
> ;       related version of root zone:     2024032501
24,25c24,25
< B.ROOT-SERVERS.NET.      3600000      A     199.9.14.201
< B.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:200::b
---
> B.ROOT-SERVERS.NET.      3600000      A     170.247.170.2
> B.ROOT-SERVERS.NET.      3600000      AAAA  2801:1b8:10::b

Es ist allerdings überhaupt nicht zwingend erforderlich, die root.hints sofort nach einer Aktualisierung zu aktualisieren.

Das liegt an der beabsichtigten Verwendung der root.hints:
Ein rekursiver DNS-Server wie unbound muss jede DNS-Anfrage in der Root-Zone "." beginnen (z.B. auch für discourse.pi-hole.net. - der Punkt am Ende steht dabei für die Root-Zone, wird aber in der Regel nicht mitnotiert).

Dadurch ergibt sich ein Henne-Ei-Problem, denn wie soll unbound die Root-Server befragen, wenn er deren Adressen noch nicht kennt?

Hier kommen die root.hints ins Spiel:
Diese Datei enthält die NS-, A- und AAAA-DNS-Datensätze für die komplette Root-Zone.

Ein rekursiver DNS-Server verwendet diese Datei jedoch nicht direkt, sondern nur als Referenz für die Beschaffung der echten Daten (was der Name hints - Hinweise auch schon andeutet).

Vielmehr wird ein beliebiger Root-Server aus der root.hints-Datei nach den benannten DNS-Datensätzen befragt, und mit den so erhaltenen aktuellen DNS-Antworten dieses Root-Servers wird der Cache erstmalig mit den echten Daten der Root-Zone initialisiert (root zone priming).

Das funktioniert also auch mit einer älteren Datei, solange sich nicht alle DNS-Einträge in root.hints geändert haben.

Es ist daher in der Regel unkritisch, auch monatelang noch mit einer älteren root.hints-Datei zu arbeiten.

Wenn unbound über die Paketverwaltung apt installiert wird, wird automatisch auch das Paket dns-root-data installiert. Dieses Paket würde bei jedem apt upgrade ebenfalls aktualisiert werden, natürlich nur, sofern die Paketbetreuer hier ein Update bereitstellen (was bei nur zwei geänderten DNS-Datensätze eines einzigen Root-Servers vielleicht nicht sehr wahrscheinlich ist, aber eben auch nicht kritisch).

2 Likes