Kann ich dnsmasq so konfigurieren, dass / etc / hosts verwendet wird, um das Ziel eines CNAME aufzulösen?
Gibt es eine Möglichkeit, dnsmasq so zu konfigurieren, dass beim Empfang eines CNAME-Datensatzes, wenn sich das Ziel in / etc / hosts befindet, das überschrieben wird, was der öffentliche DNS-Server sonst über dieses Ziel sagt, und stattdessen / etc / hosts verwendet?
Das ist die Frage, aber wenn Sie sich für den gesamten Hintergrund und die Details interessieren, lesen Sie weiter.
Einzelheiten
Ich habe einen Domainnamen, nennen wir ihn example.com
. Ich habe die Domäne für mein Heimnetzwerk auf gesetzt philadelphia.example.com
und daher könnten Hosts in host1.philadelphia.example.com
und sein host2.philadelphia.example.com
. Ich habe Split-Horizon-DNS eingerichtet, damit diese Namen sowohl hinter der NAT als auch im öffentlichen Internet funktionieren.
Der Einfachheit halber möchte ich auf einige davon einfach zugreifen host1.example.com
(ohne den Namen der Stadt). Ich habe für diese öffentliche CNAME-Datensätze erstellt. Das funktioniert gut im Internet, aber nicht hinter meinem Router.
Mein Router (ein EdgeRouter Lite, für die Aufzeichnung) verwendet dnsmasq als DNS-Server. Es fügt automatisch die Datensätze für host1
und host1.philadelphia.example.com
zu / etc / hosts hinzu, wenn es die DCHP-Lease ausgibt, aber nicht, host1.example.com
da example.com
es nicht seine Domäne ist. Dementsprechend host1.example.com
leitet es eine Anfrage an den öffentlichen DNS weiter.
Der öffentliche DNS-Server sucht die folgenden Datensätze und gibt sie zurück:
host1.example.com. 3600 IN CNAME host1.philadelphia.example.com. host1.philadelphia.example.com. 3600 IN A <Router's external IP>
Eigentlich bin ich nicht sicher, ob der öffentliche DNS-Server den A-Datensatz automatisch sendet oder ob dnsmasq eine zweite Anforderung dafür ausgibt. In jedem Fall nimmt dnsmasq das Wort des öffentlichen DNS-Servers und gibt die öffentliche IP-Adresse meines Routers gewissenhaft an den ursprünglichen Client hinter dem Router zurück, nicht an host1
die private IP-Adresse von / etc / hosts.
Als zusätzlichen Test habe ich versucht, einen CNAME-Datensatz für privatehost.example.com
-> privatehost.philadelphia.example.com
zu erstellen, ohne dafür einen öffentlichen A-Datensatz zu erstellen. Mein Router hat jedoch einen Eintrag privatehost.philadelphia.example.com
in / etc / hosts. In diesem Fall antwortet der öffentliche DNS-Server mit dem CNAME-Eintrag und NXDOMAIN, wenn er nichts finden kann privatehost.philadelphia.example.com
. Sogar noch, nimmt dnsmasq das Wort des Servers und gibt NXDOMAIN an den Kunden, auch wenn es nicht für einen Eintrag hat privatehost.philadelphia.example.com
.
Gibt es eine Möglichkeit, dnsmasq anzuweisen, seine eigenen / etc / hosts nach dem Abrufen des CNAME erneut zu versuchen, selbst wenn es zu einem öffentlichen DNS musste, um es zu erhalten?
0 Antworten auf die Frage
Verwandte Probleme
-
2
Erinnert sich Windows 7 Home Premium an Netzwerkfreigaben-Passwörter?
-
5
XP-Netzwerkverbindung ohne Neustart freigeben?
-
1
DNS-Einstellungen pro Windows-Benutzer wechseln?
-
5
Wie richte ich Windows ein, 802.11 gegenüber 3G zu bevorzugen?
-
4
Gibt es eine Möglichkeit, den Scanner eines Multifunktionsdruckers gemeinsam zu nutzen?
-
3
Gibt es eine Möglichkeit, zwei Computer über USB anzuschließen?
-
3
Wie halten Sie mehrere Verbindungen zum Internet?
-
4
iPod-Touch zum Abspielen von Filmen vom PC auf der PS3?
-
2
Mac tritt der Windows-Arbeitsgruppe nicht bei
-
1
Wie kann ich die Sicherheit meines Portals erhöhen?