Introducción a IPAM con la CLI de AWS - Amazon Virtual Private Cloud

Introducción a IPAM con la CLI de AWS

En este tutorial, se muestra el proceso de configuración y uso del administrador de direcciones IP (IPAM) de Amazon VPC con la CLI de AWS usando una sola cuenta de AWS. Al final de este tutorial, habrá creado un IPAM, una jerarquía de grupos de direcciones IP y habrá asignado un CIDR a una VPC.

Requisitos previos

Antes de empezar este tutorial, asegúrese de contar con lo siguiente:

  • Una cuenta de AWS con permisos para crear y administrar los recursos de IPAM.

  • La CLI de AWS instalada y configurada con las credenciales adecuadas. Para obtener información sobre cómo instalar la CLI de AWS, consulte Instalar o actualizar la versión más reciente de la CLI de AWS. Para obtener información acerca de la configuración de la CLI de AWS, consulte Fundamentos de configuración.

  • Comprensión básica del direccionamiento IP y la notación CIDR.

  • Conocimientos básicos de los conceptos sobre Amazon VPC.

  • Completar el tutorial lleva aproximadamente 30 minutos.

Creación de un IPAM

El primer paso es crear un IPAM con regiones de operación. Un IPAM le ayudará a planificar, rastrear y supervisar las direcciones IP de sus cargas de trabajo de AWS.

Cree un IPAM con regiones operativas en us-east-1 y us-west-2:

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

Este comando crea un IPAM y le permite administrar las direcciones IP en las regiones especificadas. Las regiones operativas son las regiones de AWS en las que el IPAM puede administrar los CIDR de la dirección IP.

Verifique que se haya creado su IPAM:

aws ec2 describe-ipams

Anote el ID de IPAM de la salida, ya que lo necesitará en los pasos siguientes.

Espere a que el IPAM esté completamente creado y disponible (aproximadamente 20 segundos):

sleep 20

Obtención del ID del alcance de IPAM

Al crear un IPAM, AWS crea automáticamente un alcance privado y otro público. Para este tutorial, utilizaremos el alcance privado.

Recupere los detalles del IPAM y extraiga el ID del alcance privado:

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

Sustituya ipam-0abcd1234 por su ID del IPAM real.

En la salida, identifique y anote el ID del alcance privado del campo PrivateDefaultScopeId. Tendrá un aspecto similar a ipam-scope-0abcd1234.

Creación de un grupo IPv4 de nivel superior

Ahora, crearemos un grupo de nivel superior en el alcance privado. Este grupo servirá como elemento principal para todos los demás grupos en nuestra jerarquía.

Cree un grupo IPv4 de nivel superior:

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

Reemplace ipam-scope-0abcd1234 con su ID de alcance privado real.

Espere a que el grupo esté completamente creado y disponible:

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

Reemplace ipam-pool-0abcd1234 con su ID de grupo de nivel superior real. El estado debe ser create-complete antes de continuar.

Una vez que el grupo esté disponible, aprovisione un bloque CIDR en él:

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

Espere a que el CIDR esté completamente aprovisionado:

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

El estado debe ser provisioned antes de continuar.

Creación de un grupo regional de IPv4

Luego, cree un grupo regional dentro del grupo de nivel superior. Este grupo será específico de una región de AWS en particular.

Cree un grupo regional de IPv4:

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"

Reemplace ipam-scope-0abcd1234 con su ID de alcance privado real y ipam-pool-0abcd1234 con su ID de grupo de nivel superior.

Espere a que el grupo regional esté completamente creado y disponible:

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

Reemplace ipam-pool-1abcd1234 con su ID del grupo regional real. El estado debe ser create-complete antes de continuar.

Una vez que el grupo esté disponible, aprovisione un bloque CIDR en él:

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

Espere a que el CIDR esté completamente aprovisionado:

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

El estado debe ser provisioned antes de continuar.

Creación de un grupo IPv4 de desarrollo

Ahora, cree un grupo de desarrollo dentro del grupo regional. Este grupo se utilizará para entornos de desarrollo.

Cree un grupo IPv4 de desarrollo:

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"

Reemplace ipam-scope-0abcd1234 con su ID de alcance privado real y ipam-pool-1abcd1234 con su ID de grupo regional.

Nota: Es importante incluir el parámetro --locale para que coincida con la ubicación del grupo principal.

Espere a que el grupo de desarrollo esté completamente creado y disponible:

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

Reemplace ipam-pool-2abcd1234 por el ID de su grupo de desarrollo real. El estado debe ser create-complete antes de continuar.

Una vez que el grupo esté disponible, aprovisione un bloque CIDR en él:

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

Espere a que el CIDR esté completamente aprovisionado:

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

El estado debe ser provisioned antes de continuar.

Creación de una VPC que utilice un CIDR de grupo de IPAM

Por último, cree una VPC que utilice un CIDR de su grupo de IPAM. Esto demuestra cómo se puede utilizar el IPAM para asignar espacio de direcciones IP a los recursos de AWS.

Cree una VPC que utilice un CIDR de grupo de 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}]'

Reemplace ipam-pool-2abcd1234 por el ID de su grupo de desarrollo real.

El parámetro --ipv4-netmask-length 26 especifica que desea asignar un bloque CIDR /26 (64 direcciones IP) desde el grupo. Se elige la longitud de esta máscara de red para garantizar que sea más pequeña que el bloque CIDR del grupo (/24).

Verifique que se haya creado su VPC:

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

Verificación de la asignación del grupo de IPAM

Compruebe que el CIDR se haya asignado desde su grupo de IPAM:

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

Reemplace ipam-pool-2abcd1234 por el ID de su grupo de desarrollo real.

Este comando muestra todas las asignaciones del grupo de IPAM especificado, incluida la VPC que acaba de crear.

Solución de problemas

A continuación se presentan algunos problemas comunes que pueden surgir al trabajar con un IPAM:

  • Errores de permisos: asegúrese de que su usuario o rol de IAM tenga los permisos necesarios para crear y administrar los recursos del IPAM. Es posible que necesite los permisos ec2:CreateIpam, ec2:CreateIpamPool y otros relacionados.

  • Límite de recursos superado: de forma predeterminada, solo puede crear un IPAM por cuenta. Si ya tiene un IPAM, tendrá que eliminarlo antes de crear uno nuevo o deberá usar el existente.

  • Fallos en la asignación de los CIDR: al aprovisionar los CIDR a los grupos, asegúrese de que el CIDR que intenta aprovisionar no se superponga con las asignaciones existentes en otros grupos.

  • Tiempos de espera de las solicitudes de API agotados: si aparecen errores “RequestExpired”, es posible que se deban a problemas de latencia de la red o de sincronización horaria. Vuelva a intentar ejecutar el comando.

  • Errores de estado incorrecto: si recibe errores “IncorrectState”, es posible que se deban a que está intentando realizar una operación en un recurso que no está en el estado correcto. Espere a que el recurso se haya creado o aprovisionado por completo antes de continuar.

  • Errores del tamaño de la asignación: si recibe errores “InvalidParameterValue” sobre el tamaño de la asignación, asegúrese de que la longitud de la máscara de red que solicita sea adecuada para el tamaño del grupo. Por ejemplo, no puede asignar un CIDR de /25 desde un grupo de /24.

  • Infracciones de dependencia: al limpiar los recursos, es posible que aparezca el error “DependencyViolation”. Esto se debe a que los recursos dependen unos de otros. Asegúrese de eliminar los recursos siguiendo el orden inverso al de su creación y de desaprovisionar los CIDR antes de eliminar los grupos.

Eliminar recursos

Cuando haya completado este tutorial, debería limpiar los recursos que creó para evitar incurrir en gastos innecesarios.

  1. Elimine la VPC:

    aws ec2 delete-vpc --vpc-id vpc-0abcd1234
  2. Desaprovisione el CIDR del grupo de desarrollo:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-2abcd1234 --cidr 10.0.0.0/24
  3. Elimine el grupo de desarrollo:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-2abcd1234
  4. Desaprovisione el CIDR del grupo regional:

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

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-1abcd1234
  6. Desaprovisione el CIDR del grupo de nivel superior:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0abcd1234 --cidr 10.0.0.0/8
  7. Elimine el grupo de nivel superior:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-0abcd1234
  8. Elimine el IPAM:

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

Reemplace todos los ID con los ID de sus recursos reales.

nota

Es posible que tenga que esperar entre estas operaciones para que los recursos se eliminen por completo antes de continuar con el siguiente paso. Si aparecen infracciones de dependencia, espere unos segundos y vuelva a intentarlo.

Pasos a seguir a continuación

Ahora que ha aprendido a crear y usar un IPAM con la CLI de AWS, tal vez quiera explorar otras características avanzadas: