Come faccio a montare Amazon EFS utilizzando il nome DNS EFS su una macchina Linux collegata ad AWS Managed Microsoft AD?

7 minuti di lettura
0

Sto utilizzando il servizio di directory AWS per AWS Managed Microsoft AD. Ho collegato le mie istanze Amazon Elastic Compute Cloud (Amazon EC2) Linux al dominio Active Directory. Di conseguenza, non riesco a montare Amazon Elastic File System (Amazon EFS) utilizzando il nome DNS EFS. Come posso risolvere questo problema?

Breve descrizione

Quando si collega una macchina Linux ad AWS Managed Microsoft AD, l’istanza vine configurata in modo che usi i server DNS per Active Directory.

Per AWS Managed Microsoft AD, tutte le richieste DNS vengono inoltrate all'indirizzo IP dei server DNS forniti da Amazon per il VPC. Questi server DNS risolvono i nomi configurati nelle zone ospitate private di Amazon Route 53. Se si non utilizzano zone ospitate private di Route 53, le richieste DNS vengono inoltrate a server DNS pubblici. Se non esistono zone ospitate private per i servizi AWS che si utilizzano, le richieste DNS vengono inoltrate a server DNS pubblici. Ciò significa che il DNS dei servizi AWS può essere risolto soltanto su indirizzi IP pubblici. Per ulteriori informazioni, consulta Configura il DNS.

Con Amazon EFS, il nome DNS del file system si risolve automaticamente nell'indirizzo IP della destinazione di montaggio nella zona di disponibilità dell'istanza Amazon EC2 di connessione. Si tratta di un indirizzo IP privato, che può essere risolto solo all'interno dello stesso VPC. Modificando i server DNS dal DNS predefinito fornito da VPC, l'EFS non è più in grado di risolvere l'indirizzo IP e il montaggio tramite DNS non riesce. Per ulteriori informazioni, consulta Montaggio su Amazon EC2 con un nome DNS.

Esempio di problema

In questo esempio viene utilizzato AWS Managed Microsoft AD. I server DNS forniti sono 172.31.28.100 e 172.31.4.147. Il file system EFS è stato creato nello stesso VPC con destinazione di montaggio 172.31.47.69.

1.    Utilizzando netcat, conferma che l'istanza EC2 sia in grado di stabilire una connessione con la destinazione di montaggio 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.    Sul server Linux EC2, è possibile installare l’EFS utilizzando il nome DNS. L'EFS viene quindi smontato.

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.    Il file /etc/resolv.conf mostra il DNS e il server dei nomi forniti da 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.    Sul server Linux EC2, integra Microsoft AD e configura i server DNS di 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.    Verifica che i server DNS siano configurati controllando il file 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.    Esegui dig sul file system per verificare che l'IP privato di destinazione di montaggio non venga restituito:

$ 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 richiesta DNS non si risolve in alcun record A e lo stato è NXDOMAIN.

7.    Non è possibile montare l'EFS utilizzando il nome 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.

Utilizzando il server dei nomi fornito da Amazon per il VPC, l’operazione si risolve correttamente:

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

Risoluzione

Nota: Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia AWS CLI.

Configura i server di inoltro condizionale per Microsoft AD per inoltrare le richieste al DNS fornito da VPC Amazon. Questo metodo consente anche di risolvere il DNS di altri servizi AWS nei relativi indirizzi IP privati se si utilizza il DNS fornito da Active Directory.

A tale scopo, utilizza il comando dell’interfaccia AWS CLI per creare una regola di inoltro condizionale. La regola inoltra tutti i sottodomini di un dominio a un indirizzo IP specifico del server DNS. Ad esempio, puoi inoltrare tutte le richieste DNS per i sottodomini di amazonaws.com all'IP privato del DNS fornito da Amazon VPC.

Nota: L'indirizzo IP DNS fornito da Amazon VPC è l'indirizzo IP riservato alla base della gamma di rete IPv4 del VPC più due.

Per creare la regola di inoltro condizionale, esegui il comando dell’interfaccia AWS CLI create-conditional-forwarder sulla riga di comando dell'istanza Linux su cui desideri montare l'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

Utilizza i seguenti parametri:

  • directory-id - Inserisci l'ID directory AD.
  • remote-domain-name - È possibile specificare qualsiasi dominio. Questa regola viene applicata a tutti gli FQDN corrispondenti a questo dominio o a sottodominio.
  • dns-ip-addrs - Inserisci l'IP DNS fornito da Amazon VPC.

Ciò consente la risoluzione DNS del DNS EFS. Ora l'EFS può essere montato con il 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

È ora possibile montare l'EFS utilizzando il 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

Informazioni correlate

Come posso visualizzare un elenco delle istanze Amazon EC2 connesse ad Amazon EFS?

Come posso montare un volume Amazon EFS su AWS Batch in un ambiente di calcolo gestito?

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa