AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Como evito falhas de resolução de DNS na minha instância Linux do Amazon EC2?
Quero evitar falhas na resolução de DNS nas minhas instâncias de Linux do Amazon Elastic Compute Cloud (Amazon EC2).
Breve descrição
Para evitar falhas na resolução do DNS, aplique um cache DNS.
Se você usar um cache DNS para consultar recursos DNS externos, o cache responderá localmente à maioria das consultas de DNS recorrentes. Quando o cache faz isso, ele não interage com o resolvedor de DNS pela rede. É possível consultar recursos de DNS externos, como os exemplos a seguir:
- Amazon Relational Database Service (Amazon RDS)
- Amazon ElastiCache
- Amazon Simple Storage Service (Amazon S3)
É possível usar as seguintes etapas de resolução para todas as versões do Amazon Linux. Se você usa outra distribuição, consulte a documentação da sua distribuição:
- Para Debian, consulte Local caching [Cache local] no site do Debian.
- Para Ubuntu, consulte Dnsmasq no site do Ubuntu.
- Para Red Hat Enterprise Linux (RHEL), consulte How to configure DNS caching server with dnsmasq in RHEL [Como configurar o servidor de cache DNS com dnsmasq no RHEL] no site do Red Hat.
Resolução
Observação: As etapas de resolução a seguir usam 169.254.169.253 como o endereço IP do resolvedor de DNS. Se você usar um resolvedor de DNS diferente, substitua 169.254.169.253 pelo endereço IP do resolvedor de DNS.
Configure um cache DNS local com dnsmasq
Para configurar um cache DNS local, use dnsmasq. Para obter mais informações, consulte dnsmasq no site thekelleys.org.uk.
Conclua as etapas a seguir:
-
Para instalar o servidor dnsmasq, execute o seguinte comando:
sudo yum install -y dnsmasq -
Se sua instância for executada no Amazon Linux 2023 (AL2023), vá para a etapa 3. Para criar um usuário de sistema dedicado para executar o dnsmasq, execute os comandos a seguir:
sudo groupadd -r dnsmasq sudo useradd -r -g dnsmasq dnsmasqObservação: o dnsmasq normalmente é executado como usuário-raiz. No entanto, o usuário muda após a inicialização e elimina as permissões de raiz. Por padrão, o usuário é ninguém.
-
Para criar um backup do arquivo dnsmasq.conf, execute o comando a seguir:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.ori -
Para criar e abrir o arquivo de configuração /etc/dnsmasq.conf com o editor de texto vim, execute o seguinte comando:
sudo vim /etc/dnsmasq.confObservação: É possível usar qualquer editor de texto, como vi ou nano, para modificar o arquivo /etc/dnsmasq.conf.
-
No arquivo /etc/dnsmasq.conf, insira o seguinte conteúdo:
# Server Configuration listen-address=127.0.0.1 port=53 bind-interfaces user=dnsmasq group=dnsmasq pid-file=/var/run/dnsmasq.pid # Name resolution options resolv-file=/etc/resolv.dnsmasq cache-size=500 neg-ttl=60 domain-needed bogus-privObservação: A opção bogus-priv no dnsmasq faz com que uma pesquisa reversa de DNS falhe para intervalos de endereço IP privados que não estejam em /etc/hosts. Essa opção também pode fazer com que uma pesquisa reversa de DNS falhe para o arquivo de leasing do Protocolo de Configuração Dinâmica de Host (DHCP). Para realizar uma pesquisa reversa bem-sucedida, comente ou remova bogus-priv.
-
Crie o arquivo /etc/resolv.dnsmasq e defina o servidor de DNS da Amazon ou os servidores de nomes de domínio personalizados que você especificou nos conjuntos de opções DHCP. Execute o seguinte comando:
sudo bash -c "echo 'nameserver 169.254.169.253' > /etc/resolv.dnsmasq"Observação: Para mais informações sobre localizações de servidores DNS, consulte O que é DHCP? Também é possível ajustar a localização do servidor 169.254.169.253 ao criar uma imagem de máquina da Amazon (AMI) de uma instância com o cache dnsmasq para iniciar em outra nuvem privada virtual (VPC) com um CIDR diferente.
-
Para reiniciar o servidor dnsmasq e configurar o serviço para inicializar no boot, execute um dos seguintes comandos com base na sua distribuição.
Amazon Linux 1 (AL1):sudo service dnsmasq restart sudo chkconfig dnsmasq onAmazon Linux 2 (AL2) e AL2023:
sudo systemctl restart dnsmasq.service sudo systemctl enable dnsmasq.service -
Para verificar se o dnsmasq funciona corretamente, use o seguinte comando:
dig aws.amazon.com @127.0.0.1Se a resposta for semelhante ao exemplo a seguir, o cache do dnsmasq funciona conforme o esperado:
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.13.11 <<>> aws.amazon.com @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33958 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;aws.amazon.com. IN A ;; ANSWER SECTION: aws.amazon.com. 300 IN CNAME tp.8e49140c2-frontier.amazon.com. tp.8e49140c2-frontier.amazon.com. 9 IN CNAME dr49lng3n1n2s.cloudfront.net. dr49lng3n1n2s.cloudfront.net. 59 IN A 108.158.61.67 dr49lng3n1n2s.cloudfront.net. 59 IN A 108.158.61.79 dr49lng3n1n2s.cloudfront.net. 59 IN A 108.158.61.96 dr49lng3n1n2s.cloudfront.net. 59 IN A 108.158.61.102 ;; Query time: 2 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ... -
Defina o cache DNS dnsmasq como o resolvedor de DNS padrão.
Observação: Você deve suprimir o resolvedor de DNS padrão fornecido pelo DHCP. Para fazer isso, altere ou crie o arquivo /etc/dhcp/dhclient.conf.
Para AL2, execute o seguinte comando:sudo bash -c "echo 'supersede domain-name-servers 127.0.0.1, 169.254.169.253;' >> /etc/dhcp/dhclient.conf"Para AL2023, execute o seguinte comando:
sudo bash -c 'echo "DNS=127.0.0.1" >> /etc/systemd/resolved.conf' sudo bash -c 'echo "DNS=169.254.169.253" >> /etc/systemd/resolved.conf'Observação: O AL2023 usa systemd-networkd como o resolvedor de DNS padrão.
-
Para aplicar a alteração, execute o seguinte comando com base na sua distribuição Linux:
AL2:
sudo dhclient
AL2023:
sudo systemctl restart systemd-resolved.service
-ou-
Para reiniciar o serviço de rede, execute o seguinte comando:
sudo systemctl restart network
-ou-
Para reinicializar sua instância, execute o seguinte comando:
sudo reboot
- Para verificar se sua instância usa o cache DNS, execute o seguinte comando:
dig aws.amazon.com
Se a saída mostrar que o servidor de resposta é 127.0.0.1, o cache DNS funciona conforme o esperado.
Exemplo de saída:
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.13.11 <<>> aws.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29129 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;aws.amazon.com. IN A ;; ANSWER SECTION: aws.amazon.com. 297 IN CNAME tp.8e49140c2-frontier.amazon.com. tp.8e49140c2-frontier.amazon.com. 25 IN CNAME dr49lng3n1n2s.cloudfront.net. dr49lng3n1n2s.cloudfront.net. 41 IN A 108.158.61.102 dr49lng3n1n2s.cloudfront.net. 41 IN A 108.158.61.96 dr49lng3n1n2s.cloudfront.net. 41 IN A 108.158.61.79 dr49lng3n1n2s.cloudfront.net. 41 IN A 108.158.61.67 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) <------------- ...
Automatize o dnsmasq para novas instâncias
Para automatizar a instalação e a configuração do dnsmasq como um resolvedor de DNS no Amazon Linux, use uma destas opções:
- Use o script bash AutomateDnsmasq.sh. Para baixar o arquivo, consulte AutomateDnsmasq.sh no site do GitHub.
- Use as diretivas AutomateDnsmasq.cloudinit. Para baixar o arquivo, consulte AutomateDnsmasq.cloudinit no site do GitHub.
Para automatizar a instalação do dnsmasq em outras distribuições Linux, use um dos arquivos anteriores para fazer a personalização necessária. Para qualquer um dos arquivos, se você usar o endereço alternativo do servidor de DNS da Amazon 169.254.169.253, os arquivos poderão ser executados em instâncias de VPC.
Para executar qualquer um dos arquivos na inicialização, insira o conteúdo do arquivo em Dados do usuário. É possível usar os comandos de execução do AWS Systems Manager para executar o script bash. É uma prática recomendada usar as diretivas somente para a inicialização no primeiro boot.
Para executar o script Bash como um script autônomo, conclua as seguintes etapas:
-
Para baixar o script em sua instância e torná-lo executável, execute o seguinte comando:
wget https://raw.githubusercontent.com/awslabs/aws-support-tools/master/EC2/AutomateDnsmasq/AutomateDnsmasq.sh chmod +x AutomateDnsmasq.sh -
Para executar o script, execute o seguinte comando como usuário-raiz:
sudo ./AutomateDnsmasq.sh
Informações relacionadas
- Tópicos
- Compute
- Tags
- LinuxAmazon EC2
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há 6 meses
- feita há 9 meses
- feita há 9 meses