¿Cómo puedo montar Amazon EFS con el nombre de DNS de EFS en una máquina Linux que está unida a AWS Managed Microsoft AD?
Utilizo AWS Directory Service para AWS Managed Microsoft AD. He unido mis instancias de Linux de Amazon Elastic Compute Cloud (Amazon EC2) al dominio de Active Directory. Como resultado, no puedo montar Amazon Elastic File System (Amazon EFS) con el nombre de DNS de EFS. ¿Cómo puedo resolver este problema?
Descripción breve
Al unir su máquina Linux a AWS Managed Microsoft AD, estará configurando su instancia para usar los servidores DNS de su Active Directory.
En el caso de AWS Managed Microsoft AD, todas las solicitudes de DNS se reenvían a la dirección IP de los servidores DNS proporcionados por Amazon para su VPC. Estos servidores DNS resuelven los nombres que están configurados en sus zonas alojadas privadas de Amazon Route 53. Si no utiliza zonas alojadas privadas de Route 53, sus solicitudes de DNS se reenvían a servidores DNS públicos. Si no existe ninguna zona alojada privada para sus servicios de AWS, las solicitudes de DNS se reenvían a servidores DNS públicos. Esto significa que ellos solo pueden resolver DNS de servicios de AWS en direcciones IP públicas. Para obtener más información, consulte Configuración de DNS.
Con Amazon EFS, el nombre de DNS del sistema de archivos se resuelve automáticamente en la dirección IP del destino de montaje en la zona de disponibilidad de la instancia de Amazon EC2 que se conecta. Se trata de una dirección IP privada que solo se puede resolver dentro de la misma VPC. Al cambiar los servidores DNS del DNS predeterminado proporcionado por VPC, EFS ya no puede resolver la dirección IP, por lo que no se puede montar mediante DNS. Para obtener más información, consulte Montaje en Amazon EC2 con un nombre DNS.
Ejemplo de problema
En este ejemplo se utiliza AWS Managed Microsoft AD. Los servidores DNS proporcionados son 172.31.28.100 y 172.31.4.147. El sistema de archivos EFS se creó en la misma VPC con el destino de montaje 172.31.47.69.
1. Con netcat, confirme que la instancia EC2 puede establecer una conexión con el destino de montaje de EFS 172.31.47.69:
$ 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. En el servidor Linux EC2 puede montar EFS con el nombre DNS. A continuación, se desmonta EFS.
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. El archivo /etc/resolv.conf muestra el DNS y el servidor de nombres proporcionados por 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. En el servidor Linux EC2, integre Microsoft AD y, a continuación, configure los servidores DNS de 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 que los servidores DNS estén configurados consultando el archivo 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. Ejecute una búsqueda en el sistema de archivos para comprobar que no se devuelva la IP privada del destino del montaje:
$ 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
Nota: La solicitud de DNS no se resuelve en ningún registro A y el estado muestra NXDOMAIN.
7. Se produce un error al montar EFS mediante el nombre DNS:
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.
Si utiliza el servidor de nombres proporcionado por Amazon para la VPC, asegúrese de que se haya resuelto correctamente:
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
Resolución
Nota: Si obtiene errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la última versión de AWS CLI.
Configure reenviadores condicionales para que su Microsoft AD reenvíe las solicitudes al DNS proporcionado por Amazon VPC. Este método también sirve para resolver el DNS de otros servicios de AWS en sus direcciones IP privadas, si utiliza el DNS proporcionado por Active Directory.
Para ello, utilice el comando AWS CLI para crear una regla de reenviador condicional. Esto reenvía todos los subdominios de un dominio a una IP de servidor DNS específica. Por ejemplo, puede reenviar todas las solicitudes de DNS de los subdominios de amazonaws.com a la IP privada del DNS proporcionado por Amazon VPC.
Nota: La IP de DNS proporcionada por Amazon VPC es la dirección IP reservada en la base del rango de redes IPv4 de VPC más dos.
Para crear la regla de reenviador condicional, ejecute el comando AWS CLI create-conditional-forwarder en la línea de comandos de la instancia de Linux en la que desea montar el 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
Utilice los parámetros siguientes:
- directory-id: introduzca el ID del directorio de AD.
- remote-domain-name: puede especificar cualquier dominio. Esta regla es válida para todos los FQDN que coincidan con este dominio o subdominios.
- dns-ip-addrs: introduzca la IP de DNS proporcionada por Amazon VPC.
Esto permite la resolución de DNS del DNS de EFS y EFS ahora se puede montar con el nombre de 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
EFS ahora se puede montar con el nombre de 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
Información relacionada
¿Cómo puedo ver una lista de mis instancias de Amazon EC2 que están conectadas a Amazon EFS?
¿Cómo puedo montar un volumen de Amazon EFS en AWS Batch en un entorno informático administrado?
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año