¿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?

7 minutos de lectura
0

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?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años