Interner DNS in Amazon AWS VPC

21

Ich fange an, VPC zu verstehen, sehe aber keine gute interne DNS-Lösung. Zum Beispiel verwenden wir einen Nicht-RDS-Datenbankserver, zu dem andere Server in der VPC eine Verbindung herstellen. Ich möchte eine namentliche Verbindung herstellen, keine IP. Teilweise ist dies so, dass ich eine interne 10.xxx-Adresse bekommen kann, die vermutlich schneller ist. Meistens wird die Konfiguration einfacher, lesbarer und flexibler.

In den alten Tagen (ca. 2008) hatte ich vor VPC einen Server mit MaraDNS, den wir beim Starten und Ändern von Instanzen aktualisierten, und das war ein großes Problem, insbesondere, weil Server ihre eigenen, DHCP-zugewiesenen internen Adressen erhielten als sie neu starteten und nur weil es eine andere Sache war, mit der man sich befassen musste. Einige meiner Kollegen, die verschiedene Systeme betrieben, hielten mich für einen Idioten, weil sie all diese Anstrengungen unternommen hatten - sie haben nur die Dateien / etc / hosts aktualisiert (was großartig war, bis es einen Ausfall gab und alle ihre Server mit neuen IPs zurückkamen).

Sollte ich Route53 anschauen (wo wir all unser öffentliches DNS machen) oder fehlt mir etwas?

Update: 2017 - Internes DNS ist jetzt ein Feature von Route 53. Woot!

Tom Harrison Jr
quelle
Dies ist eigentlich eine großartige Frage, für die ich mich ebenfalls schwer getan habe, eine Lösung zu finden. Ich würde sehr gerne eine schöne Prämie dafür ausgeben, um eine großartige Antwort zu finden.
EEAA
VPC-Instanzen können feste private IP-Adressen haben. Warum ist die Ausführung eines eigenen DNS-Servers keine Option?
Dusan Bajic
@ dusan.bajic - Ich werde meinen eigenen DNS-Server betreiben, wenn ich muss, aber wie ich in der Frage angegeben habe, ist es nur eine andere Sache, die verwaltet, überwacht und weiterarbeitet. Ich hatte gehofft, dass mir etwas fehlt, das AWS hinzugefügt hatte ... raten Sie nicht :-)
Tom Harrison Jr

Antworten:

5

Instanzen sollten ihre DNS-Namen beim Start über DDNS bei Ihren DNS-Servern registrieren (als CNAMEs für ihren öffentlichen, von AWS zugewiesenen vollqualifizierten Domänennamen). Auf diese Weise können Sie sie mit einem bekannten Namen ansprechen und die am besten geeignete Adresse (intern oder extern) ermitteln, unabhängig davon, wo Sie sich befinden. Route53 hat diese Art von Magie wahrscheinlich eingebaut, aber ich bevorzuge, wo immer möglich, anbieterunabhängige Lösungen.

womble
quelle
9
Route53 hat es meines Wissens nicht eingebaut.
Ceejayoz
1
@womble - Ich habe auf die Magie gehofft, von der Sie in Route53 sprechen, aber nichts sehen. Die Server befinden sich in einer VPC, es gibt also keinen öffentlichen FQDN, aber es gibt eine statische (stabile) IP, die ich mit den Route53-CLI-Tools mit einem A-Datensatz registrieren könnte. Das ist also eine gute Idee und es ist einfacher, meinen eigenen DNS-Server einzurichten und zu verwalten. Ich verstehe nicht wirklich, warum AWS nicht zulässt, dass wir unsere eigenen DNS-adressierbaren Hostnamen als Teil der Instanzerstellung zuweisen. Seufz :-) Ich akzeptiere die Antwort in ein paar Tagen, wenn sonst niemand eine bessere Lösung hat. Vielen Dank!
Tom Harrison Jr
@TomHarrisonJr obwohl du dies als korrekt markiert hast - ich vermute, es wurde widerwillig getan? Was war Ihre endgültige Lösung?
Andrew
2
@Andrew Obwohl dies eine gültige Antwort ist, lautet die kurze Antwort "AWS hat keinen internen DNS-Dienst", und Sie müssen Ihren eigenen rollen. Ich bin ein Fan von MaraDNS - einfach, einfach über Textdateien zu verwalten, leichtgewichtig usw. Wenn Sie Ihre privaten Server wirklich nicht über DDNS oder Route53 verfügbar machen möchten, ist dies die Art und Weise, wie ich es in der Vergangenheit getan habe.
Tom Harrison Jr
6

Aus der AWS VPC- Dokumentation geht hervor, dass der empfohlene Ansatz zur Nutzung eines DNS-Servers in einer AWS VPC darin besteht, zunächst einen DHCP-Optionssatz zu erstellen und ihn der VPC zuzuordnen. Dann können Sie 1-4 DNS-Server in dieser VPC aufstellen. Darüber hinaus können Sie mit den DHCP-Optionen für alle enthaltenen VPC-Instanzen die folgenden Einstellungen vornehmen. (aus den Dokumenten geschnitten)

DHCP Option Name      | Description
 domain-name          |  A domain name of your choice (for example, example.com).
 domain-name-servers  |  The IP address of a domain name server.
 ntp-servers          |  The IP address of a Network Time Protocol (NTP) server. 
 netbios-name-servers |  The IP address of a NetBIOS name server.
 netbios-node-type    |  The NetBIOS node type (1, 2, 4, or 8).
Oort
quelle
Vielen Dank, es sieht so aus, als würde AWS allmählich auf eine interne DNS-Infrastruktur umsteigen. Meine damalige Frage war, ob es eine Alternative zum Hosten meines eigenen internen DNS gibt. Wie es passiert (jetzt bei einer neuen Firma), verwenden wir Route53 für das interne DNS und geben dem Namen lediglich das Präfix. Zum Beispiel könnte ein öffentlicher Hostname sein foo.example.comund sein internes Gegenstück ist i.foo.example.com, dessen Adresse die 10.xxx-Adresse ist. Dies birgt einige Sicherheitsprobleme, die möglicherweise dazu führen können, dass unsere Interna offengelegt werden, ist jedoch begrenzt.
Tom Harrison Jr.
2
Amazon unterstützt jetzt private gehostete Zonen, die eine DNS-Auflösung ermöglichen, die nur über Amazon DNS-Server von VPCs aufgelöst werden kann, die der privaten gehosteten Zone zugeordnet sind. docs.aws.amazon.com/Route53/latest/DeveloperGuide/…
jnt30
4

Würde so etwas wie Avahi nicht funktionieren? Dies ist sogar für die meisten Linux-Distributionen installiert und gut verpackt. Geben Sie einfach jeder Instanz, die erreichbar sein muss, einen eindeutigen Hostnamen, und Bob ist Ihr Onkel.

Michael Hampton
quelle
1
AWS-Netzwerke sind komisch ... Ich würde nicht unbedingt annehmen, dass Avahi tatsächlich funktioniert. Es braucht jedoch nicht viel, um es zu testen.
womble
Dies wäre eine interessante Lösung, da ich nur meine Instanzen benennen müsste und der Rest magisch ist. Aber es gibt nur sehr wenige Dokumente, und mir war nicht sofort klar, ob dies für eine Produktionsserverumgebung richtig war. Ich werde es mir merken - danke.
Tom Harrison Jr