For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/hosted-private-cloud/cloud-platform/public-ip-management.md.

Gestion des IP publiques

Voir en Markdown

Découvrez comment attribuer, déplacer et libérer des IP publiques sur SNC Cloud Platform grâce à des ports Neutron indépendants qui survivent à la recréation des instances

Objectif

Guide pratique pour attribuer, déplacer et libérer des adresses IP publiques sur cette plateforme via des ports Neutron indépendants. La fonctionnalité d'IP additionnelle arrivera avec la version majeure n° 2 ; en attendant, conserver une même adresse publique d'une instance à l'autre demande une gestion dédiée, détaillée ici. Public cible : toute personne provisionnant des instances sur cette plateforme.

Ce guide décrit comment gérer des adresses IP publiques sur cette plateforme de façon à pouvoir les détacher d'une instance et les réattacher à une autre, sans les perdre — un besoin classique (recréation d'instance, migration, bascule d'un environnement de test vers un autre) qui, sans précaution, provoque la perte de l'IP.

Vue d'ensemble

La fonctionnalité d'IP additionnelle sera disponible à partir de la version majeure n° 2 de la plateforme. En attendant, une IP publique s'obtient en attachant une deuxième interface réseau directement sur le réseau externe partagé Ext-Net — ce qui implique une gestion particulière pour conserver une même adresse d'une instance à l'autre.

La méthode à privilégier consiste à créer le port Neutron indépendamment de toute instance, puis à l'attacher à l'instance A. Vous pouvez alors détacher ce port indépendant de l'instance A et l'attacher à une instance B sans perdre l'adresse.

Ce guide détaille comment mettre en œuvre cette méthode, y compris une limite à connaître (voir l'encadré à l'étape 1).

Prérequis

  • Avoir configuré la CLI openstack (voir « Guide Terraform » pour l'authentification via clouds.yaml).
  • Récupérer l'ID du réseau externe Ext-Net et de son sous-réseau :
openstack network show Ext-Net -f value -c id
openstack subnet list --network Ext-Net -f value -c ID

En pratique

Port indépendant ou port implicite

Le comportement d'un port Neutron vis-à-vis du cycle de vie d'une instance dépend entièrement de la façon dont il a été créé, pas de son état d'attachement à un moment donné :

Port implicitePort indépendant
Créationopenstack server create --nic net-id=<réseau> — Nova crée le port lui-mêmeopenstack port create --network <réseau> — créé séparément, avant toute instance
Attachement--nic net-id= à la création de l'instance--nic port-id=<port> à la création, ou openstack server add port après coup
Suppression de l'instanceLe port est supprimé automatiquement avec l'instance — l'IP repart dans le poolLe port survit à la suppression de l'instance
Détachement à chaud (server remove port)Le port est supprimé immédiatement, pas juste détaché (comportement vérifié empiriquement, reportez-vous aux pièges connus)Le port reste détaché, réattachable à volonté

Conséquence pratique : créez toujours le port séparément, avant l'instance, dès que vous voulez conserver la possibilité de réutiliser l'IP. Il n'existe pas de moyen de « convertir » un port implicite déjà attaché en port indépendant après coup. Le tenter (détacher puis réattacher) détruit le port et rend l'IP au pool, comme n'importe quelle suppression.

Étape 1 — Créer un port indépendant sur Ext-Net

EXTNET_ID=$(openstack network show Ext-Net -f value -c id)

openstack port create --network $EXTNET_ID --security-group <groupe-de-sécurité> mon-port-public

Neutron attribue automatiquement une IP libre du pool Ext-Net. Récupérez l'adresse :

openstack port show mon-port-public -f value -c fixed_ips
Info

Bon à savoir : sur Ext-Net, l'adresse est toujours attribuée automatiquement depuis le pool — il n'est pas possible de choisir une IP spécifique à l'avance :

openstack port create --network $EXTNET_ID \
  --fixed-ip subnet=<id-sous-réseau>,ip-address=192.0.2.10 mon-port-public
# ForbiddenException: 403 ... rule:create_port:fixed_ips:ip_address ... disallowed by policy

Le bénéfice du port indépendant reste entier (portabilité entre instances) ; seule la capacité à choisir l'adresse à l'avance manque. Sur un réseau privé (ex. un réseau interne créé par vos soins), le choix d'IP fonctionne normalement.

Étape 2 — Attacher le port à une nouvelle instance

openstack server create \
  --flavor <flavor> \
  --nic net-id=<réseau-privé>          `# interface privée, implicite : OK, pas d'IP publique à perdre` \
  --nic port-id=mon-port-public        `# interface publique, TOUJOURS via port-id` \
  --image <image> \
  mon-instance

Étape 3 — Attacher le port à une instance déjà existante

Si l'instance a été créée avant le port, ou si elle existe déjà sans interface publique :

openstack server add port mon-instance mon-port-public

Vérifiez :

openstack server show mon-instance -f value -c addresses

Étape 4 — Déplacer l'IP vers une autre instance

C'est le scénario cible de ce guide : réutiliser la même IP publique après avoir recréé ou remplacé une instance.

# détacher de l'instance A
openstack server remove port instance-a mon-port-public

# rattacher à l'instance B
openstack server add port instance-b mon-port-public

Le port — et donc l'IP — n'est à aucun moment rendu au pool : il passe directement d'une instance à l'autre. Prévoyez quelques secondes de coupure réseau le temps du détachement/rattachement.

Warning

Cette opération n'est sûre que sur un port créé indépendamment (étape 1). Sur un port implicite, server remove port le détruit immédiatement au lieu de le détacher — reportez-vous aux pièges connus.

Étape 5 — Retrouver quelle IP est attachée à quelle instance

# toutes les IP de toutes les instances
openstack server list -f table -c Name -c Networks

# le détail côté port (ID, IP fixe, instance propriétaire)
openstack port list -f table -c ID -c "Fixed IP Addresses" -c "Device ID"

# retrouver le port d'une IP précise
openstack port list -f value -c ID -c "Fixed IP Addresses" | grep 192.0.2.10

Un port dont la colonne Device ID est vide est détaché (indépendant et actuellement libre, prêt à être attaché à une instance).

Étape 6 — Libérer un port

Si l'IP n'est plus nécessaire, supprimer le port la rend au pool Ext-Net :

# détacher d'abord si encore attaché
openstack server remove port <serveur> <port>

openstack port delete <port>

Pièges connus (dépannage)

SymptômeCauseSolution
L'IP publique change après suppression/recréation d'une instanceLe port qui portait l'IP était implicite (--nic net-id= à la création), donc supprimé automatiquement avec l'instanceCréez toujours le port séparément (étape 1) avant de créer une instance susceptible d'être recréée
openstack server remove port fait disparaître le port au lieu de le détacher (openstack port show renvoie No Port found)Tentative de détacher un port implicite — Nova le supprime immédiatement plutôt que de le libérer, que ce soit via suppression d'instance ou détachement manuelCréez un nouveau port indépendant (étape 1) et attachez-le — l'ancienne IP est perdue, une nouvelle est attribuée depuis le pool
403 Forbidden sur openstack port create --fixed-ip ip-address=... sur Ext-NetChoix d'une IP publique spécifique non disponible sur cette plateformeAcceptez l'IP auto-attribuée par le pool ; le bénéfice de portabilité du port indépendant reste entier
L'instance ne reçoit aucune IP publique après server add portGroupe de sécurité du port trop restrictif, ou port sur le mauvais réseauVérifiez le groupe de sécurité attaché au port (openstack port show <port> -c security_group_ids) et le réseau cible (openstack port show <port> -c network_id)
Configuration IP à refaire dans l'OS après un changement d'IP publiqueLa VM n'a pas de cloud-init (VM Windows), rien ne relit donc l'IP depuis les métadonnées au démarrage — sur une VM Linux avec cloud-init, ce n'est généralement pas nécessaireReconfigurez manuellement l'IP dans l'OS après tout changement de port — voir le guide « Créer une VM Windows Server »

Aller plus loin

Guide Terraform — schéma d'attachement réseau (deuxième interface sur Ext-Net), section « Pas de floating IP / routeur Neutron ».

Créer une VM Windows Server — configuration IP manuelle après un changement, sur une VM Windows.

Documentation officielle de la CLI OpenStack sur les ports : docs.openstack.org — Network v2.

Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.

Échangez avec notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?