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 : Ce schéma montre le trafic réseau qui traverse un équilibreur de charge avant l’activation des IP flottantes.

Ce schéma montre le trafic réseau qui traverse un équilibreur de charge 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.

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.

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 ;
  • s’assurer que le système peut envoyer/recevoir des paquets sur les interfaces qui ne possèdent pas l’adresse IP qui leur a été attribuée. Les systèmes Windows nécessitent la d’interfaces de réglage 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.

Remarque

Les exemples ci-dessous utilisent tous IPv4 ; pour utiliser IPv6, remplacez « ipv4 » par « ipv6 ».

Windows Server

Développez

Pour chaque VM du pool backend, ajoutez d’abord un adaptateur réseau de boucle en utilisant la gestion des adaptateurs réseau Windows Server. Exécutez ensuite les commandes suivantes dans une invite de commandes Windows avec élévation de privilèges sur le serveur.

  1. Pour obtenir la liste des noms d’interface que vous avez sur votre machine virtuelle, entrez cette commande :

    netsh interface ipv4 show interface 
    
  2. Pour la carte réseau de machine virtuelle (gérée par Azure), entrez la commande suivante après avoir remplacé le nom de l’interface par le nom de l’interface que vous souhaitez utiliser :

    netsh interface ipv4 set interface <interface-name> weakhostreceive=enabled
    
  3. Pour chaque interface de bouclage que vous avez ajoutée, entrez ces commandes après avoir remplacé le nom de l’interface de bouclage par le nom de l’interface de bouclage et l’adresse IPflottante et le masque IPnet flottant avec les valeurs appropriées qui correspondent à l’adresse IP frontale de l’équilibreur de charge :

    netsh interface ipv4 add addr <loopback-interface-name> <floating-IP> <floating-IPnetmask>
    netsh interface ipv4 set interface <loopback-interface-name> weakhostreceive=enabled  weakhostsend=enabled 
    
  4. Si l’hôte invité utilise un pare-feu, assurez-vous de mettre en place une règle pour que le trafic puisse atteindre la VM sur les ports appropriés. Cette configuration d’exemple suppose une configuration IP frontale de l’équilibreur de charge 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
    
  5. Vérifiez que l’adresse IP frontend est affectée à l’interface de bouclage :

    netsh interface ipv4 show addresses name="<loopback-interface-name>"
    

    Confirmez que la sortie inclut l’adresse IP du frontend. À partir d’un client pouvant atteindre l’équilibreur de charge, connectez-vous à l’adresse IP frontend et au port de la règle pour vérifier que le trafic atteint la machine virtuelle.

Ubuntu

Développez

Pour chaque VM du pool backend, exécutez les commandes suivantes via une session SSH. Linux fournit déjà le périphérique de bouclage lo ; la commande utilise lo:0 comme libellé d’adresse, vous n’avez donc pas à créer une interface loopback distincte.

  1. Pour obtenir la liste des noms d’interfaces que vous avez sur votre machine virtuelle, tapez la commande suivante :

    ip addr
    
  2. Ajoutez l’adresse IP frontend au périphérique de bouclage. Remplacer le floating-IP par l’adresse IP frontale de l’équilibreur de charge et le floating-IPnetmask par la longueur du préfixe CIDR Linux, tel que 24:

    sudo ip addr add <floating-IP>/<floating-IPnetmask> dev lo:0
    
  3. Si l’hôte invité utilise un pare-feu, assurez-vous de mettre en place une règle pour que le trafic puisse atteindre la VM sur les ports appropriés. Cette configuration d’exemple suppose une configuration IP frontale d’équilibreur de charge 1.2.3.4, une règle d’équilibrage de charge pour le port 80, et l’utilisation de UFW (Uncomplicated Firewall) dans Ubuntu.

    sudo ip addr add 1.2.3.4/24 dev lo:0
    sudo ufw allow 80/tcp
    
  4. Vérifiez que l’adresse IP frontend est affectée au périphérique de bouclage :

    ip address show dev lo
    

    Confirmez que la sortie inclut l’adresse IP du frontend. À partir d’un client pouvant atteindre l’équilibreur de charge, connectez-vous à l’adresse IP frontend et au port de la règle pour vérifier que le trafic atteint la machine virtuelle.

Limites

Lorsque vous activez l’IP flottante, la connectivité sortante dépend de la configuration d’interface réseau IP utilisée par l’application et de la manière dont l’application se lie à l’adresse IP de boucle de façade.

  • 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 frontale configurée sur l’interface de bouclage dans le système d’exploitation invité, la connexion sortante d’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 et une partie d’une configuration à double pile, ou aux architectures qui utilisent une passerelle NAT pour la connectivité sortante.

Étapes suivantes