Como faço para montar o Amazon EFS usando o nome EFS DNS em uma máquina Linux que está associada ao AWS Managed Microsoft AD?
Estou usando o AWS Directory Service para o AWS Managed Microsoft AD. Juntei minhas instâncias Linux do Amazon Elastic Compute Cloud (Amazon EC2) ao domínio do Active Directory. Como resultado, não consigo montar o Amazon Elastic File System (Amazon EFS) usando o nome DNS do EFS. Como posso resolver esse problema?
Breve descrição
Ao unir sua máquina Linux ao AWS Managed Microsoft AD, você configura sua instância para usar os servidores DNS do seu Active Directory.
Para o AWS Managed Microsoft AD, todas as solicitações de DNS são encaminhadas para o endereço IP dos servidores DNS fornecidos pela Amazon para sua VPC. Esses servidores DNS resolvem nomes que estão configurados em suas zonas hospedadas privadas do Amazon Route 53. Se você não estiver usando zonas hospedadas privadas do Route 53, suas solicitações de DNS serão encaminhadas para servidores DNS públicos. Se não existir uma zona hospedada privada para seus serviços da AWS, as solicitações de DNS serão encaminhadas para servidores DNS públicos. Isso significa que eles só podem resolver o DNS dos serviços da AWS para endereços IP públicos. Para mais informações, consulte Configurar o DNS.
Com o Amazon EFS, o nome DNS do sistema de arquivos é automaticamente resolvido para o endereço IP do destino de montagem na zona de disponibilidade da instância conectada do Amazon EC2. Esse é um endereço IP privado, que só pode ser resolvido na mesma VPC. Ao alterar os servidores DNS do DNS padrão fornecido pelo VPC, o EFS não consegue mais resolver o endereço IP, portanto, a montagem por DNS falha. Para mais informações, consulte Montagem no Amazon EC2 com um nome DNS.
Exemplo de problema
Este exemplo usa o AWS Managed Microsoft AD. Os servidores DNS fornecidos são 172.31.28.100 e 172.31.4.147. O sistema de arquivos EFS foi criado na mesma VPC com o destino de montagem 172.31.47.69.
1. Usando o netcat, confirme se a instância do EC2 pode estabelecer uma conexão com o destino de montagem 172.31.47.69 do EFS:
$ nc -vz 172.31.47.69 2049 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.31.47.69:2049. Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
2. No servidor Linux do EC2, você pode montar o EFS usando o nome DNS. O EFS é então desmontado.
sudo mount -t efs -o tls fs-123456:/ efs df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 475M 0 475M 0% /dev tmpfs tmpfs 483M 0 483M 0% /dev/shm tmpfs tmpfs 483M 516K 483M 1% /run tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup /dev/xvda1 xfs 8.0G 1.6G 6.5G 19% / tmpfs tmpfs 97M 0 7M 0% /run/user/0 tmpfs tmpfs 97M 0 97M 0% /run/user/1000 127.0.0.1:/ nfs4 8.0E 0 8.0E 0% /home/ec2-user/efs sudo umount /efs
3. O arquivo /etc/resolv.conf mostra o DNS e o nameserver fornecidos pela Amazon:
cat /etc/resolv.conf ; generated by /usr/sbin/dhclient-script search eu-west-2.compute.internal options timeout:2 attempts:5 nameserver 172.31.0.2
4. No servidor Linux do EC2, integre o Microsoft AD e, em seguida, configure os servidores DNS do Active Directory:
echo 'supersede domain-name-servers 172.31.28.100, 172.31.4.147;' | sudo tee --append /etc/dhcp/dhclient.conf echo 'supersede domain-search "rachel.com";' | sudo tee --append /etc/dhcp/dhclient.conf sudo dhclient -r sudo dhclient
5. Confirme se os servidores DNS estão configurados verificando o arquivo resolv.conf:
cat /etc/resolv.conf options timeout:2 attempts:5 ; generated by /usr/sbin/dhclient-script search rachel.com. eu-west-2.compute.internal nameserver 172.31.28.100 nameserver 172.31.4.147
6. Execute dig no sistema de arquivos para ver se o IP privado de destino da montagem não foi retornado:
$ dig fs-123456.efs.eu-west-2.amazonaws.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> fs-123456.efs.eu-west-2.amazonaws.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 57378 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;fs-123456.efs.eu-west-2.amazonaws.com. IN A
Observação: a solicitação de DNS não é resolvida para nenhum registro A e o status mostra NXDOMAIN.
7. A montagem do EFS usando o nome DNS falha:
sudo mount -t efs -o tls fs-123456:/ efs Failed to resolve "fs-123456.efs.eu-west-2.amazonaws.com" - check that your file system ID is correct, and ensure that the VPC has an EFS mount target for this file system ID. See https://docs.aws.amazon.com/console/efs/mount-dns-name for more detail. Attempting to lookup mount target ip address using botocore. Failed to import necessary dependency botocore, please install botocore first.
Se você usa o servidor de nomes fornecido pela Amazon para o VPC, observe que ele resolve com êxito:
dig @172.31.0.2 fs-123456.efs.eu-west-2.amazonaws.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> fs-123456.efs.eu-west-2.amazonaws.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24926 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;fs-123456.efs.eu-west-2.amazonaws.com. IN A ;; ANSWER SECTION: fs-123456.efs.eu-west-2.amazonaws.com. 60 IN A 172.31.25.79
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.
Configure encaminhadores condicionais para seu Microsoft AD para encaminhar solicitações para o DNS fornecido pelo Amazon VPC. Esse método também funciona para resolver o DNS de outros serviços da AWS em seus endereços IP privados, se você usar o DNS fornecido pelo Active Directory.
Para fazer isso, use o comando da CLI da AWS para criar uma regra de encaminhamento condicional. Isso encaminha todos os subdomínios de um domínio para um IP de servidor DNS específico. Por exemplo, você pode encaminhar todas as solicitações de DNS para subdomínios de amazonaws.com para o IP privado do DNS fornecido pela Amazon VPC.
Observação: o IP DNS fornecido pela Amazon VPC é o endereço IP reservado na base do intervalo de rede IPv4 do VPC mais dois.
Para criar a regra do encaminhador condicional, execute o comando create-conditional-forwarder da AWS CLI na linha de comando da instância Linux na qual você deseja montar o EFS:
aws ds create-conditional-forwarder --directory-id d-9c671fb35f --remote-domain-name amazonaws.com --dns-ip-addrs 172.31.0.2 --region eu-west-2
Use os seguintes parâmetros:
- directory-id - insira o ID do diretório AD.
- remote-domain-name - Você pode especificar qualquer domínio. Essa regra é aplicada a todos os FQDN correspondentes a esse domínio ou subdomínios.
- dns-ip-addrs - Insira o IP DNS fornecido pela Amazon VPC.
Isso permite a resolução de DNS do EFS DNS e o EFS agora pode ser montado com o nome DNS.
dig fs-123456.efs.eu-west-2.amazonaws.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> fs-123456.efs.eu-west-2.amazonaws.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24926 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;fs-123456.efs.eu-west-2.amazonaws.com. IN A ;; ANSWER SECTION: fs-123456.efs.eu-west-2.amazonaws.com. 60 IN A 172.31.25.79
O EFS agora pode ser montado usando o nome DNS.
sudo mount -t efs -o tls fs-123456:/ efs [ec2-user@ip-172-31-35-167 ~]$ df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 475M 0 475M 0% /dev tmpfs tmpfs 483M 0 483M 0% /dev/shm tmpfs tmpfs 483M 520K 483M 1% /run tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup /dev/xvda1 xfs 8.0G 1.6G 6.5G 19% / tmpfs tmpfs 97M 0 97M 0% /run/user/0 tmpfs tmpfs 97M 0 97M 0% /run/user/1000 127.0.0.1:/ nfs4 8.0E 0 8.0E 0% /home/ec2-user/efs
Informações relacionadas
Como vejo uma lista das minhas instâncias do Amazon EC2 que estão conectadas ao Amazon EFS?
Como posso montar um volume do Amazon EFS no AWS Batch em um ambiente computacional gerenciado?
Conteúdo relevante
- AWS OFICIALAtualizada há 19 dias
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos