Conceitos básicos do IPAM usando a AWS CLI - Amazon Virtual Private Cloud

Conceitos básicos do IPAM usando a AWS CLI

Neste tutorial, você receberá orientações sobre o processo de configuração e de uso do gerenciador de endereços IP (IPAM) da Amazon VPC com a AWS CLI, usando uma única conta da AWS. Quando concluir este tutorial, você terá criado um IPAM, definido uma hierarquia de grupos de endereços IP e alocado um bloco CIDR para uma VPC.

Pré-requisitos

Certifique-se de atender aos seguintes pré-requisitos antes de iniciar este tutorial:

  • Ter uma conta da AWS com as permissões necessárias para criação e gerenciamento de recursos do IPAM.

  • Ter a AWS CLI instalada e devidamente configurada com as credenciais apropriadas. Para obter mais informações sobre a instalação da AWS CLI, consulte Instalar ou atualizar a versão mais recente da AWS CLI. Para obter mais informações sobre a configuração da AWS CLI, consulte Configuration basics.

  • Ter uma compreensão básica sobre endereçamento IP e notação CIDR.

  • Ter um conhecimento básico sobre os conceitos relacionados à Amazon VPC.

  • Dispor de, aproximadamente, 30 minutos para concluir o tutorial.

Criar um IPAM

A etapa inicial consiste na criação de um IPAM com regiões de operação definidas. O IPAM auxilia no planejamento, no rastreamento e no monitoramento de endereços IP usados pelas workloads da AWS.

Crie um IPAM com regiões de operação em us-east-1 e us-west-2:

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

Este comando cria um IPAM e o habilita para gerenciar endereços IP nas regiões especificadas. As regiões de operação correspondem às regiões da AWS nas quais o IPAM está autorizado a gerenciar blocos CIDR de endereços IP.

Verifique se o IPAM foi criado:

aws ec2 describe-ipams

Anote o ID do IPAM apresentado na saída, pois esse valor será necessário para as próximas etapas.

Aguarde até que o IPAM esteja totalmente criado e disponível, em um processo que demora, aproximadamente, 20 segundos:

sleep 20

Obtenção do ID do escopo do IPAM

Quando você cria um IPAM, a AWS cria automaticamente um escopo privado e um escopo público. Para este tutorial, usaremos o escopo privado.

Recupere os detalhes do IPAM e extraia o ID do escopo privado:

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

Certifique-se de substituir ipam-0abcd1234 pelo ID correspondente ao IPAM.

Na saída, identifique e anote o ID do escopo privado usando o campo PrivateDefaultScopeId. Ela será parecida com ipam-scope-0abcd1234.

Criar um grupo de IPv4 de nível superior

Agora, vamos criar um grupo de alto nível no escopo privado. Este grupo funcionará como o grupo principal para todos os outros grupos pertencentes à hierarquia.

Crie um grupo de endereços IPv4 de alto nível:

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

Certifique-se de substituir ipam-scope-0abcd1234 pelo ID correspondente ao escopo privado.

Aguarde até que o grupo esteja totalmente criado e disponível:

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

Certifique-se de substituir ipam-pool-0abcd1234 pelo ID correspondente ao grupo de alto nível. Antes de prosseguir, o estado deve encontrar-se em create-complete.

Após o grupo ser disponibilizado, providencie um bloco CIDR para ele:

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

Aguarde até que o bloco CIDR esteja totalmente provisionado:

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

Antes de prosseguir, o estado deve encontrar-se em provisioned.

Criação de um grupo de endereços IPv4 regional

Em seguida, crie um grupo regional pertencente ao grupo de alto nível. Esse grupo será dedicado a uma região da AWS específica.

Crie um grupo de endereços IPv4 regional:

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"

Certifique-se de substituir ipam-scope-0abcd1234 pelo ID correspondente ao escopo privado e ipam-pool-0abcd1234 pelo ID correspondente ao grupo de alto nível.

Aguarde até que o grupo regional esteja totalmente criado e disponível:

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

Certifique-se de substituir ipam-pool-1abcd1234 pelo ID correspondente ao grupo regional. Antes de prosseguir, o estado deve encontrar-se em create-complete.

Após o grupo ser disponibilizado, providencie um bloco CIDR para ele:

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

Aguarde até que o bloco CIDR esteja totalmente provisionado:

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

Antes de prosseguir, o estado deve encontrar-se em provisioned.

Criar um grupo de desenvolvimento de IPv4

Agora, crie um grupo de desenvolvimento pertencente ao grupo regional. Este grupo será destinado a ambientes de desenvolvimento.

Crie um grupo de desenvolvimento de endereços IPv4:

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"

Certifique-se de substituir ipam-scope-0abcd1234 pelo ID correspondente ao escopo privado e ipam-pool-1abcd1234 pelo ID correspondente ao grupo regional.

Observação: é importante incluir o parâmetro --locale para corresponder ao local do grupo principal.

Aguarde até que o grupo de desenvolvimento esteja totalmente criado e disponível:

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

Certifique-se de substituir ipam-pool-2abcd1234 pelo ID correspondente ao grupo de desenvolvimento. Antes de prosseguir, o estado deve encontrar-se em create-complete.

Após o grupo ser disponibilizado, providencie um bloco CIDR para ele:

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

Aguarde até que o bloco CIDR esteja totalmente provisionado:

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

Antes de prosseguir, o estado deve encontrar-se em provisioned.

Criação de uma VPC usando um bloco CIDR do grupo do IPAM

Por fim, crie uma VPC que usa um bloco CIDR proveniente do grupo do IPAM. Isso demonstra como o IPAM pode ser usado para alocar espaços de endereços IP para recursos da AWS.

Crie uma VPC usando um bloco CIDR do grupo do 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}]'

Certifique-se de substituir ipam-pool-2abcd1234 pelo ID correspondente ao grupo de desenvolvimento.

O parâmetro --ipv4-netmask-length 26 especifica que você deseja alocar, usando o grupo, um bloco CIDR /26, que é equivalente a 64 endereços IP. Esse comprimento da máscara de rede foi escolhido para assegurar que seja menor do que o bloco CIDR do grupo, que corresponde à /24.

Verifique se a VPC foi criada:

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

Verificação da alocação no grupo do IPAM

Verifique se o bloco CIDR foi alocado usando o grupo do IPAM:

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

Certifique-se de substituir ipam-pool-2abcd1234 pelo ID correspondente ao grupo de desenvolvimento.

Este comando apresenta todas as alocações realizadas usando o grupo do IPAM especificado, incluindo a VPC que você acabou de criar.

Solução de problemas

A seguir, apresentamos alguns problemas comuns que você pode enfrentar ao trabalhar com o IPAM:

  • Erros relacionados às permissões: assegure que o perfil ou o usuário do IAM tem as permissões necessárias para realizar a criação e o gerenciamento de recursos do IPAM. Talvez seja necessário conceder as permissões ec2:CreateIpam, ec2:CreateIpamPool e demais permissões relacionadas.

  • Limite de recursos excedido: por padrão, é possível criar somente um IPAM por conta. Se você já tiver um IPAM, será necessário excluí-lo antes de criar um novo ou utilizar o existente.

  • Falhas relacionadas à alocação de CIDR: ao provisionar blocos CIDR para grupos, certifique-se de que o bloco CIDR que está tentando alocar não se sobreponha a alocações existentes em outros grupos.

  • Tempo limite da solicitação da API: se você enfrentar erros do tipo “RequestExpired”, as causas podem estar relacionadas à latência da rede ou aos problemas de sincronização de horário. Tente executar o comando novamente.

  • Erros relacionados ao estado inadequado: se receber erros “IncorrectState”, pode ser que esteja tentando executar uma operação em um recurso que ainda não está no estado adequado. Antes de prosseguir, aguarde a confirmação de que o recurso está totalmente criado ou provisionado.

  • Erros relacionados ao tamanho da alocação: se receber erros “InvalidParameterValue” relacionados ao tamanho da alocação, certifique-se de que o comprimento da máscara de rede que está solicitando seja adequado ao tamanho do grupo. Por exemplo, não é possível alocar um bloco CIDR /25 usando um grupo /24.

  • Violações de dependências: ao limpar os recursos, você pode enfrentar o erro “DependencyViolation”. Isso acontece porque os recursos têm dependências entre si. Certifique-se de que os recursos sejam excluídos na ordem reversa da criação e que os blocos CIDR sejam desprovisionados antes da exclusão dos grupos.

Limpar recursos

Ao concluir o presente tutorial, você deve limpar os recursos criados para evitar que incorram em cobranças desnecessárias.

  1. Exclua a VPC:

    aws ec2 delete-vpc --vpc-id vpc-0abcd1234
  2. Desprovisione o CIDR do grupo de desenvolvimento:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-2abcd1234 --cidr 10.0.0.0/24
  3. Exclua o grupo de desenvolvimento:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-2abcd1234
  4. Desprovisione o CIDR do grupo regional:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-1abcd1234 --cidr 10.0.0.0/16
  5. Exclua o grupo regional:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-1abcd1234
  6. Desprovisione o CIDR do grupo de alto nível:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0abcd1234 --cidr 10.0.0.0/8
  7. Exclua o grupo de alto nível:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-0abcd1234
  8. Exclua o IPAM:

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

Certifique-se de substituir todos os IDs pelos valores correspondentes aos IDs de recursos.

nota

Talvez seja necessário aguardar um tempo entre essas operações para que os recursos sejam completamente excluídos antes de prosseguir para a próxima etapa. Caso encontre violações de dependências, aguarde alguns segundos e tente novamente.

Próximas etapas

Agora que você aprendeu como criar e usar o IPAM com a AWS CLI, talvez deseje explorar recursos mais avançados: