Wewnętrzny DNS w Amazon AWS VPC

21

Zaczynam rozumieć VPC, ale nie widzę dobrego wewnętrznego rozwiązania DNS. Na przykład używamy serwera bazy danych innego niż RDS, z którym łączą się inne serwery w VPC. Chciałbym połączyć się według nazwy, a nie adresu IP. Częściowo jest to tak, że mogę uzyskać wewnętrzny adres 10.xxx, który jest prawdopodobnie szybszy. W większości przypadków konfiguracja jest łatwiejsza, bardziej czytelna i elastyczna.

W dawnych czasach (około 2008 r.) Wcześniej niż VPC miałem serwer z systemem MaraDNS, który aktualizowaliśmy w miarę uruchamiania i zmieniania instancji, co było dużym utrudnieniem, w szczególności dlatego, że serwery otrzymywałyby własne adresy wewnętrzne przypisane do DHCP kiedy uruchomili się ponownie, i tylko dlatego, że była to inna sprawa. Niektórzy moi koledzy z różnymi systemami myśleli, że jestem idiotą, jeśli chodzi o cały ten wysiłek - właśnie zaktualizowali pliki / etc / hosts (co było świetne, dopóki nie nastąpiła awaria, a wszystkie ich serwery wróciły z nowymi adresami IP).

Czy powinienem patrzeć na Route53 (gdzie robimy cały nasz publiczny DNS), czy jest coś, czego mi brakuje?

Aktualizacja: 2017 - wewnętrzny DNS jest teraz funkcją Route 53. Woot!

Tom Harrison Jr
źródło
To jest naprawdę świetne pytanie, coś, z czym również starałem się znaleźć rozwiązanie. Byłbym bardzo skłonny rzucić na to niezłą nagrodę, aby spróbować przyciągnąć świetną odpowiedź.
EEAA
Instancje VPC mogą mieć ustalone prywatne adresy IP, więc dlaczego uruchomienie własnego serwera DNS nie jest opcją?
Dusan Bajic
@ dusan.bajic - Będę musiał uruchomić własny serwer DNS, jeśli będę musiał, ale jak powiedziałem w pytaniu, to kolejna rzecz do zarządzania, monitorowania i kontynuowania pracy. Miałem nadzieję, że po prostu brakuje mi czegoś, co dodał AWS ... chyba nie :-)
Tom Harrison Jr

Odpowiedzi:

5

Instancje powinny rejestrować swoje nazwy DNS na serwerach DNS za pośrednictwem DDNS podczas uruchamiania (jako CNAME do ich publicznej nazwy FQDN przypisanej AWS); w ten sposób możesz się do nich odwoływać znaną nazwą i uzyskać najbardziej odpowiedni adres (wewnętrzny lub zewnętrzny) niezależnie od tego, gdzie jesteś. Route53 prawdopodobnie ma wbudowaną tego rodzaju magię, ale w miarę możliwości wolę niezależne od dostawcy rozwiązania.

womble
źródło
9
O ile mi wiadomo, Route53 nie ma wbudowanego.
ceejayoz
1
@womble - liczyłem na magię, o której mówisz w Route53, ale nic nie widzę. Serwery znajdują się w obrębie VPC, więc nie ma publicznej nazwy FQDN, ale istnieje statyczny (stabilny) adres IP, który mógłbym zarejestrować za pomocą rekordu A za pomocą narzędzi CLI Route53. Jest to więc dobry pomysł i jest lepszy niż konfigurowanie własnego serwera DNS i zarządzanie nim. Naprawdę nie rozumiem, dlaczego AWS nie pozwala nam przypisywać własnych nazw hostów adresowanych do DNS w ramach tworzenia instancji. Westchnienie :-) Przyjmę odpowiedź za kilka dni, jeśli nikt inny nie ma lepszego rozwiązania. Dzięki!
Tom Harrison Jr
@TomHarrisonJr, chociaż zaznaczyłeś to jako poprawne - podejrzewam, że zrobiono to niechętnie? Jakie było twoje ostateczne rozwiązanie?
Andrew
2
@Andrew Chociaż jest to prawidłowa odpowiedź, krótka odpowiedź brzmi: „AWS nie ma żadnej wewnętrznej usługi DNS”, więc musisz rzucić własną. Jestem fanem MaraDNS - prostego, łatwego w zarządzaniu za pomocą plików tekstowych, lekkiego itp. Jeśli naprawdę nie chcesz ujawniać swoich prywatnych serwerów za pośrednictwem DDNS lub Route53, tak właśnie robiłem w przeszłości.
Tom Harrison Jr
6

Z dokumentacji AWS VPC wynika, że zalecanym podejściem do wykorzystania serwera DNS wewnątrz VPC AWS jest utworzenie zestawu opcji DHCP i skojarzenie go z VPC. Następnie możesz wstać 1-4 serwerów DNS w tym VPC. Ponadto zestaw opcji DHCP pozwoli ci skonfigurować następujące ustawienia dla wszystkich zawartych instancji VPC. (wycięte z dokumentów)

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
źródło
Dzięki, wygląda na to, że AWS zmierza w kierunku wewnętrznej infrastruktury DNS ... stopniowo. Moje pytanie wtedy brzmiało, czy istnieje jakaś alternatywa dla hostowania mojego wewnętrznego DNS. Tak się składa (teraz w nowej firmie) używamy Route53 do wewnętrznego DNS i po prostu poprzedzamy nazwę. Na przykład publiczna nazwa hosta może być, foo.example.coma jej wewnętrznym odpowiednikiem jest i.foo.example.comadres o adresie 10.xxx. Ma to pewne problemy z bezpieczeństwem związane z potencjalnym narażeniem naszych wewnętrznych elementów, ale jest ograniczone.
Tom Harrison Jr
2
Amazon obsługuje teraz prywatne strefy hostowane, które pozwalają na rozpoznawanie DNS, które jest ograniczone tylko do rozwiązania przez serwery Amazon DNS od VPC powiązanych z prywatną strefą hostowaną. docs.aws.amazon.com/Route53/latest/DeveloperGuide/…
jnt30
4

Czy coś takiego jak Avahi nie zadziała? Jest nawet zainstalowany i ładnie zapakowany dla większości dystrybucji Linuksa. Po prostu daj każdemu wystąpieniu, które musi być osiągalne, unikalną nazwę hosta, a Bob jest twoim wujem.

Michael Hampton
źródło
1
Sieci AWS są dziwne ... Nie musiałbym zakładać, że Avahi faktycznie zadziała. Jednak nie trzeba wiele testować.
womble
To byłoby interesujące rozwiązanie, ponieważ oznaczałoby to, że musiałem tylko wymienić swoje wystąpienia, a reszta to magia. Ale jest bardzo mało dokumentów i nie było dla mnie od razu jasne, czy jest to odpowiednie dla środowiska serwera produkcyjnego. Będę o tym pamiętać - dzięki.
Tom Harrison Jr