Ich richte zu Hause einen DNS-Server ein, um es mir zu erleichtern, einige meiner lokalen Server zu aliasen, und auch als Projekt, um DNS besser zu verstehen. Da ich neu in diesem Bereich bin, bitte ich Sie, eventuelle terminologische Fehler zu verzeihen (und diese zu korrigieren)!
Der Zweck meines lokalen DNS-Servers besteht darin, meine Domain für den Zugriff auf einige meiner lokalen Computer zu verwenden. Nehmen wir also an, meine Domain ist my-domain.com
. Ich habe zu Hause einen Medienserver, auf den ich zugreifen möchte media.my-domain.com
, und ich habe zwei lokale DNS-Server, die ich für diesen Zweck verwende. Diese DNS-Server werden für andere Abfragen an Google DNS delegiert.
Hier ist meine Zonendatei für my-domain.com
, die /etc/bind/zones/db.my-domain.com
auf meinem lokalen DNS-Server gespeichert ist ns1
:
;
; 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.options
auf 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/24
ist mein lokales Subnetz ns1
und dort ns2
sind meine primären und sekundären DNS-Server.
Ich verwende es my-domain.com
für andere Zwecke im Internet. Wenn ich also darauf zugreife admin.my-domain.com
, rufe ich die Administratorkonsole einer öffentlich sichtbaren Website auf. Das heißt, wenn Sie ein ausführen nslookup
auf admin.my-domain.com
aus dem Google-DNS - Server werden Sie sehen , um es zu einem global zugänglichen öffentlichen IP - Adresse zugeordnet.
Nachdem ich meine lokalen DNS-Server implementiert habe, kann ich leider nicht admin.my-domain.com
richtig auflösen . Meine nslookup
Anfragen treffen auf meine lokalen DNS-Server, die nicht für diese Unterdomäne konfiguriert sind, und ich erhalte "Keine Antwort" von meinem lokalen DNS.
Das Verhalten Ich mag würde, stattdessen ist für meine DNS - Server - Anfragen für weiterleiten my-domain.com
zu Google DNS und nur Antworten geben für ns1.my-domain.com
, ns2.my-domain.com
und media.my-domain.com
. Ich habe einige Fragen gesehen, die meinen ähnlich sind, aber die Antworten bestehen in der Regel darin, für jede Unterdomäne eine einzelne Zonendatei zu erstellen. Ist das wirklich der einzige Weg? Ich möchte wirklich sagen können: "Wenn ich eine Regel angegeben habe, x.my-domain.com
befolgen Sie diese Regel. Andernfalls delegieren Sie die Kette (in meinem Fall an Google DNS)."
Ich bin mir nicht sicher, wie ich das mit Google beheben soll, da mir die Terminologie nicht wirklich klar ist und ich als absoluter Neuling nicht weiß, wo ich anfangen soll, sie selbst zu beheben. Ist das, wonach ich bitte, überhaupt möglich? Jede Hilfe, wie ich dieses Verhalten implementieren oder danach suchen könnte, wäre sehr dankbar. Vielen Dank!