Les IP flottantes de DigitalOcean sont un moyen de réserver des adresses IP publiques qui sont indépendantes de vos ressources de calcul. Elles fournissent un moyen de réacheminer rapidement le trafic entre vos ressources sans attendre que les changements de DNS prennent effet.

Les composants de calcul tels que les Droplets sont fournis avec leur propre adresse IPv4 qui facilite l’accès public. Lorsque vous détruisez un Droplet, vous perdez vos droits sur son IP. Cette adresse retourne dans le pool qui est disponible pour les nouvelles créations de Droplets.

Les IP flottantes vous appartiennent aussi longtemps que vous en avez besoin. Une fois qu’une IP vous a été attribuée, elle peut être attachée à n’importe quelle ressource éligible ou rester en sommeil dans votre compte à l’avenir. La destruction d’un droplet ciblé par une IP flottante permet de conserver l’adresse disponible sur votre compte, en supprimant uniquement l’IP spécifique au droplet attribuée au moment de la création du droplet.

Utilisations des IP flottantes

Le modèle d’IP flottante vous permet d’imiter plus fidèlement les réseaux sur site dans le cloud. Si vous gériez votre propre centre de données, votre fournisseur d’accès Internet vous fournirait un bloc d’adresses IP que vous pourriez attribuer à un routeur passerelle au point d’entrée de votre réseau. Vous seriez alors libre de modifier l’infrastructure derrière le routeur sans changer les adresses IP que les utilisateurs externes doivent connaître.

Les IP flottantes offrent une facilité d’utilisation similaire pour les ressources de votre compte DigitalOcean. En faisant pointer votre DNS externe sur une IP flottante au lieu d’une IP de Droplet spécifique, vous pouvez remplacer des Droplets individuels tout en laissant les enregistrements DNS intacts.

Un cas d’utilisation courant est celui des scénarios de basculement en combinaison avec des déploiements de haute disponibilité. Vous pouvez rapidement détourner le trafic d’un Droplet qui rencontre des problèmes en changeant l’IP flottante pour référencer une autre cible dans votre compte. Vous pouvez utiliser l’API DigitalOcean pour mettre en œuvre des basculements automatiques en changeant la cible d’une IP flottante lorsque votre service de surveillance détecte une panne.

Créer des IP flottantes

Les IP flottantes peuvent être créées via le panneau de contrôle DigitalOcean ou l’API. Vous êtes initialement limité à trois IP flottantes sur votre compte ; les demandes pour plus doivent être initiées via le panneau de contrôle après avoir atteint le plafond.

Les adresses qui sont en cours d’utilisation sont actuellement gratuites. Vous serez facturé 4 $ par mois ou 0,00595 $ par heure si vous créez des IP flottantes mais les laissez en sommeil sur votre compte. Ces frais sont appliqués en raison de la pénurie mondiale d’adresses IPv4. Vous ne serez facturé qu’une fois que votre utilisation aura dépassé 1 $. Vous n’avez donc pas à vous soucier de brèves périodes de détachement lorsque vous créez et réaffectez vos adresses.

Pour créer une IP flottante, connectez-vous à votre compte du panneau de contrôle et cliquez sur le lien « Networking » dans la barre latérale gauche. Sélectionnez l’onglet « Floating IPs ». Utilisez le menu déroulant pour choisir le Droplet vers lequel vous voulez que le trafic soit acheminé. Ensuite, appuyez sur le bouton « Assign Floating IP » pour générer votre nouvelle adresse.

Les requêtes faites à cette adresse IP seront acheminées vers le Droplet sélectionné. Vous pouvez changer la cible en retournant à la page des IP flottantes, en cliquant sur le bouton « Plus » à côté de votre IP, et en sélectionnant « Réassigner » ou « Désassigner ». Si vous désassignez l’IP, la facturation commencera à s’accumuler pour la réservation non utilisée.

Avec l’API

Pour créer une IP flottante avec l’API DigitalOcean, envoyez une demande POST au point de terminaison api.digitalocean.com/v2/floating_ips. Consultez la documentation pour générer et fournir les informations d’accès correctes pour votre compte.

La requête doit inclure une charge utile JSON identifiant le Droplet à cibler :

{
« droplet_id » : 1234567890
}

Vous pouvez découvrir les ID de tous vos droplets en effectuant une requête GET sur le point de terminaison api.digitalocean.com/v2/droplets.

Pour changer la cible d’une IP flottante, vous devez utiliser le point de terminaison des actions spéciales :

POST api.digitalocean.com/v2/floating_ips/123.456.789.012/actions

L’IP flottante doit être identifiée par son adresse IPv4, comme indiqué dans l’URL ci-dessus. Incluez une charge utile JSON qui sélectionne l’action d’affectation et spécifie l’ID du droplet à cibler :

{
« droplet_id » : 1234567890,
« type » : « assign »
}

Pour désassigner une IP, utilisez le même point de terminaison mais substituez unassign comme champ de type dans votre charge utile JSON. Vous pouvez omettre le champ droplet_id.

Gestion du trafic sortant

Même si une IP flottante est attribuée, les droplets utiliseront toujours leurs adresses IP spécifiques pour le trafic sortant. Cela signifie que les services externes, tels que les API tierces, continueront d’identifier votre Droplet par sa propre adresse IP, et non par l’IP flottante.

Vous pouvez faire en sorte que le trafic sortant utilise l’IP flottante à la place en mettant à jour la table de routage dans la configuration réseau du Droplet. Commencez par utiliser l’API de métadonnées de DigitalOcean à partir du Droplet pour découvrir son adresse IP d’ancrage. Les IP d’ancrage sont des adresses IP par lesquelles passe le trafic lorsqu’il circule entre le Droplet et son IP flottante.

Renvoie l’adresse IP d’ancrage du droplet sur lequel cette commande est exécutée.

curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/gateway

Utilisez ensui

Utilisez ensuite la commande ip route pour modifier la route par défaut de votre Droplet :

Supprimez la route par défaut existante (IP spécifique au Droplet)

ip route del 0/0 ;

Définissez l’IP d’ancrage comme nouvelle route par défaut

ip route add default via dev eth0

Désormais, le trafic provenant de votre Droplet semblera provenir de l’IP flottante qui lui a été attribuée. Ceci est utile lorsque vous communiquez avec des services qui utilisent des URL de rappel déterminées automatiquement pour renvoyer ensuite une confirmation à votre système. La procédure garantit que le rappel sera envoyé à l’IP flottante qui expose actuellement votre Droplet.

Limitations

Les IP flottantes sont actuellement limitées aux adresses IPv4. DigitalOcean n’a pas annoncé publiquement son intention de proposer des IP flottantes IPv6.

Comme les IP flottantes sont attribuées à des régions spécifiques du centre de données, elles ne peuvent cibler que les Droplets situés dans le même centre de données. Une IP flottante à NYC1 ne peut pas être mappée à un Droplet à AMS1.

Seuls les Droplets peuvent être les cibles de vos Floating IPs. Il n’est pas possible de référencer un nœud Kubernetes géré ou toute autre ressource en utilisant une IP flottante. Dans le cas de Kubernetes, un équilibreur de charge est l’alternative la plus proche, vous permettant d’acheminer le trafic entre vos nœuds. Les équilibreurs de charge ont leur propre adresse IP publique et ne peuvent pas non plus être utilisés comme cible d’IP flottante.

Toutes les IP flottantes fonctionnent avec un seul Droplet à la fois – elles ne peuvent pas être mappées à plusieurs Droplets simultanément car elles n’ont pas de composant de routage actif. Elles n’offrent pas non plus d’enregistrements PTR pour le reverse DNS et ne peuvent pas être utilisées pour le trafic SMTP.

Conclusion

Les IP flottantes sont un mécanisme par lequel vous pouvez changer les cibles des adresses IP statiques accessibles au public dans votre compte DigitalOcean. L’IP flottante elle-même ne changera jamais d’adresse mais vous pouvez changer dynamiquement le Droplet vers lequel elle pointe à tout moment.

C’est toujours une bonne idée de faire pointer vos enregistrements DNS vers des IP flottantes plutôt que vers des Droplets spécifiques. Comme les IP flottantes sont gratuites lorsqu’elles sont utilisées, il y a très peu de raisons de ne pas le faire alors qu’elles vous donnent beaucoup plus de flexibilité en cas de panne. Même si la haute disponibilité ne fait pas partie de vos priorités, les IP flottantes peuvent vous aider à gérer les fenêtres de mise à niveau et les redémarrages de serveurs en vous permettant de rediriger temporairement le trafic vers une page de maintenance ou une réplique en lecture seule sur un autre Droplet.