Nozioni di base per l’utilizzo della CLI AWS con IPAM - Amazon Virtual Private Cloud

Nozioni di base per l’utilizzo della CLI AWS con IPAM

Questo tutorial illustra la procedura di configurazione e utilizzo di Gestione indirizzi IP (IPAM) di Amazon VPC con la CLI AWS utilizzando un unico account AWS. Al termine di questo tutorial, avrai creato un IPAM, creato una gerarchia di pool di indirizzi IP e assegnato un CIDR a un VPC.

Prerequisiti

Prima di iniziare questo tutorial, assicurati di disporre dei seguenti elementi:

  • Un account AWS con le autorizzazioni necessarie per creare e gestire risorse IPAM.

  • La CLI AWS installata e configurata con le credenziali appropriate. Per informazioni sull’installazione della CLI AWS, consulta Installing or updating the latest version of the AWS CLI . Per informazioni sulla configurazione della CLI AWS, consulta Configuration basics.

  • Conoscenza di base dell’assegnazione di indirizzi IP e della notazione CIDR.

  • Conoscenza di base dei concetti relativi ad Amazon VPC.

  • Per terminare il tutorial saranno necessari circa 30 minuti.

Crea un IPAM

La prima cosa da fare è creare un IPAM con regioni operative. Un IPAM ti aiuterà a pianificare, tracciare e monitorare gli indirizzi IP per i carichi di lavoro AWS.

Crea un IPAM con regioni operative in us-east-1 e us-west-2:

aws ec2 create-ipam \ --description "My IPAM" \ --operating-regions RegionName=us-east-1 RegionName=us-west-2

Questo comando crea un IPAM e gli consente di gestire gli indirizzi IP nelle regioni indicate. Le regioni operative sono le regioni AWS in cui l’IPAM è autorizzato a gestire i CIDR degli indirizzi IP.

Verifica che il tuo IPAM sia stato creato:

aws ec2 describe-ipams

Annota l’ID IPAM ricevuto in base all’output, perché avrai bisogno di utilizzarlo in seguito.

Attendi che venga completata la creazione dell’IPAM e che questo sia disponibile (circa 20 secondi):

sleep 20

Ottieni l’ID dell’ambito IPAM

Quando viene creato un IPAM, AWS crea automaticamente un ambito privato e uno pubblico. Per questo tutorial verrà illustrato l’utilizzo dell’ambito privato.

Recupera i dettagli DELL’IPAM ed estrai l’ID dell’ambito privato:

aws ec2 describe-ipams --ipam-id ipam-0abcd1234

Sostituisci ipam-0abcd1234 con l’ID effettivo dell’IPAM.

In base all’output, identifica e annota l’ID dell’ambito privato disponibile nel campo PrivateDefaultScopeId. L'aspetto sarà simile a ipam-scope-0abcd1234.

Come creare un pool di livello superiore IPv4

Adesso creermo un pool di livello superiore nell’ambito privato. Questo pool sarà quello principale per tutti gli altri pool della gerarchia.

Come creare un pool di livello superiore IPv4:

aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --address-family ipv4 \ --description "Top-level pool"

Sostituisci ipam-scope-0abcd1234 con l’ID effettivo dell’ambito privato.

Attendi che venga completata la creazione del pool e che questo sia disponibile:

aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-0abcd1234 --query 'IpamPools[0].State' --output text

Sostituisci ipam-pool-0abcd1234 con l’ID effettivo del pool di livello superiore. Prima di procedere, lo stato deve essere create-complete.

Quando il pool è disponibile, effettua il provisioning di un intervallo CIDR:

aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-0abcd1234 \ --cidr 10.0.0.0/8

Attendi che venga completato il provisioning del CIDR:

aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-0abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/8'].State" --output text

Prima di procedere, lo stato deve essere provisioned.

Crea un pool IPv4 regionale

A questo punto, crea un pool regionale all’interno del pool di livello superiore. Questo pool sarà specifico per una determinata regione AWS.

Come creare un pool IPv4 regionale:

aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --source-ipam-pool-id ipam-pool-0abcd1234 \ --locale us-east-1 \ --address-family ipv4 \ --description "Regional pool in us-east-1"

Sostituisci ipam-scope-0abcd1234 con l’ID effettivo dell’ambito privato e ipam-pool-0abcd1234 con l’ID del pool di livello superiore.

Attendi che venga completata la creazione del pool regionale e che questo sia disponibile:

aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-1abcd1234 --query 'IpamPools[0].State' --output text

Sostituisci ipam-pool-1abcd1234 con l’ID effettivo del pool regionale. Prima di procedere, lo stato deve essere create-complete.

Quando il pool è disponibile, effettua il provisioning di un intervallo CIDR:

aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-1abcd1234 \ --cidr 10.0.0.0/16

Attendi che venga completato il provisioning del CIDR:

aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-1abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/16'].State" --output text

Prima di procedere, lo stato deve essere provisioned.

Come creare un pool IPv4 di sviluppo

A questo punto, crea un pool di sviluppo all’interno di un pool regionale. Questo pool verrà utilizzato per ambienti di sviluppo.

Come creare un pool IPv4 di sviluppo:

aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --source-ipam-pool-id ipam-pool-1abcd1234 \ --locale us-east-1 \ --address-family ipv4 \ --description "Development pool"

Sostituisci ipam-scope-0abcd1234 con l’ID effettivo dell’ambito privato e ipam-pool-1abcd1234 con l’ID del pool regionale.

Attenzione: ricordati di includere il parametro --locale in linea con le impostazioni locali del pool principale.

Attendi che venga completata la creazione del pool di sviluppo e che questo sia disponibile:

aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-2abcd1234 --query 'IpamPools[0].State' --output text

Sostituisci ipam-pool-2abcd1234 con l’ID effettivo del pool di sviluppo. Prima di procedere, lo stato deve essere create-complete.

Quando il pool è disponibile, effettua il provisioning di un intervallo CIDR:

aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-2abcd1234 \ --cidr 10.0.0.0/24

Attendi che venga completato il provisioning del CIDR:

aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-2abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/24'].State" --output text

Prima di procedere, lo stato deve essere provisioned.

Come creare un VPC che utilizza un CIDR del pool IPAM

Infine, crea un VPC che utilizza un CIDR del pool IPAM. Questo processo mostra come utilizzare l’IPAM per assegnare lo spazio degli indirizzi IP alle risorse AWS.

Come creare un VPC che utilizza un CIDR del pool IPAM

aws ec2 create-vpc \ --ipv4-ipam-pool-id ipam-pool-2abcd1234 \ --ipv4-netmask-length 26 \ --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=IPAM-VPC}]'

Sostituisci ipam-pool-2abcd1234 con l’ID effettivo del pool di sviluppo.

Il parametro --ipv4-netmask-length 26 indica che è necessario assegnare un intervallo CIDR /26 (64 indirizzi IP) dal pool. Questa lunghezza della netmask viene scelta per fare in modo che sia inferiore all’intervallo CIDR del pool (/24).

Verifica che il VPC sia stato creato:

aws ec2 describe-vpcs --filters "Name=tag:Name,Values=IPAM-VPC"

Verifica l’assegnazione del pool IPAM

Verifica che il CIDR sia stato assegnato dal pool IPAM:

aws ec2 get-ipam-pool-allocations \ --ipam-pool-id ipam-pool-2abcd1234

Sostituisci ipam-pool-2abcd1234 con l’ID effettivo del pool di sviluppo.

Questo comando mostra tutte le assegnazioni dal pool IPAM indicato, incluso il VPC appena creato.

Risoluzione dei problemi

Di seguito sono indicati alcuni problemi comuni che possono verificarsi durante l’utilizzo di IPAM:

  • Errori di autorizzazione: verifica che l’utente o il ruolo IAM disponga delle autorizzazioni necessarie per creare e gestire le risorse IPAM. Potrebbero essere necessari ec2:CreateIpam, ec2:CreateIpamPool e altre autorizzazioni correlate.

  • Limite di risorse superato: per impostazione predefinita, è possibile creare un solo IPAM per ogni account. Se hai già un IPAM, dovrai eliminarlo prima di crearne uno nuovo o utilizzare quello già esistente.

  • Errori di assegnazione CIDR: quando effettui il provisioning dei CIDR nei pool, verifica che il CIDR interessato non si sovrapponga con le assegnazioni esistenti in altri pool.

  • Timeout delle richieste API: se si verificano errori “RequestExpired”, potrebbero essere dovuti alla latenza di rete o a problemi di sincronizzazione dell’orario. Prova a eseguire nuovamente il comando.

  • Errori di stato errato: se si verificano errori “IncorrectState”, potrebbero essere dovuti al tentativo di eseguire un’operazione su una risorsa che non si trova nello stato corretto. Attendi che vengano completati la creazione o il provisioning della risorsa prima di procedere.

  • Errori relativi alle dimensioni dell’assegnazione: se si verificano errori “InvalidParameterValue” relativi alle dimensioni dell’assegnazione, verifica che la lunghezza della netmask che richiedi sia adeguata alle dimensioni del pool. Ad esempio, non è possibile assegnare un CIDR /25 da un pool /24.

  • Violazioni delle dipendenze: durante l’eliminazione delle risorse, potrebbero verificarsi errori “DependencyViolation”. Questa circostanza è dovuta al fatto che le risorse dipendono l’una dall’altra. Assicurati di eliminare le risorse nell’ordine inverso rispetto a quello di creazione e di revoca dei CIDR prima di eliminare i pool.

Eliminazione delle risorse

Dopo aver completato questo tutorial, dovresti eliminare le risorse create per evitare addebiti superflui.

  1. Eliminare il VPC

    aws ec2 delete-vpc --vpc-id vpc-0abcd1234
  2. Revoca il CIDR del pool di sviluppo:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-2abcd1234 --cidr 10.0.0.0/24
  3. Elimina il pool di sviluppo:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-2abcd1234
  4. Revoca il CIDR del pool regionale:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-1abcd1234 --cidr 10.0.0.0/16
  5. Elimina il pool regionale:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-1abcd1234
  6. Revoca il CIDR del pool di livello superiore.

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0abcd1234 --cidr 10.0.0.0/8
  7. Elimina il pool di livello superiore:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-0abcd1234
  8. Elimina l’IPAM:

    aws ec2 delete-ipam --ipam-id ipam-0abcd1234

Sostituisci tutti gli ID con gli ID effettivi delle risorse.

Nota

Potrebbe essere necessario attendere tra un’operazione e l’altra per consentire l’eliminazione completa delle risorse prima di passare alla fase successiva. Se riscontri violazioni delle dipendenze, attendi qualche secondo e riprova.

Passaggi successivi

Ora che hai imparato a creare e utilizzare IPAM con la CLI AWS, potrai approfondire funzionalità più avanzate: