DNS interne dans Amazon AWS VPC


21

Je commence à comprendre le VPC mais je ne vois pas une bonne solution DNS interne. Par exemple, nous utilisons un serveur de base de données non RDS auquel d'autres serveurs du VPC se connectent. Je souhaite me connecter par nom et non par IP. C'est en partie pour que je puisse obtenir une adresse 10.xxx interne, ce qui est probablement plus rapide. Généralement, cela rend la configuration plus facile, plus lisible et plus flexible.

Autrefois (vers 2008), avant le VPC I, j'avais un serveur qui exécutait MaraDNS que nous mettions à jour au fur et à mesure que nous commencions et changions d'instances, et c'était très difficile, en particulier parce que les serveurs obtiendraient leurs propres adresses internes attribuées par DHCP quand ils ont redémarré, et juste parce que c'était une autre chose à gérer. Certains de mes collègues exécutant différents systèmes pensaient que j'étais un idiot pour avoir fait tout cet effort - ils ont juste mis à jour les fichiers / etc / hosts (ce qui était génial jusqu'à ce qu'il y ait une panne et que tous leurs serveurs reviennent avec de nouvelles adresses IP).

Dois-je regarder Route53 (où nous faisons tous nos DNS publics) ou y a-t-il quelque chose qui me manque?

Mise à jour: 2017 - Le DNS interne est désormais une fonctionnalité de Route 53. Woot!


C'est en fait une excellente question, à laquelle j'ai du mal à trouver une solution également. Je serais très disposé à jeter une belle prime sur cela pour essayer d'attirer une excellente réponse.
EEAA

Les instances VPC peuvent avoir des adresses IP privées fixes, alors pourquoi exécuter votre propre serveur DNS n'est pas une option?
Dusan Bajic

@ dusan.bajic - J'exécuterai mon propre serveur DNS si je le dois, mais comme je l'ai dit dans la question, c'est juste une autre chose à gérer, surveiller et continuer à travailler. J'avais espéré qu'il me manquait quelque chose que AWS avait ajouté ... devinez pas :-)
Tom Harrison Jr

Réponses:


5

Les instances doivent enregistrer leurs noms DNS auprès de vos serveurs DNS via DDNS au démarrage (en tant que CNAME dans leur FQDN public attribué par AWS); de cette façon, vous pouvez vous y référer par un nom bien connu et obtenir l'adresse la plus appropriée (interne ou externe), où que vous soyez. Route53 a probablement ce genre de magie intégrée, mais je préfère les solutions indépendantes du fournisseur dans la mesure du possible.


9
Route53 ne l'a pas intégré, à ma connaissance.
ceejayoz

1
@womble - J'espérais la magie dont vous parlez dans Route53, mais ne voyez rien. Les serveurs sont dans un VPC donc il n'y a pas de FQDN public, mais il y a une IP statique (stable) que je pourrais enregistrer avec un enregistrement A en utilisant les outils CLI Route53. C'est donc une bonne idée et vaut mieux configurer et gérer mon propre serveur DNS. Je ne comprends pas vraiment pourquoi AWS ne nous laisse pas attribuer nos propres noms d'hôtes adressables DNS dans le cadre de la création d'instance. Soupir :-) J'accepterai la réponse dans quelques jours si personne d'autre n'a une meilleure solution. Merci!
Tom Harrison Jr

@ TomHarrisonJr bien que vous ayez marqué cela comme correct - je soupçonne que cela a été fait à contrecœur? Quelle a été votre solution finale?
Andrew

2
@Andrew Bien qu'il s'agisse d'une réponse valide, la réponse courte est "AWS n'a pas de service DNS interne" et vous devez donc lancer le vôtre. Je suis un fan de MaraDNS - simple, facilement géré via des fichiers texte, léger, etc. Si vous ne voulez vraiment pas exposer vos serveurs privés via DDNS ou Route53, ce serait la façon dont je l'ai fait dans le passé.
Tom Harrison Jr

6

Il semble, d'après la documentation d' AWS VPC , que l'approche recommandée pour tirer parti d'un serveur DNS à l'intérieur d'un AWS VPC consiste à créer d'abord un ensemble d'options DHCP et à l'associer au VPC. Ensuite, vous pouvez tenir debout 1-4 serveurs DNS dans ce VPC. De plus, l'ensemble d'options DHCP vous permettra de configurer les éléments suivants pour toutes les instances VPC contenues. (extrait des documents)

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).

Merci, il semble qu'AWS se dirige vers une infrastructure DNS interne ... progressivement. Ma question à l'époque était de savoir s'il existait une alternative à l'hébergement de mon propre DNS interne. En l'occurrence (maintenant dans une nouvelle entreprise), nous utilisons Route53 pour le DNS interne et nous préfixons simplement le nom. Par exemple, un nom d'hôte public peut être foo.example.comet son homologue interne est i.foo.example.com, dont l'adresse est l'adresse 10.xxx. Cela présente certains problèmes de sécurité susceptibles d'exposer nos composants internes, mais il est limité.
Tom Harrison Jr

2
Amazon prend désormais en charge les zones hébergées privées, ce qui permet une résolution DNS limitée à la résolution uniquement via des serveurs DNS Amazon à partir de VPC associés à la zone hébergée privée. docs.aws.amazon.com/Route53/latest/DeveloperGuide/…
jnt30

4

Est-ce que quelque chose comme Avahi ne fonctionnerait pas? Ceci est même installé et bien emballé pour la plupart des distributions Linux. Donnez simplement à chaque instance qui doit être accessible un nom d'hôte unique, et Bob est votre oncle.


1
La mise en réseau AWS est bizarre ... Je ne suppose pas nécessairement qu'Avahi fonctionnerait réellement. Cependant, cela ne prend pas beaucoup de temps pour le tester.
womble

Ce serait une solution intéressante car cela signifierait que je n'aurais qu'à nommer mes instances et le reste est magique. Mais il y a très peu de doc, et il n'était pas immédiatement clair pour moi si cela convenait à un environnement de serveur de production. Je garderai cela à l'esprit - merci.
Tom Harrison Jr
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.