Prise en main de l’IPAM à l’aide de l’interface de ligne de commande AWS
Ce tutoriel vous guide tout au long du processus de configuration et d’utilisation du Gestionnaire d’adresses IP (IPAM) d’Amazon VPC à l’aide de l’interface de ligne de commande AWS avec un seul compte AWS. À la fin de ce tutoriel, vous aurez créé un IPAM et une hiérarchie de groupes d’adresses IP et aurez alloué un CIDR à un VPC.
Prérequis
Avant de commencer ce tutoriel, assurez-vous de ce qui suit :
-
Vous disposez d’un compte AWS autorisé à créer et à gérer des ressources IPAM.
-
Vous disposez de l’interface de ligne de commande AWS, installée et configurée avec les informations d’identification appropriées. Pour plus d’informations sur l’installation de l’interface de ligne de commande AWS, consultez la section Installing or updating the latest version of the AWS CLI. Pour plus d’informations sur la configuration de l’interface de ligne de commande AWS, consultez la section Configuration basics.
-
Vous avez une compréhension de base de l’adressage IP et de la notation CIDR.
-
Vous avez une connaissance de base des concepts Amazon VPC.
-
Durée du tutoriel : environ 30 minutes.
Création d'un IPAM
La première étape consiste à créer un IPAM avec des régions d’exploitation. Un IPAM vous permet de planifier, suivre et surveiller les adresses IP dans le cadre de vos charges de travail AWS.
Créez un IPAM avec les régions d’exploitation us-east-1 et us-west-2 :
aws ec2 create-ipam \ --description "My IPAM" \ --operating-regions RegionName=us-east-1 RegionName=us-west-2
Cette commande crée un IPAM et permet à ce dernier de gérer les adresses IP dans les régions spécifiées. Les régions d’exploitation sont les régions AWS au sein desquelles l’IPAM est autorisé à gérer des CIDR d’adresses IP.
Vérifiez que votre IPAM a été créé :
aws ec2 describe-ipams
Notez l’ID de l’IPAM indiqué dans la sortie obtenue, car vous en aurez besoin pour les étapes suivantes.
Attendez que l’IPAM soit entièrement créé et disponible (environ 20 secondes) :
sleep 20
Obtention de l’ID de portée IPAM
Lorsque vous créez un IPAM, AWS crée automatiquement une portée privée et une portée publique. Dans le cadre de ce tutoriel, nous utiliserons la portée privée.
Récupérez les détails de l’IPAM et extrayez l’ID de portée privée :
aws ec2 describe-ipams --ipam-id ipam-0abcd1234
Remplacez ipam-0abcd1234 par l’ID de l’IPAM réel.
Dans la sortie obtenue, identifiez et notez l’ID de portée privée indiqué dans le champ PrivateDefaultScopeId. Elle doit ressembler à ceci : ipam-scope-0abcd1234.
Création d'un groupe IPv4 de niveau supérieur
Créons à présent un groupe de niveau supérieur dans la portée privée. Ce groupe servira de parent à tous les autres groupes de notre hiérarchie.
Créez un groupe IPv4 de niveau supérieur :
aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --address-family ipv4 \ --description "Top-level pool"
Remplacez ipam-scope-0abcd1234 par l’ID de portée privée réel.
Attendez que le groupe soit entièrement créé et disponible :
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-0abcd1234 --query 'IpamPools[0].State' --output text
Remplacez ipam-pool-0abcd1234 par l’ID de groupe de niveau supérieur réel. L’état doit être create-complete avant de poursuivre.
Une fois le groupe disponible, provisionnez-le avec un bloc CIDR :
aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-0abcd1234 \ --cidr 10.0.0.0/8
Attendez que le CIDR soit entièrement provisionné :
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-0abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/8'].State" --output text
L’état doit être provisioned avant de poursuivre.
Création d’un groupe IPv4 régional
Créez ensuite un groupe régional au sein du groupe de niveau supérieur. Ce groupe sera spécifique à une région AWS particulière.
Créez un groupe IPv4 régional :
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"
Remplacez ipam-scope-0abcd1234 par l’ID de portée privée réel et ipam-pool-0abcd1234 par l’ID de groupe de niveau supérieur.
Attendez que le groupe régional soit entièrement créé et disponible :
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-1abcd1234 --query 'IpamPools[0].State' --output text
Remplacez ipam-pool-1abcd1234 par l’ID de groupe régional réel. L’état doit être create-complete avant de poursuivre.
Une fois le groupe disponible, provisionnez-le avec un bloc CIDR :
aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-1abcd1234 \ --cidr 10.0.0.0/16
Attendez que le CIDR soit entièrement provisionné :
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-1abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/16'].State" --output text
L’état doit être provisioned avant de poursuivre.
Création d'un groupe IPv4 de développement
Créez à présent un groupe de développement au sein du groupe régional. Ce groupe sera utilisé dans le cadre d’environnements de développement.
Créez un groupe IPv4 de développement :
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"
Remplacez ipam-scope-0abcd1234 par l’ID de portée privée réel et ipam-pool-1abcd1234 par l’ID de groupe régional.
Remarque : il est important d’inclure le paramètre --locale correspondant aux paramètres régionaux du groupe parent.
Attendez que le groupe de développement soit entièrement créé et disponible :
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-2abcd1234 --query 'IpamPools[0].State' --output text
Remplacez ipam-pool-2abcd1234 par l’ID de groupe de développement réel. L’état doit être create-complete avant de poursuivre.
Une fois le groupe disponible, provisionnez-le avec un bloc CIDR :
aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-2abcd1234 \ --cidr 10.0.0.0/24
Attendez que le CIDR soit entièrement provisionné :
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-2abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/24'].State" --output text
L’état doit être provisioned avant de poursuivre.
Création d’un VPC utilisant un CIDR de groupe IPAM
Créez enfin un VPC qui utilise un CIDR à partir de votre groupe IPAM. Cet exemple montre comment l’IPAM peut être utilisé pour allouer de l’espace d’adressage IP aux ressources AWS.
Créez un VPC utilisant un CIDR de groupe 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}]'
Remplacez ipam-pool-2abcd1234 par l’ID de groupe de développement réel.
Le paramètre --ipv4-netmask-length 26 indique que vous souhaitez qu’un bloc CIDR /26 (64 adresses IP) soit alloué à partir du groupe. Cette longueur de masque réseau est choisie pour s’assurer qu’elle est inférieure au bloc CIDR du groupe (/24).
Vérifiez que votre VPC a été créé :
aws ec2 describe-vpcs --filters "Name=tag:Name,Values=IPAM-VPC"
Vérification de l’allocation du groupe IPAM
Vérifiez que le CIDR a été alloué à partir de votre groupe IPAM :
aws ec2 get-ipam-pool-allocations \ --ipam-pool-id ipam-pool-2abcd1234
Remplacez ipam-pool-2abcd1234 par l’ID de groupe de développement réel.
Cette commande affiche toutes les allocations effectuées à partir du groupe IPAM spécifié, y compris le VPC que vous venez de créer.
Résolution des problèmes
Voici quelques problèmes courants que vous pouvez rencontrer dans le cadre de l’utilisation de l’IPAM :
-
Erreurs d’autorisation : assurez-vous que l’utilisateur ou le rôle IAM dispose des autorisations nécessaires pour créer et gérer des ressources IPAM. Vous aurez peut-être besoin des autorisations
ec2:CreateIpam,ec2:CreateIpamPoolet d’autres autorisations connexes. -
Limite de ressource dépassée : par défaut, vous ne pouvez créer qu’un seul IPAM par compte. Si vous possédez déjà un IPAM, vous devrez le supprimer avant d’en créer un nouveau ou d’utiliser celui qui existe.
-
Échecs d’allocation de CIDR : lorsque vous provisionnez des CIDR dans des groupes, assurez-vous que le CIDR que vous essayez de provisionner ne génère pas de chevauchement avec les allocations existantes dans d’autres groupes.
-
Expiration des demandes d’API : si vous rencontrez des erreurs de type « RequestExpired », cela peut être dû à la latence du réseau ou à des problèmes de synchronisation temporelle. Essayez à nouveau d’exécuter la commande.
-
Erreurs d’état incorrect : si vous recevez des erreurs de type « IncorrectState », cela peut être dû au fait que vous essayez d’effectuer une opération sur une ressource dont l’état n’est pas correct. Attendez que la ressource soit entièrement créée ou provisionnée avant de poursuivre.
-
Erreurs de taille d’allocation : si vous recevez des erreurs de type « InvalidParameterValue » concernant la taille d’allocation, assurez-vous que la longueur du masque réseau que vous demandez est adaptée à la taille du groupe. Par exemple, vous ne pouvez pas allouer un CIDR /25 à partir d’un groupe /24.
-
Violations de dépendance : lors du nettoyage des ressources, vous pouvez rencontrer des erreurs de type « DependencyViolation ». Cela est dû au fait que les ressources présentent des dépendances les unes par rapport aux autres. Assurez-vous de supprimer les ressources dans l’ordre inverse de leur création et de déprovisionner les CIDR avant de supprimer les groupes.
Nettoyage des ressources
Lorsque vous avez terminé ce tutoriel, nettoyez les ressources créées pour éviter des frais inutiles.
-
Supprimer le VPC
aws ec2 delete-vpc --vpc-id vpc-0abcd1234 -
Déprovisionnez le CIDR à partir du groupe de développement :
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-2abcd1234 --cidr 10.0.0.0/24 -
Supprimez le groupe de développement :
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-2abcd1234 -
Déprovisionnez le CIDR à partir du groupe régional :
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-1abcd1234 --cidr 10.0.0.0/16 -
Supprimez le groupe régional :
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-1abcd1234 -
Déprovisionnez le CIDR à partir du groupe de niveau supérieur :
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0abcd1234 --cidr 10.0.0.0/8 -
Supprimez le groupe de niveau supérieur :
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-0abcd1234 -
Supprimez l’IPAM :
aws ec2 delete-ipam --ipam-id ipam-0abcd1234
Remplacez tous les ID par les ID de ressource réels.
Note
Vous devrez peut-être attendre entre ces opérations que les ressources soient entièrement supprimées avant de passer à l’étape suivante. Si vous rencontrez des violations de dépendance, attendez quelques secondes et réessayez.
Étapes suivantes
Maintenant que vous avez appris à créer et à utiliser l’IPAM avec l’interface de ligne de commande AWS, vous souhaiterez peut-être explorer des fonctionnalités plus avancées :
-
Planification de l'approvisionnement des adresses IP – Découvrez comment planifier efficacement votre espace d’adressage IP
-
Contrôle de l'utilisation du CIDR par ressource – Découvrez comment surveiller l’utilisation des adresses IP
-
Partage d'un groupe IPAM à l'aide d'AWS RAM – Découvrez comment partager des groupes IPAM entre des comptes AWS
-
Intégration d'IPAM aux comptes d'une organisation AWS – Découvrez comment utiliser l’IPAM au sein de votre organisation