Внутренний DNS внутри Amazon AWS VPC

21

Я начинаю понимать VPC, но не вижу хорошего внутреннего решения DNS. Например, мы используем сервер баз данных не-RDS, к которому подключаются другие серверы в VPC. Я хотел бы подключиться по имени, а не по IP. Отчасти это так, чтобы я мог получить внутренний адрес 10.xxx, который, предположительно, быстрее. В основном, это делает настройку более простой, удобочитаемой и более гибкой.

В прежние времена (около 2008 г.), до VPC, у меня был сервер, на котором работал MaraDNS, который мы обновляли по мере запуска и изменения экземпляров, и это было большой проблемой, в частности, потому что серверы получали свои собственные внутренние адреса, назначенные DHCP когда они перезапустились, и только потому, что это было другое дело. Некоторые мои коллеги, работающие на разных системах, подумали, что я идиот, если бы пошел на все эти усилия - они просто обновили файлы / etc / hosts (что было здорово, пока не произошло отключение, и все их серверы вернулись с новыми IP-адресами).

Должен ли я смотреть на Route53 (где мы делаем все наши общедоступные DNS) или мне чего-то не хватает?

Обновление: 2017 - Внутренний DNS теперь является функцией Route 53. Woot!

Том Харрисон младший
источник
На самом деле это отличный вопрос, который я тоже пытался найти решение. Я был бы очень готов бросить хорошую награду за это, чтобы попытаться привлечь отличный ответ.
EEAA
Экземпляры VPC могут иметь фиксированные частные IP-адреса, так почему запуск собственного DNS-сервера невозможен?
Душан Баджич
@ dusan.bajic - я буду запускать свой собственный DNS-сервер, если я должен, но, как я уже говорил в этом вопросе, это просто еще одна вещь для управления, мониторинга и продолжения работы. Я надеялся, что мне просто не хватает чего-то, что добавил AWS ... не угадайте :-)
Том Харрисон-младший

Ответы:

5

При запуске экземпляры должны регистрировать свои DNS-имена на своих DNS-серверах через DDNS (в качестве CNAME для их общедоступного FQDN, назначенного AWS); Таким образом, вы можете обращаться к ним по известному имени и получать наиболее подходящий адрес (внутренний или внешний) независимо от того, где вы находитесь. В Route53, вероятно, есть такая встроенная магия, но я предпочитаю независимые от провайдера решения, где это возможно.

romble
источник
9
Насколько мне известно, в Route53 его нет.
ceejayoz
1
@womble - я надеялся на магию, о которой вы говорите в Route53, но ничего не видите. Серверы находятся в пределах VPC, поэтому нет общедоступного полного доменного имени, но есть статический (стабильный) IP-адрес, который я мог бы зарегистрировать в записи A с помощью инструментов CLI Route53. Так что это хорошая идея, которая лучше, чем настройка и управление моим собственным DNS-сервером. Я не очень понимаю, почему AWS не позволяет нам назначать наши собственные DNS-адреса для хоста как часть создания экземпляра. Вздох :-) Я приму ответ через несколько дней, если никто не найдет лучшего решения. Благодарность!
Том Харрисон-младший
@TomHarrisonJr, хотя вы отметили это как правильное - я подозреваю, что это было сделано неохотно? Каким было ваше окончательное решение?
Андрей
2
@Andrew Хотя это и правильный ответ, краткий ответ: «AWS не имеет внутренней службы DNS», поэтому вам нужно выполнить свою собственную. Я фанат MaraDNS - простой, легко управляемый с помощью текстовых файлов, легкий и т. Д. Если вы действительно не хотите выставлять свои частные серверы через DDNS или Route53, это было бы способом, которым я делал это в прошлом.
Том Харрисон-младший
6

Из документации AWS VPC видно, что рекомендуемый подход к использованию DNS-сервера внутри AWS VPC заключается в том, чтобы сначала создать набор параметров DHCP и связать его с VPC. Затем вы можете установить 1-4 DNS-сервера в этом VPC. Кроме того, набор параметров DHCP позволит вам настроить следующее для всех содержащихся экземпляров VPC. (отрывается от документов)

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).
Оорта
источник
Спасибо, похоже, что AWS движется к некоторой внутренней инфраструктуре DNS ... постепенно. Мой вопрос в то время был, есть ли какая-либо альтернатива для размещения моего собственного внутреннего DNS. Как это происходит (сейчас в новой компании), мы используем Route53 для внутреннего DNS и просто добавляем префикс к имени. Например, публичное имя хоста может быть, foo.example.comа его внутренний аналог - i.foo.example.comадресом 10.xxx. Это имеет некоторые проблемы безопасности, которые могут подвергнуть наши внутренние органы воздействию, но они ограничены.
Том Харрисон-младший
2
Amazon теперь поддерживает частные размещенные зоны, которые разрешают разрешение DNS, которое разрешается только через DNS-серверы Amazon от VPC, связанных с закрытой размещенной зоной. docs.aws.amazon.com/Route53/latest/DeveloperGuide/…
jnt30
4

Разве что-то вроде Avahi не сработает? Это даже установлено и красиво упаковано для большинства дистрибутивов Linux. Просто дайте каждому экземпляру, который должен быть доступен, уникальное имя хоста, и Боб станет вашим дядей.

Майкл Хэмптон
источник
1
Работа в сети AWS странная ... Я бы не предполагал, что Avahi действительно будет работать. Тем не менее, не нужно много, чтобы проверить это.
womble
Это было бы интересным решением, так как это означало бы, что я должен был назвать только свои экземпляры, а остальное - волшебство. Но документации очень мало, и мне не сразу было понятно, подходит ли это для среды производственного сервера. Я буду иметь это в виду - спасибо.
Том Харрисон-младший