---
title: "Gestion des IP publiques"
description: "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"
url: https://docs.ovhcloud.com/fr/guides/hosted-private-cloud/cloud-platform/public-ip-management
lang: fr
lastUpdated: 2026-09-29
---
> 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.

# Gestion des IP publiques

## 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](#étape-1--créer-un-port-indépendant-sur-ext-net)).

## Prérequis

- Avoir configuré la CLI `openstack` (voir « [Guide Terraform](https://docs.ovhcloud.com/fr/guides/hosted-private-cloud/cloud-platform/terraform.md) » pour l'authentification via `clouds.yaml`).
- Récupérer l'ID du réseau externe `Ext-Net` et de son sous-réseau :

```bash
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 **implicite**                                                                                                                                          | Port **indépendant**                                                                   |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| Création                                   | `openstack server create --nic net-id=<réseau>` — Nova crée le port lui-même                                                                                | `openstack 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'instance                  | Le port est **supprimé automatiquement** avec l'instance — l'IP repart dans le pool                                                                         | Le 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](#pièges-connus-dépannage)) | 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`

```bash
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 :

```bash
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 :

```bash
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

```bash
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 :

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

Vérifiez :

```bash
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.

```bash
# 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](#étape-1--créer-un-port-indépendant-sur-ext-net)). Sur un port implicite, `server remove port` le détruit immédiatement au lieu de le détacher — reportez-vous aux [pièges connus](#pièges-connus-dépannage).

:::

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

```bash
# 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` :

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

openstack port delete <port>
```

### Pièges connus (dépannage)

| Symptôme                                                                                                                       | Cause                                                                                                                                                                          | Solution                                                                                                                                                                                                                      |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| L'IP publique change après suppression/recréation d'une instance                                                               | Le port qui portait l'IP était **implicite** (`--nic net-id=` à la création), donc supprimé automatiquement avec l'instance                                                    | Créez toujours le port séparément ([étape 1](#étape-1--créer-un-port-indépendant-sur-ext-net)) 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 manuel            | Créez un nouveau port indépendant ([étape 1](#étape-1--créer-un-port-indépendant-sur-ext-net)) 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-Net`                                            | Choix d'une IP publique spécifique non disponible sur cette plateforme                                                                                                         | Acceptez 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 port`                                                                | Groupe de sécurité du port trop restrictif, ou port sur le mauvais réseau                                                                                                      | Vé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 publique                                                         | La 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écessaire | Reconfigurez manuellement l'IP dans l'OS après tout changement de port — voir le guide « [Créer une VM Windows Server](https://docs.ovhcloud.com/fr/guides/hosted-private-cloud/cloud-platform/create-windows-server-vm.md) » |

## Aller plus loin

[Guide Terraform](https://docs.ovhcloud.com/fr/guides/hosted-private-cloud/cloud-platform/terraform.md) — 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](https://docs.ovhcloud.com/fr/guides/hosted-private-cloud/cloud-platform/create-windows-server-vm.md) — 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](https://docs.openstack.org/python-openstackclient/latest/cli/command-objects/network/v2/index.html#port).

Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page [Professional Services](https://www.ovhcloud.com/fr/professional-services/) pour obtenir un devis et faire analyser votre projet par nos experts.

Échangez avec notre [communauté d'utilisateurs](https://community.ovhcloud.com/).
