Alterar dns privados no AWS?

4

Existe uma maneira de alterar o DNS privado de um servidor EC2?

Eu quero poder me comunicar entre meus servidores com algo como myserver.example.com em vez de ip-1.1.1.1-uswest-aws-internal. Eu sou novo no papel sysadmin, bem como em redes. Eu tentei brincar com conjuntos de opções DHCP no VPC, mas não consegui fazê-lo funcionar.

EDIT # 1

Para esclarecer o que estou tentando alcançar ... Estou montando o Jenkins que irá executar escravos em vários servidores. Eu queria poder usar meus próprios endereços atribuídos em vez de arbitrários, então faz mais sentido que dependa de qual máquina um trabalho está sendo executado.

Também tenho certeza de que tornaria outras comunicações entre servidores mais fáceis no futuro também. Como eu disse, eu sou novo em sysadmin, então se houver um método mais fácil que eu esteja perdendo, me avise.

    
por riotburn 08.02.2014 / 01:55

5 respostas

7

Se você quiser acessar seus servidores pelo my-dns-name, precisará configurar seu próprio servidor DNS.

Por padrão, o AWS VPC lida com o DHCP para você e vem com o servidor DNS da Amazon.

Você pode ler as opções para fornecer seu próprio servidor DNS aqui: link

DHCP Option Name: domain-name-servers

The IP addresses of up to four domain name servers, or AmazonProvidedDNS. The default DHCP option set specifies AmazonProvidedDNS.

DHCP Option Name: domain-name

If you're using AmazonProvidedDNS in US East (Northern Virginia) Region, specify compute-1.amazonaws.com. If you're using AmazonProvidedDNS in another region, specify region.compute.amazonaws.com. Otherwise, specify a domain name (for example, MyCompany.com).

Outras notas relacionadas:

Se você quiser usar um FQDN (myserver.example.com) para se comunicar, você pode fazer isso sem o seu próprio servidor DNS, seus domínios já estão acessíveis publicamente.

Você pode se comunicar com o Endereço IP ', Privado ou Público, pode alterar IPs privados no nível do sistema operacional, alterar nomes de host no nível do sistema operacional e aproveitar o / etc / hosts para ter um tipo de DNS deficiente. / p>

Você pode sempre querer ver ElasticIPs, Elastic Network Interface e Elastic Load Balancers, que são reproduzidos no mesmo espaço que o seu qestion.

Tudo depende do que você está tentando alcançar e de como você quer fazer isso!

    
por 08.02.2014 / 02:18
5

Não é possível alterá-lo, a menos que você implante seus próprios servidores de nomes, mas você pode referenciá-lo com outro nome, criando um CNAME record, que terá o efeito desejado.

Na sua zona DNS "example.com", seja no Route 53 ou hospedada com outro provedor de hospedagem DNS, você deve conseguir criar CNAME records:

myserver IN CNAME ip-1.1.1.1-uswest-aws-internal.

Quando uma máquina tenta resolver "myserver.example.com" será, essencialmente, informada pelos servidores DNS "example.com" que deve procurar o hostname "real" interno (o " c anonical nome "). Se a máquina estiver dentro da sua implantação do EC2, ela solicitará ao resolvedor de DNS do EC2 que o examine, e o resolvedor do EC2, por sua vez, retornará o endereço IP interno ... levando ao comportamento desejado - você pode acessar seu interno máquinas pelos nomes de host desejados.

Se um sistema fora da sua implantação do EC2 pesquisar esse nome de host, ele falhará, que é o comportamento correto, já que a máquina não é acessível de fora (se tiver apenas um IP privado).

Por outro lado, se você tiver uma máquina com um IP público e um nome de host público correspondente, como ec2-x-x-x-x.us-west-2.compute.amazonaws.com usando esse nome de host como o CNAME target fará a mesma coisa. Quando consultado por dentro da sua EC2, o resultado será o endereço IP interno através de alguma mágica de DNS que o EC2 faz de forma transparente ... ou de fora, ele retornará o endereço IP público externo.

link

Esclarecimento:

Existem dois tipos de comportamento de servidor DNS - servidores "autoritativos" responderão a uma solicitação de qualquer host por qualquer registro de recurso para o qual sejam autoritários ... e "resolvedores" recursivos, que consultam o DNS global em nome de seus clientes autorizados. Também é possível que um servidor DNS execute ambas as funções.

Suas instâncias do EC2 (por padrão) usam os servidores de resolução da AWS para procurar qualquer nome de host, dentro e fora dela, que suas instâncias tentam acessar e retornar um endereço IP ... mas o resolvedor da AWS também é autoritativo para " .internal "pseudo-domínio, portanto, quando as instâncias tentam procurar hosts" .internais ", o IP interno correto é retornado.

Agora, suponha que você configure nomes de host internos como destinos CNAME nos servidores DNS externos "example.com" e tente procurar internamente "myserver.example.com" ... o resolvedor AWS consulta a hierarquia DNS global e acaba pedindo a um dos servidores de nomes autoritativos "myserver.example.com". A resposta será essencialmente dizer "tudo o que sei é que para encontrar myserver.example.com, você deve procurar ip-1.1.1.1-uswest-aws-internal" ... o resolvedor AWS percebe que não precisa consultar um entidade externa para responder a esta nova pergunta, porque é autoritária para o domínio interno falso, simplesmente responde com a resposta correta, que já sabe.

O "example.com" externo não precisa nem tenta validar o destino CNAME, pois esse não é o seu trabalho.

Agora, se o CNAME referir-se ao hostname externo, o processo é o mesmo e o resultado é o mesmo, porque o resolvedor AWS (que lida com todas as consultas DNS feitas por suas máquinas internas) não tenta procurar o endereço IP verdadeiro e correto dos servidores DNS que são autoritativos para o domínio "compute.amazonaws.com" ... em vez disso, ele mais uma vez acredita, por causa de seu design, que já conhece o endereço IP de seu nome de host externo. mas a resposta será novamente o seu endereço IP privado interno.

O resolvedor da AWS de que estou falando, acima, é uma entidade virtual que é somente acessível a suas instâncias. As informações que ele contém sobre o nome do host público para o mapeamento IP privado só podem ser acessadas por suas instâncias quando elas são consultadas. Não é acessível externamente.

Se você fornecer um nome de host interno como um destino CNAME, as consultas externas receberão a resposta "interna", que para elas será um beco sem saída. Se você fornecer nomes de host externos como o destino CNAME, eles acabarão com o IP público, pois a localização do CNAME os direcionará para os servidores DNS autoritários públicos, não para o resolvedor interno privado que apenas suas instâncias podem acessar.

Na verdade, isso é tudo muito simples na prática, embora não tão simples de explicar aqui, porque muitos dos fundamentos do DNS precisam ser entendidos primeiro ... mas isso, no final das contas, funciona porque o DNS "example.com" servidores simplesmente não se importam se você configurá-los com um CNAME eles entendem. Não é problema deles compreendê-lo - o ônus está no resolvedor que está procurando uma resposta para dar sentido final à resposta intermediária que aparece no CNAME.

    
por 08.02.2014 / 04:40
1

Eu tive exatamente o mesmo problema. Embora meus domínios sejam gerenciados fora da Amazon, usei o Amazon Route 53 para criar um nome de host privado e adicionei um registro CNAME, apontando-o para o nome DNS privado da AWS da instância. O problema era que, embora isso resolvesse coisas para subdomínios, ele não funcionava para a raiz "example.com", pois isso quebra as regras do CNAME.

Eu já excluí a entrada CNAME e a substitui por dois registros A (example.com e * .example.com) apontando para meu IP público. Eu usei um IP Elástico público, pois no meu caso de uso sempre será o mesmo, mas sua situação pode ser diferente. Você deveria poder usar seu IP privado, mas eu não testei isso.

Devo salientar que meus servidores eram baseados no Windows, embora isso não deva fazer diferença. Eu encontrei usando NSLOOKUP example.com em um prompt de comando útil para monitorar as alterações, conforme sugerido por outros posts aqui. Eu também considerei vital que qualquer alteração que você faça tenha um valor de TTL muito baixo, de modo que as mudanças se apliquem o mais rápido possível ... O menor preset do Amazon Route 53 é de 60 segundos, mas pode ir mais baixo. Tenho certeza de que configurar o A-record foi uma das primeiras coisas que tentei, mas não se propagou imediatamente, então passei horas indo por becos sem saída.

    
por 08.02.2015 / 09:56
1

Você pode conseguir isso facilmente com a zona hospedada privada na rota 53 link

    
por 02.04.2017 / 06:43
0
  1. Você precisa do seu próprio servidor DNS, como o nome.
  2. Veja o link . A opção domain-name-servers é a única a ser alterada.
por 08.02.2014 / 02:13