Ich habe folgendes Setup:
Eine bind9-Instanz (im Folgenden L genannt) auf sehr eingeschränkter Hardware zur Auflösung der Namen in meinen lokalen Netzwerken. Sie ist ein autoritativer Master für die Zone home.mydomain.com. Anfragen an diesen Server funktionieren und geben homedns.home.mydomian.com als NS und die IP 192.168.1.77 davon als zusätzlichen Datensatz zurück.
Eine Bind9-Instanz (im Folgenden M genannt) zum Auflösen von Internet- und lokalen Namen. Hier wird keine globale Weiterleitungsoption verwendet. Es ist eine Weiterleitungszone konfiguriert:
zone "home.mydomain.com" in {
type forward;
forward only;
forwarders { 192.168.1.77; };
};
Hinweis 1: mydomain.com ist eine bestehende, registrierte Domäne, aber es gibt keinen Eintrag für home.mydomain.com
Hinweis 2: Die bind9-Version von M ist sehr alt: 9.8.1-P1
Dieses Setup funktioniert, solange die Internetverbindung besteht, aber lokale Namensabfragen werden nicht beantwortet, wenn die Verbindung unterbrochen ist. Log ist syslog ist
Aug 30 09:05:42 M named[1611]: error (no valid DS) resolving 'xxx.home.mydomain.com/A/IN': 192.168.1.77#53
Das Erfassen des Netzwerks für eine erfolgreiche Auflösung bei bestehender Verbindung zeigt, dass M nach Erhalt der Antwort von L im Internet nach mydomain.com fragt. In der Antwort von M an den Client wird der AUTHORITY SECTION geändert:
nach L graben:
;; ANSWER SECTION:
syslog.home.mydomain.com. 3600 IN A 192.168.1.99
;; AUTHORITY SECTION:
home.mydomain.com. 3600 IN NS homedns.home.mydomain.com.
;; ADDITIONAL SECTION:
homedns.home.mydomain.com. 3600 IN A 192.168.1.77
graben zu M:
;; ANSWER SECTION:
syslog.home.mydomain.com. 2134 IN A 192.168.1.99
;; AUTHORITY SECTION:
net. 171334 IN NS j.gtld-servers.net.
net. 171334 IN NS m.gtld-servers.net.
net. 171334 IN NS i.gtld-servers.net.
net. 171334 IN NS k.gtld-servers.net.
net. 171334 IN NS g.gtld-servers.net.
net. 171334 IN NS e.gtld-servers.net.
net. 171334 IN NS h.gtld-servers.net.
net. 171334 IN NS a.gtld-servers.net.
net. 171334 IN NS d.gtld-servers.net.
net. 171334 IN NS f.gtld-servers.net.
net. 171334 IN NS b.gtld-servers.net.
net. 171334 IN NS c.gtld-servers.net.
net. 171334 IN NS l.gtld-servers.net.
Ich verstehe nicht, warum M nicht einfach die Antwort von L an den Client zurückgibt und mir fällt auch nicht mehr ein, was ich versuchen könnte, um die Abfrage im Internet für die weitergeleitete Zone zu vermeiden.
Antwort1
Der in der Frage zitierte Protokolleintrag lässt darauf schließen, dass der Fehler damit zusammenhängt, dass die DNSSEC-Validierung fehlschlägt, wenn keine Internetverbindung besteht.
Beachten Sie den Teil „kein gültiger DS“ in der Fehlermeldung:
Aug 30 09:05:42 M named[1611]: error (no valid DS) resolving 'xxx.home.example.com/A/IN': 192.168.1.77#53
Vermutlich werden die Antworten auf Anfragen an diese Weiterleitungszone normalerweise nur deshalb akzeptiert, weil die öffentliche example.com
Zone als unsignierte Zone vorliegt (d. h., es liegt ein Nein-Nachweis DS
im Rahmen der Delegation der eigentlichen example.com
Zone vor). Wenn dieser Nachweis jedoch aufgrund fehlender Internetverbindung nicht mehr abgerufen werden kann, können die Antworten nicht mehr akzeptiert werden, da nicht mehr überprüft werden kann, ob/wie diese signiert sein müssen.
Eine Möglichkeit wäre, die home.example.com
Zone zu signieren und eine statischeVertrauensankerspeziell für diese Zone.
Eine andere Möglichkeit wäre, die Validierung selektiv zu deaktivieren. Das aktuelle BIND hat einevalidate-except
Option, mit der Sie eine Liste von Domänennamen angeben können, bei denen keine Validierung durchgeführt werden soll, gemäß:
validate-except
Dies gibt eine Liste von Domänennamen an, bei denen und unterhalb derer keine DNSSEC-Validierung durchgeführt werden soll, unabhängig davon, ob bei oder über diesen Namen ein Vertrauensanker vorhanden ist. Dies kann beispielsweise verwendet werden, wenn eine Top-Level-Domäne konfiguriert wird, die nur für die lokale Verwendung vorgesehen ist, damit das Fehlen einer sicheren Delegierung für diese Domäne in der Stammzone keine Validierungsfehler verursacht. (Dies ähnelt dem Festlegen eines negativen Vertrauensankers, außer dass es sich um eine permanente Konfiguration handelt, während negative Vertrauensanker ablaufen und nach einer festgelegten Zeitspanne entfernt werden.)
Es besteht auch die Möglichkeit, die Validierung vollständig zu deaktivieren, indem Siednssec-validation
Option, die ich nicht empfehlen würde, wenn diese BIND-Instanz über diese spezielle Weiterleitung hinaus genutzt werden soll.
(Hinweis: Ich habe den in der Frage verwendeten Domänennamen durch ersetzt, example.com
da es unwahrscheinlich erscheint, dass die Frage irgendeinen Bezug zu dem Domänennamen hat, auf den sie verweist, oder dem Unternehmen, dem er gehört.)