Skip to content

Latest commit

 

History

History
508 lines (445 loc) · 25 KB

File metadata and controls

508 lines (445 loc) · 25 KB
title excerpt updated
Attacher une adresse Floating IP à une instance Public Cloud
Comprendre qu'est-ce qu’une Floating IP des services L3 et comment la configurer
2024-03-26

Objectif

Les Floating IP sont des adresses IP publiques sur Public Cloud, utilisées pour exposer une instance privée ou un service de réseau privé sur le réseau public. Retrouvez plus d'informations sur notre page concepts dédiée.

Découvrez comment attacher des adresses Floating IP à vos instances.

Prérequis

Comprendre le service Floating IP

La solution Floating IP est fournie par les services OpenStack DVR (Distributed Virtual Router) sur le Public Cloud OVHcloud.

Floating IP vous permet de créer une adresse IP publique et de l’utiliser pour les réseaux privés de vos VMs pour le trafic entrant et sortant. Les adresses Floating IP peuvent être attachées et détachées de vos VMs à tout moment.

Vous pouvez garder des adresses Floating IP sans avoir à les attacher à un service. Elles restent disponibles pour vos ressources jusqu'à leur suppression manuelle.

Configuration cible

schema{.thumbnail}

Le but de cet exercice est de créer une VM (vm4fip) uniquement avec un réseau privé local (test-network) et d'utiliser un routeur (router1) pour configurer une Floating IP.

Ensuite, nous utiliserons cette Floating IP pour nous connecter à l'instance (VM) de l'extérieur et vérifier son accès à Internet.

En pratique

Depuis l’espace client OVHcloud

Attacher une Floating IP à une instance

[!success] Cliquez sur l'un des deux onglets ci-dessous selon que vous souhaitez associer une Floating IP à une nouvelle instance (Option 1) ou à une instance déjà existante (Option 2).

[!tabs] Option 1

Cas d’une nouvelle instance

Si vous souhaitez associer une Floating IP à une instance existante, passez à l'Option 2 (deuxième onglet ci-dessus).

Connectez-vous à votre espace client OVHcloud, accédez à la section Public Cloud{.action} et sélectionnez le projet Public Cloud concerné.

Avant de créer votre instance, assurez-vous d'avoir créé un réseau privé avec Gateway.

Si vous avez besoin d'assistance pour créer une nouvelle instance, consultez d'abord notre guide pour créer une instance depuis l'espace client OVHcloud.

[!warning] A ce jour, toutes les régions ne sont pas compatibles avec cette fonctionnalité. Veillez à créer une instance dans une région qui le permet. Pour plus d'informations, veuillez vous référer à notre page sur la disponibilité des produits Public Cloud pour chaque région.

À l'étape 5 de la création d'une instance, vous est proposé le choix du « mode public » ou « mode privé » pour la mise en réseau de votre instance.

Par défaut, le mode public est sélectionné. Cependant, comme nous créons une instance à laquelle nous allons attacher une Floating IP, nous devons créer une instance avec un réseau privé UNIQUEMENT.

Sélectionnez le Mode privé{.action} et cliquez sur la flèche déroulante pour sélectionner le réseau privé de votre choix (le réseau doit avoir été préalablement créé avec une Gateway).

Si vous sélectionnez un réseau privé qui n'est pas lié à une Gateway, le système créera automatiquement une Gateway de taille « S » par défaut et l'attachera à votre réseau.

Private Network{.thumbnail}

Cochez ensuite la case à côté de Attacher une Floating IP à cette instance{.action} puis sélectionnez Créer une nouvelle Floating IP{.action}.

Lorsque vous avez terminé, cliquez sur Suivant{.action} pour passer à la dernière étape et définir votre mode de facturation.

En cas de doute sur la durée d’utilisation, nous vous recommandons de choisir la facturation à l’heure, car il n’est pas possible de la choisir après la livraison du service. Vous aurez la possibilité de passer en abonnement mensuel dès que l'instance sera disponible sur la page « Instances ».

[!warning] Si vous choisissez d’être facturé à l’heure, vous continuerez à être facturé tant que l’instance n’est pas supprimée, même si l’instance n’est pas utilisée.

Après vérification de votre configuration, cliquez sur Créer une instance{.action} pour terminer la création de votre nouvelle instance. L’opération peut prendre quelques minutes jusqu’à la livraison de votre service.

Option 2

Cas d’une instance existante (créée uniquement avec un réseau privé)

Veuillez noter que le réseau privé doit être relié à une Gateway. Pour plus d'informations, consultez ce guide : Créer un réseau privé avec une Gateway.

Depuis l'onglet Public Cloud{.action}, cliquez sur Public IPs{.action} dans le menu de gauche sous Network.

Cliquez sur Floating IPs{.action} puis sur Ajouter une nouvelle IP{.action}.

add a new ip{.thumbnail}

Sous la rubrique « Sélectionnez votre usage public », choississez Floating IPs (Public Cloud){.action}.

select floating ip{.thumbnail}

À l'étape suivante, choisissez la région de votre Floating IP. La région doit être celle de l'instance à laquelle la Floating IP sera rattachée.

select location ip{.thumbnail}

[!primary] Veuillez noter que seules seront affichées les régions dans lesquelles ce service est disponible.

Cliquez ensuite sur la liste déroulante pour sélectionner l'instance à laquelle attacher la Floating IP, puis choisissez le réseau/IP (celui-ci sera dans la plage par défaut sélectionnée lors de la création du réseau privé de l'instance).

select instance{.thumbnail}

[!primary] Dans le cas où votre instance est attachée à deux ou plusieurs réseaux privés, vous sera alors présenté un nombre équivalent d'adresses IPs privées à sélectionner. Sélectionnez l'IP privée de votre choix.

Une fois ces étapes effectuées, cliquez sur Générer le bon de commande{.action}. La livraison de votre service peut prendre quelques minutes.

generate order{.thumbnail}

Détacher une Floating IP

Cette fonctionnalité est actuellement disponible uniquement via l’API OpenStack.

Supprimer une Floating IP

Depuis l'onglet Public Cloud{.action}, cliquez sur Public IPs{.action} dans le menu de gauche sous Network.

Dans l'onglet Floating IP{.action}, cliquez sur le bouton ...{.action} à côté de l'IP correspondante et sélectionnez Supprimer{.action}.

delete floating ip{.thumbnail}

Dans la fenêtre qui s'affiche, cliquez sur Confirmer{.action}. L'opération peut prendre quelques minutes.

Depuis l'API OpenStack

Attacher une Floating IP à une instance

[!success] Cliquez sur les onglets ci-dessous pour afficher et suivre successivement chacune des 9 étapes.

[!tabs] Étape 1

Créez un routeur :

$ openstack router create router1
$ openstack router show router1 -c id -c status
+--------+--------------------------------------+
| Field  | Value                                |
+--------+--------------------------------------+
| id     | d2370b2f-18ba-4a23-886d-35c01ba2a957 |
| status | ACTIVE                               |
+--------+--------------------------------------+

Étape 2

Créez un réseau privé si nécessaire.
Si vous en avez déjà un, vous pouvez ignorer cette étape.

$ openstack network create test-network
$ openstack network show test-network -c id -c status
+--------+--------------------------------------+
| Field  | Value                                |
+--------+--------------------------------------+
| id     | a9753f63-889a-43b7-b3ea-258bd5008207 |
| status | ACTIVE                               |
+--------+--------------------------------------+

Étape 3

Créez un sous-réseau pour le réseau privé test-network.
Si vous en avez déjà un, vous pouvez ignorer cette étape.

Le service DHCP doit être activé sur le sous-réseau et une gateway ip doit être configurée.

$ openstack subnet create —subnet-range 192.168.0.1/24 —network test-network —dhcp —gateway 192.168.0.1 test-subnet
$ openstack subnet show test-subnet -c id -c gateway_ip -c enable_dhcp -c name
+-------------+--------------------------------------+
| Field       | Value                                |
+-------------+--------------------------------------+
| enable_dhcp | True                                 |
| gateway_ip  | 192.168.0.1                          |
| id          | c23df163-0d46-4928-91d6-956794c4de16 |
| name        | test-subnet                          |
+-------------+--------------------------------------+

Étape 4

Ajoutez un sous-réseau au router1.

$ openstack router add subnet router1 test-subnet
$ openstack router show router1 -c interfaces_info -c name
+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------+
| Field           | Value                                                                                                                                   |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------+
| interfaces_info | [{"port_id": "ec872f31-cfe5-4326-9aa2-30d2e5c60d20", "ip_address": "192.168.0.1", "subnet_id": "c23df163-0d46-4928-91d6-956794c4de16"}] |
| name            | router1                                                                                                                                 |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------+

Étape 5

Ajoutez une gateway au router1 à partir du réseau partagé public Ext-Net.

$ openstack router set —external-gateway Ext-Net router1
$ openstack router show router1 -c external_gateway_info -c name
+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                 | Value                                                                                                                                                                                                                                                                                    |
+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| external_gateway_info | {"network_id": "b2c02fdc-ffdf-40f6-9722-533bd7058c06", "external_fixed_ips" : [{"subnet_id": "0f11270c-1113-4d4f-98de-eba83445d962", "ip_address": "141.94.208.45"}, {"subnet_id": "4aa6cac1-d5cd-4e25-b14b-7573aeabcab1", "ip_address": "2001:41d0:304:400::7dc"}], "enable_snat": true} |
| name                  | router1                                                                                                                                                                                                                                                                                  |
+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Étape 6

Créez une clé SSH test-keypair pour la connexion SSH à votre VM (n'oubliez pas de limiter les accès au fichier de clé privée à l'aide de la commande chmod).

$ openstack keypair create —private-key ./test-key.rsa test-key
+-------------+-------------------------------------------------+
| Field       | Value                                           |
+-------------+-------------------------------------------------+
| fingerprint | 02:54:10:33:e4:b0:fb:4b:ec:4b:06:e8:0d:38:90:25 |
| name        | test-key                                        |
| user_id     | 0a3ef9fd2ea748e8935accf19d0278a8                |
+-------------+-------------------------------------------------+
$ chmod 600 ./test-key.rsa

Étape 7

Générez une VM avec l'interface test-network uniquement.

$ openstack server create —image 'Ubuntu 22.04' —flavor s1-8 —key-name test-key —net test-network vm4fip
$ openstack server show vm4fip -c name -c status
+--------+--------+
| Field  | Value  |
+--------+--------+
| name   | vm4fip |
| status | ACTIVE |
+--------+--------+

Nous avons maintenant une VM nommée vm4fip avec une interface privée uniquement. Cette VM n'a aucun accès en dehors du test-network (réseau privé).

Étape 8

Créez une Floating IP à partir du réseau Ext-Net.

$ openstack floating ip create Ext-Net
$ openstack floating ip list
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
| ID                                   | Floating IP Address | Fixed IP Address | Port | Floating Network                     | Project                          |
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
| 7b646f78-9344-440e-83c1-57c828a03718 | 169.254.10.25       | None             | None | b2c02fdc-ffdf-40f6-9722-533bd7058c06 | 25a9e81103504980809e3f7573d93da3 |
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+

Étape 9

Associez la Floating IP à la VM vm4fip.

$ openstack server add floating ip vm4fip 169.254.10.25
$ openstack floating ip list
+--------------------------------------+---------------------+------------------+--------------------------------------+--------------------------------------+----------------------------------+
| ID                                   | Floating IP Address | Fixed IP Address | Port                                 | Floating Network                     | Project                          |
+--------------------------------------+---------------------+------------------+--------------------------------------+--------------------------------------+----------------------------------+
| 7b646f78-9344-440e-83c1-57c828a03718 | 169.254.10.25       | 192.168.0.201    | 1230869c-7116-4ee9-b688-8b6ebc153855 | b2c02fdc-ffdf-40f6-9722-533bd7058c06 | 25a9e81103504980809e3f7573d93da3 |
+--------------------------------------+---------------------+------------------+--------------------------------------+--------------------------------------+----------------------------------+

Votre VM ping maintenant via la Floating IP :

$ ping 169.254.10.25
PING 169.254.10.25 (169.254.10.25) 56(84) bytes of data.
64 bytes from 169.254.10.25: icmp_seq=1 ttl=52 time=0.641 ms
64 bytes from 169.254.10.25: icmp_seq=2 ttl=52 time=1.06 ms
64 bytes from 169.254.10.25: icmp_seq=3 ttl=52 time=0.744 ms
^C
--- 169.254.10.25 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2024ms
rtt min/avg/max/mdev = 0.641/0.817/1.067/0.182 ms

Et nous pouvons nous connecter à la VM vm4fip :

$  ssh [email protected] -i ./test-key.rsa
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-25-generic x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage

ubuntu@vm4fip:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
link/ether fa:16:3e:24:b9:c2 brd ff:ff:ff:ff:ff:ff
altname enp0s3
inet 192.168.0.201/24 metric 100 brd 192.168.0.255 scope global dynamic ens3
valid_lft 85929sec preferred_lft 85929sec
inet6 fe80::f816:3eff:fe24:b9c2/64 scope link
valid_lft forever preferred_lft forever

Comme vous pouvez le constater, la VM n'a qu'une IP privée mais elle est disponible depuis Internet via l'adresse Floating IP.

ubuntu@vm4fip:~$ sudo resolvectl dns ens3 213.186.33.99
ubuntu@vm4fip:~$ curl ifconfig.me/ip
169.254.10.25

[!warning]

Une fois qu'une Floating IP est attachée à une VM, elle est exposée au réseau public. Assurez-vous toujours que votre machine virtuelle et ses services sont correctement protégés par des groupes de sécurité ou un pare-feu virtuel.

Ajouter un DNS à une adresse Floating IP

[!primary] Cette manipulation doit être effectuée après avoir suivi les 9 étapes ci-dessus.

Pour ajouter un DNS à une adresse floating IP, exécutez la commande suivante à partir de la ligne de commande:

$ openstack floating ip set --dns-domain <DOMAIN_NAME> <IP_ADDRESS_ID>

Détacher une Floating IP

Vous pouvez détacher une Floating IP de votre VM à tout moment :

$ openstack server remove floating ip vm4fip 169.254.10.25
$ openstack floating ip list
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
| ID                                   | Floating IP Address | Fixed IP Address | Port | Floating Network                     | Project                          |
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
| 7b646f78-9344-440e-83c1-57c828a03718 | 169.254.10.25       | None             | None | b2c02fdc-ffdf-40f6-9722-533bd7058c06 | 25a9e81103504980809e3f7573d93da3 |
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
$ ping 169.254.10.25
PING 169.254.10.25 (169.254.10.25) 56(84) bytes of data.
^C
--- 169.254.10.25 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1019ms

Warning

Une fois qu'une Floating IP est détachée, elle retourne dans votre pool de Floating IPs. La Floating IP peut être attachée de nouveau à la même VM ou à toute autre VM. Détacher une Floating IP ne la supprime pas.

Supprimer une Floating IP

Pour supprimer une Floating IP, vous devez le faire explicitement :

$ openstack floating ip delete 169.254.10.25
$ openstack floating ip list
$

Depuis l'API OVHcloud

Attacher une Floating IP à une instance

L'API OVHcloud vous permet d'associer une Floating IP uniquement à une instance existante.

[!tabs] Étape 1

Pour commencer, récupérez toutes les informations dont vous aurez besoin.

Pour l'identifiant du projet (project ID), les appels ci-dessous vous permettent de le récupérer.

[!api]

@api {v1} /cloud GET /cloud/project

[!primary] Cet appel récupère la liste des projets.

[!api]

@api {v1} /cloud GET /cloud/project/{serviceName}

[!primary] Cet appel identifie le projet via le champ "description".

Étape 2

Pour l'identifiant de l'instance, l'appel ci-dessous vous permet de le récupérer.

[!api]

@api {v1} /cloud GET /cloud/project/{serviceName}/instance

[!primary] Complétez les champs avec les informations précédemment obtenues :

serviceName : ID du projet

region : vous pouvez spécifier la région pour des résultats plus rapides

La création va prendre quelques instants.

Étape 3

Une fois que vous avez rassemblé toutes les informations, vous pouvez créer une Floating IP et l'associer à une instance en utilisant l'appel suivant.

[!api]

@api {v1} /cloud GET /cloud/project/{serviceName}/instance

Remplissez les champs selon le tableau suivant :

Champ Description
serviceName Identifiant du projet
regionName Nom de la région dans laquelle se trouve l'instance
instanceid Identifiant de l'instance
ip l'IP privée de l'instance

[!primary] Pour le champ de propriété « Gateway », veuillez choisir l'option « Empty ». Cela est dû au fait que nous attachons une Floating IP à une instance créée au départ avec un réseau privé uniquement et qui est déjà rattachée à une gateway. Veuillez noter que, pour le moment, il ne sera pas possible de créer une Floating IP si l'instance est liée à un réseau privé qui n'est pas rattaché à une gateway.

La création va prendre quelques instants.

Détacher une Floating IP

Cette fonctionnalité est actuellement uniquement disponible via l'API OpenStack.

Supprimer une Floating IP

Pour supprimer une Floating IP, utilisez les appels API suivants.

Récupérez tout d'abord les informations nécessaires.

Pour l'identifiant du projet, les appels ci-dessous vous permettent de le récupérer :

[!api]

@api {v1} /cloud GET /cloud/project

[!primary] Cet appel récupère la liste des projets.

[!api]

@api {v1} /cloud GET /cloud/project/{serviceName}

[!primary] Cet appel identifie le projet via le champ « description ».

Récupérez l'identifiant de la Floating IP avec l'appel ci-dessous :

[!api]

@api {v1} /cloud GET /cloud/project/{serviceName}/region/{regionName}/floatingip

[!primary] Complétez les champs avec les informations précédemment obtenues :

  • serviceName : ID du projet
  • regionName : le nom de la région

Une fois les informations récupérées, utilisez l'appel suivant pour supprimer la Floating IP :

[!api]

@api {v1} /cloud DELETE /cloud/project/{serviceName}/region/{regionName}/floatingip/{floatingIpId}

[!primary] Complétez les champs avec les informations précédemment obtenues :

  • serviceName : ID du projet
  • regionName : le nom de la région où se trouve l'IP
  • floatingIpId : ID de l'adresse Floating IP

Aller plus loin

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Échangez avec notre communauté d'utilisateurs.