Configuration IP flottante d’Azure Load Balancer
L’équilibreur de charge offre plusieurs fonctionnalités pour les applications UDP et TCP.
IP flottante
Dans certains scénarios d’application, il est préférable ou nécessaire que plusieurs instances d’application utilisent le même port sur une machine virtuelle du pool principal. Des exemples courants de réutilisation de port incluent le clustering pour la haute disponibilité, les appliances réseau virtuelles, ainsi que l’exposition de plusieurs points de terminaison TLS sans nouveau chiffrement. Si vous souhaitez réutiliser le port principal pour plusieurs règles, vous devez activer la fonctionnalité d’adresse IP flottante dans la définition des règles. L’activation de l’adresse IP flottante permet une plus grande flexibilité.
État d’adresse IP flottante | Résultat |
---|---|
Adresse IP flottante activée | Azure fait passer le mappage d’adresses IP à l’adresse IP frontale de l’équilibreur de charge |
Adresse IP flottante désactivée | Azure expose l’adresse IP des instances de machine virtuelle |
Dans les schémas, vous voyez comment fonctionne le mappage d’adresses IP avant et après l’activation des IP flottantes :
Vous configurez l’IP flottante sur une règle d’équilibreur de charge par le biais du portail Azure, de l’API REST, de l’interface CLI, de PowerShell ou d’un autre client. En plus de la règle, vous devez configurer le système d’exploitation invité de votre machine virtuelle pour utiliser l’IP flottante.
Pour ce scénario, chaque machine virtuelle du pool principal a trois interfaces réseau :
- IP serveur principale : carte réseau virtuelle associée à la machine virtuelle (configuration IP de ressource de carte réseau d’Azure).
- Frontend 1(FIP1) : interface de bouclage du SE invité qui est configurée avec l’adresse IP de FIP1.
- Frontend 2 (FIP2) : interface de bouclage du SE invité qui est configurée avec l’adresse IP de FIP2.
Prenons pour exemple la même configuration frontale que dans le scénario précédent :
Serveur frontal | Adresse IP | protocol | port |
---|---|---|---|
1 | 65.52.0.1 | TCP | 80 |
2 | 65.52.0.2 | TCP | 80 |
Nous définissons deux règles IP flottantes :
Règle | Serveur frontal | Mapping au pool principal |
---|---|---|
1 | FIP1:80 | FIP1:80 (dans VM1 et VM2) |
2 | FIP2:80 | FIP2:80 (dans VM1 et VM2) |
Le tableau suivant présente le mappage complet de l’équilibrage de charge :
Règle | Adresse IP du serveur frontal | protocol | port | Destination | port |
---|---|---|---|---|---|
1 | 65.52.0.1 | TCP | 80 | identique au serveur frontal (65.52.0.1) | identique au serveur frontal (80) |
2 | 65.52.0.2 | TCP | 80 | identique au serveur frontal (65.52.0.2) | identique au serveur frontal (80) |
La destination du flux entrant est maintenant l’adresse IP de serveur frontal sur l’interface de bouclage de la machine virtuelle. Chaque règle doit produire un flux avec une combinaison unique d’adresse IP de destination et de port de destination. La réutilisation de port est possible sur la même machine virtuelle en modifiant l’adresse IP de destination en l’adresse IP frontale du flux. Votre service est exposé à l’équilibrage de charge en le liant à l’adresse IP du serveur frontal et au port de l’interface de bouclage associée.
Vous remarquerez que le port de destination ne change pas dans l’exemple. Dans un scénario d’adresse IP flottante, Azure Load Balancer prend également en charge la définition d’une règle d’équilibrage de charge pour modifier le port de destination principal afin qu’il soit différent du port de destination frontal.
Le type de règle faisant appel à l’adresse IP flottante constitue la base de plusieurs modèles de configuration d’équilibrage de charge. Un exemple actuellement disponible est la configuration Configurer un ou plusieurs écouteurs de groupe de disponibilité Always On. Au fil du temps, nous documenterons un plus grand nombre de ces scénarios. Pour plus d’informations sur les configurations de système d’exploitation invité spécifiques requises pour activer l’IP flottante, consultez Configuration de l’IP flottante Azure Load Balancer dans la section suivante.
Configuration du système d’exploitation invité pour l’IP flottante
Pour ce faire, vous configurez le système d’exploitation invité de la machine virtuelle pour recevoir tout le trafic lié à l’adresse IP frontale et au port de l’équilibreur de charge. La configuration de la machine virtuelle nécessite :
- l’ajout d’une interface réseau de bouclage ;
- la configuration de la boucle avec l’adresse IP frontale de l’équilibreur de charge ;
- de s’assurer que le système peut envoyer/recevoir des paquets sur des interfaces dont l’adresse IP n’est pas affectée à cette interface. Les systèmes Windows nécessitent des interfaces de définition pour utiliser le modèle « hôte faible ». Pour les systèmes Linux, ce modèle est normalement utilisé par défaut.
- la configuration du pare-feu hôte pour autoriser le trafic sur le port IP frontal.
Notes
Les exemples ci-dessous utilisent tous IPv4 ; pour utiliser IPv6, remplacez « ipv4 » par « ipv6 ».
Windows Server
Développez
Pour chaque machine virtuelle du pool de back-ends, exécutez les commandes suivantes à une invite de commandes Windows sur le serveur.
Pour obtenir la liste des noms d’interfaces que vous avez sur votre machine virtuelle, tapez la commande suivante :
netsh interface ipv4 show interface
Pour la carte réseau de machine virtuelle (managée par Azure), tapez la commande suivante :
netsh interface ipv4 set interface "interfacename" weakhostreceive=enabled
(remplacez interfacename par le nom de cette interface)
Pour chaque interface de bouclage que vous avez ajoutée, répétez les commandes suivantes :
netsh interface ipv4 add addr floatingipaddress floatingip floatingipnetmask
netsh interface ipv4 set interface floatingipaddress weakhostreceive=enabled weakhostsend=enabled
(remplacez loopbackinterface par le nom de cette interface de bouclage et floatingip et floatingipnetmask par les valeurs appropriées, par exemple celles qui correspondent à l’adresse IP frontale de l’équilibreur de charge)
Enfin, l’hôte invité utilise un pare-feu, assurez-vous qu’une règle est configurée afin que le trafic puisse atteindre la machine virtuelle sur les ports appropriés.
Cette exemple de configuration suppose une configuration IP frontale de l’équilibreur de charge de 1.2.3.4 et une règle d’équilibrage de charge pour le port 80.
netsh int ipv4 set int "Ethernet" weakhostreceive=enabled
netsh int ipv4 add addr "Loopback Pseudo-Interface 1" 1.2.3.4 255.255.255.0
netsh int ipv4 set int "Loopback Pseudo-Interface 1" weakhostreceive=enabled weakhostsend=enabled
netsh advfirewall firewall add rule name="http" protocol=TCP localport=80 dir=in action=allow enable=yes
Ubuntu
Développez
Pour chaque machine virtuelle du pool de back-ends, exécutez les commandes suivantes via une session SSH.
Pour obtenir la liste des noms d’interfaces que vous avez sur votre machine virtuelle, tapez la commande suivante :
ip addr
Pour chaque interface de bouclage, répétez ces commandes, qui attribuent l’adresse IP flottante à l’alias de bouclage :
sudo ip addr add floatingip/floatingipnetmask dev lo:0
(remplacez floatingip et floatingipnetmask par les valeurs appropriées qui correspondent à l’adresse IP frontale de l’équilibreur de charge)
Enfin, l’hôte invité utilise un pare-feu, assurez-vous qu’une règle est configurée afin que le trafic puisse atteindre la machine virtuelle sur les ports appropriés.
Cette exemple de configuration suppose une configuration IP frontale de l’équilibreur de charge de 1.2.3.4 et une règle d’équilibrage de charge pour le port 80. Cet exemple suppose également l’utilisation d’UFW (Uncomplicated Firewall) dans Ubuntu.
sudo ip addr add 1.2.3.4/24 dev lo:0
sudo ufw allow 80/tcp
Limitations
- Une fois l’IP flottante activée sur une règle d’équilibrage de charge, votre application doit utiliser la configuration IP principale de l’interface réseau pour le trafic sortant.
- Si votre application se lie à l’adresse IP front-end configurée sur l’interface de bouclage du système d’exploitation invité, la sortie Azure ne réécrit pas le flux sortant, et le flux échoue. Passez en revue les scénarios de sortie.
- Vous ne pouvez pas utiliser une adresse IP flottante sur des configurations IP secondaires pour des scénarios d’équilibrage de charge. Cette limitation ne s’applique pas aux équilibreurs de charge publics où la configuration IP secondaire est IPv6 dans le cadre d’une configuration à double pile ou aux architectures qui utilisent une passerelle NAT Gateway pour la connectivité sortante.
Étapes suivantes
- Découvrez comment utiliser plusieurs front-ends avec Azure Load Balancer.
- Découvrez les connexions sortantes d’Azure Load Balancer.