Come faccio a montare Amazon EFS utilizzando il nome DNS EFS su una macchina Linux collegata ad AWS Managed Microsoft AD?
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?
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 4 anni fa
- AWS UFFICIALEAggiornata 2 anni fa