DNS: Auflösung einer Subdomain an einen anderen Nameserver delegieren

DNS: Auflösung einer Subdomain an einen anderen Nameserver delegieren

Ich richte zu Hause einen DNS-Server ein, um es mir einfacher zu machen, einige meiner lokalen Server mit Aliasnamen zu versehen, und auch als Projekt, um DNS besser zu verstehen. Da ich neu in diesem Bereich bin, verzeihen Sie mir bitte etwaige Fehler in der Terminologie (und korrigieren Sie sie, wenn Sie möchten)!

Der Zweck meines lokalen DNS-Servers besteht darin, meine Domäne für den Zugriff auf einige meiner lokalen Computer zu verwenden. Nehmen wir also an, meine Domäne ist my-domain.com. Ich habe zu Hause einen Medienserver, auf den ich als zugreifen möchte media.my-domain.com, und ich habe zwei lokale DNS-Server, die ich für diesen Zweck verwende. Diese DNS-Server delegieren für andere Abfragen an Google DNS.

Hier ist meine Zonendatei für , die auf meinem lokalen DNS-Server my-domain.comgespeichert ist :/etc/bind/zones/db.my-domain.comns1

;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns1.my-domain.com. admin.my-domain.com. (
                  3     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
; name servers - NS records
@   IN  NS  ns1.my-domain.com.
@   IN  NS  ns2.my-domain.com.
;
; name servers - A records
ns1.my-domain.com.  IN  A   10.55.55.55
ns2.my-domain.com.  IN  A   10.55.55.56
;
; 10.55.55.0/24 - A records
media.my-domain.com.    IN  A   10.55.55.100

Hier ist meine Optionsdatei, die /etc/bind/named.conf.optionsauf meinem lokalen DNS-Server gespeichert ist ns1:

acl "trusted" {
    10.55.55.0/24; # home network
};
options {
    directory "/var/cache/bind";

    recursion yes;
    allow-recursion { trusted; };
    listen-on { 10.55.55.55; };
    allow-transfer {none; }; # disable zone transfers

    forwarders {
        8.8.8.8; # google1
        8.8.4.4; # google2
    };

    //========================================================================
    // If BIND logs error messages about the root key being expired,
    // you will need to update your keys.  See https://www.isc.org/bind-keys
    //========================================================================
    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

Hier 10.55.55.0/24ist mein lokales Subnetz, und ns1hier ns2sind mein primärer und sekundärer DNS-Server.

Ich verwende es my-domain.comfür andere Zwecke im Internet. Wenn ich beispielsweise admin.my-domain.comdarauf zugreife, werde ich zur Administratorkonsole einer öffentlich sichtbaren Website weitergeleitet. Das heißt, wenn Sie einen nslookupZugriff admin.my-domain.comvon den DNS-Servern von Google ausführen, sehen Sie, dass dieser einer global zugänglichen öffentlichen IP-Adresse zugeordnet ist.

Leider kann ich nach der Implementierung meiner lokalen DNS-Server nicht mehr admin.my-domain.comrichtig auflösen. Meine nslookupAnfragen landen bei meinen lokalen DNS-Servern, die nicht für diese Subdomain konfiguriert sind, und ich erhalte von meinem lokalen DNS die Meldung „Keine Antwort“.

Stattdessen hätte ich gerne, dass meine DNS-Server Anfragen für my-domain.coman Google DNS weiterleiten und nur Antworten für ns1.my-domain.com, ns2.my-domain.com, und bereitstellen media.my-domain.com. Ich habe einige Fragen gesehen, die meinen ähnlich sind, aber die Antworten bestehen meist darin, für jede Subdomäne eine einzelne Zonendatei zu erstellen. Ist das wirklich die einzige Möglichkeit? Ich würde wirklich gerne sagen können: „Wenn ich eine Regel für angegeben habe, x.my-domain.comdann folge dieser Regel. Andernfalls delegiere die Aufgabe an die nächste Stelle (in meinem Fall an Google DNS).“

Ich bin mir nicht sicher, wie ich das Problem mit Google beheben kann, da ich die Terminologie nicht wirklich verstehe und da ich ein absoluter Neuling bin, weiß ich nicht, wo ich anfangen soll, es selbst zu beheben. Ist das, worum ich bitte, überhaupt möglich? Für jede Hilfe, wie ich dieses Verhalten implementieren oder danach suchen kann, wäre ich sehr dankbar. Danke!

Antwort1

Das Problem besteht darin, dass Sie Bind so konfiguriert haben, dass es für ganz maßgeblich ist example.com.

Daher müssen Sie Ihr lokales Bind so konfigurieren, dass es nicht nur Ihre internen DNS-Einträge, sondern auch eine Kopie aller Ihrer öffentlichen DNS-Einträge in der Zonendatei für speichert example.com.

Anstatt Bind als autorisierend festzulegen, example.comreservieren Sie eine Subdomäne von example.com für Ihre interne Verwendung, und machen Sie Ihren internen DNS nur dafür autorisierend. Erstellen Sie beispielsweise eine Zone namens home.example.comund verwenden Sie media.home.example.com. Auf diese Weise können Sie keine widersprüchlichen Einträge in Ihrem internen und öffentlichen DNS haben.

verwandte Informationen