bind9: Weiterleitung zum lokalen Nameserver funktioniert nicht, wenn die Internetverbindung unterbrochen ist

bind9: Weiterleitung zum lokalen Nameserver funktioniert nicht, wenn die Internetverbindung unterbrochen ist

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.comZone als unsignierte Zone vorliegt (d. h., es liegt ein Nein-Nachweis DSim Rahmen der Delegation der eigentlichen example.comZone 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.comZone 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-exceptOption, 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-validationOption, 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.comda es unwahrscheinlich erscheint, dass die Frage irgendeinen Bezug zu dem Domänennamen hat, auf den sie verweist, oder dem Unternehmen, dem er gehört.)

verwandte Informationen