DNS interno dentro de Amazon AWS VPC

21

Estoy empezando a entender VPC pero no veo una buena solución interna de DNS. Por ejemplo, estamos utilizando un servidor de base de datos no RDS al que se conectan otros servidores en la VPC. Me gustaría conectar por nombre, no por IP. En parte, esto es para que pueda obtener una dirección interna 10.xxx, que presumiblemente es más rápida. Principalmente, hace que la configuración sea más fácil, más legible y más flexible.

En los viejos tiempos (alrededor de 2008), antes de la VPC, tenía un servidor que ejecutaba MaraDNS que actualizaríamos a medida que comenzábamos y cambiaban las instancias, y esto fue un gran problema, en particular porque los servidores obtendrían sus propias direcciones internas asignadas por DHCP cuando se reiniciaron, y solo porque era otra cosa con la que lidiar. Algunos colegas míos que ejecutan diferentes sistemas pensaron que era un idiota por hacer todo este esfuerzo: simplemente actualizaron los archivos / etc / hosts (lo cual fue excelente hasta que hubo una interrupción y todos sus servidores regresaron con nuevas IP).

¿Debo estar mirando Route53 (donde estamos haciendo todo nuestro DNS público) o hay algo que me falta?

Actualización: 2017 - El DNS interno ahora es una característica de la Ruta 53. ¡Woot!

Tom Harrison Jr
fuente
Esta es realmente una gran pregunta, algo en lo que he estado luchando para encontrar una solución también. Estaría muy dispuesto a ofrecer una buena recompensa por esto para tratar de atraer una gran respuesta.
EEAA
Las instancias de VPC pueden tener direcciones IP privadas fijas, entonces, ¿por qué ejecutar su propio servidor DNS no es una opción?
Dusan Bajic
@ dusan.bajic: ejecutaré mi propio servidor DNS si debo hacerlo, pero como dije en la pregunta, es solo otra cosa para administrar, monitorear y seguir trabajando. Tenía la esperanza de que me faltaba algo que AWS había agregado ... supongo que no :-)
Tom Harrison Jr

Respuestas:

5

Las instancias deben registrar sus nombres DNS con sus servidores DNS a través de DDNS cuando comiencen (como CNAME para su FQDN público asignado por AWS); de esa manera puede referirse a ellos por nombre conocido y obtener la dirección más apropiada (interna o externa) independientemente de dónde se encuentre. Route53 probablemente tiene este tipo de magia incorporada, pero prefiero soluciones independientes del proveedor siempre que sea posible.

womble
fuente
99
Route53 no lo tiene incorporado, que yo sepa.
ceejayoz
1
@womble: esperaba la magia de la que hablas en Route53, pero no veo nada. Los servidores están dentro de una VPC, por lo que no hay un FQDN público, pero hay una IP estática (estable) que podría registrar con un registro A utilizando las herramientas de la CLI de Route53. Así que esta es una buena idea y es mejor que configurar y administrar mi propio servidor DNS. Realmente no entiendo por qué AWS no nos permite asignar nuestros propios nombres de host direccionables por DNS como parte de la creación de la instancia. Suspiro :-) Aceptaré la respuesta en unos días si nadie más tiene una solución mejor. ¡Gracias!
Tom Harrison Jr
@TomHarrisonJr, aunque marcó esto como correcto, ¿sospecho que se hizo a regañadientes? ¿Cuál fue tu solución final?
Andrew
2
@Andrew Si bien esta es una respuesta válida, la respuesta corta es "AWS no tiene ningún servicio de DNS interno" y, por lo tanto, debe implementar la suya. Soy fanático de MaraDNS: simple, fácil de administrar a través de archivos de texto, ligero, etc. Si realmente no desea exponer sus servidores privados a través de DDNS o Route53, esta sería la forma en que lo hice en el pasado.
Tom Harrison Jr
6

De la documentación de la VPC de AWS parece que el enfoque recomendado para aprovechar un servidor DNS dentro de una VPC de AWS es crear primero un Conjunto de opciones de DHCP y asociarlo con la VPC. Entonces puede poner de pie 1-4 servidores DNS en esa VPC. Además, el conjunto de opciones de DHCP le permitirá configurar lo siguiente para todas las instancias de VPC contenidas. (recortado de los documentos)

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
fuente
Gracias, parece que AWS se está moviendo hacia una infraestructura DNS interna ... gradualmente. Mi pregunta en ese momento era si había alguna alternativa para alojar mi propio DNS interno. Como sucede (ahora en una nueva compañía) estamos usando Route53 para DNS interno y solo tenemos el prefijo del nombre. Por ejemplo, un nombre de host público podría ser foo.example.comy su contraparte interna es i.foo.example.com, cuya dirección es la dirección 10.xxx. Esto tiene algunos problemas de seguridad de exponer potencialmente nuestras partes internas, pero es limitado.
Tom Harrison Jr
2
Amazon ahora admite zonas privadas alojadas, que permiten una resolución de DNS que está restringida a ser resuelta solo a través de servidores DNS de Amazon desde VPC asociadas con la zona privada alojada. docs.aws.amazon.com/Route53/latest/DeveloperGuide/…
jnt30
4

¿No funcionaría algo como Avahi ? Esto incluso está instalado y bien empaquetado para la mayoría de las distribuciones de Linux. Solo dale a cada instancia que necesite un nombre de host único y Bob es tu tío.

Michael Hampton
fuente
1
Las redes de AWS son raras ... No necesariamente asumiría que Avahi realmente funcionaría. Sin embargo, no se necesita mucho para probarlo.
womble
Esta sería una solución interesante ya que significaría que solo tenía que nombrar mis instancias y el resto es mágico. Pero hay muy poco documento, y no me quedó claro de inmediato si esto era adecuado para un entorno de servidor de producción. Lo tendré en cuenta, gracias.
Tom Harrison Jr