Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Certains scénarios requièrent des machines virtuelles ou des instances de calcul pour disposer d’une connectivité sortante à Internet. Les adresses IP front-end d’un équilibreur de charge public peuvent être utilisées pour fournir une connectivité sortante à Internet pour des instances back-end. Cette configuration utilise la traduction d’adresses réseau source (SNAT) pour traduire l’adresse IP de la machine virtuelle en adresse IP publique de l’équilibreur de charge. La SNAT mappe l’adresse IP du back-end sur l’adresse IP publique de votre équilibreur de charge. SNAT permet d’empêcher des sources externes d’avoir une adresse directe vers les instances principales.
Choisissez une méthode de connectivité sortante
Choisissez une méthode explicite de connectivité sortante avant de déployer une charge de travail :
- Utilisez Azure NAT Gateway pour une connectivité évolutive et sortie uniquement depuis un sous-réseau.
- Utilisez une IP publique au niveau instance lorsqu’une machine virtuelle a besoin de sa propre adresse publique.
- Utilisez des règles sortantes lorsque les instances backend utilisent une IP frontend d’équilibreur de charge pour la connectivité sortante.
- Évitez l’accès sortant par défaut pour les charges de travail en production. Les nouveaux réseaux virtuels utilisent par défaut des sous-réseaux privés.
méthodes de connectivité sortante de Azure
Les méthodes suivantes sont les méthodes les plus couramment utilisées Azure pour activer la connectivité sortante, répertoriées dans l'ordre de priorité lorsque plusieurs méthodes sont utilisées :
| # | Méthode | Type d’allocation des ports | Qualité de production ? | Rating |
|---|---|---|---|---|
| 1 | Associer Azure NAT Gateway au sous-réseau | Dynamique, explicite | Oui | Meilleur |
| 2 | Attribuez une adresse IP publique à la machine virtuelle | Statique, explicite | Oui | OK |
| 3 | Utilisez une ou plusieurs adresse(s) IP frontale(s) d’un équilibreur de charge pour le trafic sortant via des Règles de trafic sortant | Statique, explicite | Oui, mais pas à l’échelle | OK |
| 4 | Utilisez une ou plusieurs adresse(s) IP frontale(s) d’un équilibreur de charge pour le trafic sortant sans des Règles de trafic sortant | Statique, implicite | Non | Pire |
| 5 | Accès sortant par défaut | Implicite | Non | Pire |
1. Associer Azure NAT Gateway au subnet
Azure NAT Gateway simplifie la connectivité internet sortante uniquement pour les réseaux virtuels. Lorsque vous le configurez sur un sous-réseau, toute la connectivité sortante utilise vos adresses IP publiques statiques spécifiées. Vous pouvez avoir une connectivité sortante sans équilibreur de charge ni adresses IP publiques directement connectées aux machines virtuelles. NAT Gateway est complètement managé et hautement résilient.
Utiliser NAT Gateway est la meilleure méthode pour la connectivité sortante. NAT Gateway est très extensible, fiable, et n’a pas les mêmes préoccupations concernant l’épuisement des ports SNAT.
NAT Gateway prime sur d’autres méthodes de connectivité sortante, notamment un équilibreur de charge, les adresses IP publiques au niveau d’instance et Pare-feu Azure.
Pour plus d’informations sur Azure NAT Gateway, consultez Qu'est-ce que l'Azure NAT Gateway. Pour plus d’informations sur le fonctionnement du comportement SNAT avec NAT Gateway, consultez SNAT avec NAT Gateway.
2. Attribuez une adresse IP publique à la machine virtuelle
| Associations | Méthode | Protocoles IP |
|---|---|---|
| Adresse IP publique sur la carte réseau de la machine virtuelle | Le port SNAT (Source Network Address Translation, traduction d’adresses réseau sources) n’est pas utilisé. |
Protocole TCP (Transmission Control Protocol) UDP (User Datagram Protocol) ICMP (Internet Control Message Protocol) ESP (Encapsulating Security Payload) |
Tout le trafic est retourné au client demandeur à partir de l’adresse IP publique de la machine virtuelle (IP au niveau de l’instance).
Azure utilise l'adresse IP publique affectée à la configuration IP de la carte réseau de l'instance pour tous les flux sortants. L’instance a tous les ports éphémères disponibles. Peu importe si la machine virtuelle est équilibrée en charge ou non. Ce scénario est prioritaire sur les autres, à l’exception de NAT Gateway.
Une adresse IP publique affectée à une machine virtuelle constitue une relation 1:1 (non pas une relation 1-à-plusieurs) ; elle est implémentée comme un NAT 1:1 sans état.
3. Utilisez la ou les adresses IP front-end d’un équilibreur de charge pour le trafic sortant via des règles de trafic sortant
Les règles de trafic sortant vous permettent de définir explicitement la traduction d’adresses réseau sources (SNAT) pour un équilibreur de charge standard public de référence SKU. Cette configuration vous permet d’utiliser la ou les adresse(s) IP publique(s) de votre équilibreur de charge pour la connectivité sortante des instances principales.
Cette configuration permet :
L’usurpation d’adresse IP
Simplification de vos listes d’autorisation
La réduction du nombre de ressources IP publiques pour le déploiement
Avec les règles de trafic sortant, vous disposez d’un contrôle déclaratif complet sur la connectivité Internet sortante. Les règles de trafic sortant vous permettent de mettre à l’échelle et de régler cette capacité en fonction de vos besoins spécifiques à l’aide d’une allocation de port manuelle. L’allocation manuelle du port SNAT en fonction de la taille du pool backend et du nombre de configurations d’adresses IP frontales peut permettre d’éviter l’épuisement des SNAT.
Vous pouvez allouer manuellement les ports SNAT en fonction des « ports par instance » ou du « nombre maximal d’instances backend ». Si vous avez des machines virtuelles dans le backend, il est recommandé d’allouer des ports en fonction des « ports par instance » pour obtenir une utilisation maximale du port SNAT.
Calculez les ports par instance comme suit :
Nombre d’adresses IP frontales * 64 000 / Nombre d’instances back-end
Si vous avez Virtual Machine Scale Sets dans le back-end, il est recommandé d'allouer des ports par « nombre maximal d'instances principales ». Si plus de machines virtuelles sont ajoutées au serveur principal que les ports SNAT restants autorisés, le scale-out de Virtual Machine Scale Sets peut être bloqué ou les nouvelles machines virtuelles ne recevront pas de ports SNAT suffisants.
Remarque
Quand plusieurs adresses IP front-end sont configurées en utilisant des règles de trafic sortant, les connexions sortantes peuvent provenir de n’importe quelle adresse IP front-end configurée pour l’instance back-end. Nous vous déconseillons de créer des dépendances sur lesquelles une adresse IP front-end peut être sélectionnée pour des connexions.
Pour plus d’informations sur les règles de trafic sortant, consultez Règles de trafic sortant.
4. Utilisez la ou les adresses IP front-end d’un équilibreur de charge pour le trafic sortant sans règles de trafic sortant
Cette option est similaire à la précédente, sauf quand aucune règle de trafic sortant n’est créée. Dans ce cas, le ou les serveurs frontaux de l’équilibreur de charge sont toujours utilisés pour le trafic sortant, mais cela est effectué implicitement sans règles qui spécifient le serveur frontal qui serait utilisé. Le fait de ne pas utiliser de règles sortantes diminue également l’évolutivité du trafic sortant, car la connectivité sortante implicite dispose d’un nombre fixe de ports SNAT par adresse IP frontale, ce qui peut entraîner un épuisement des ports dans les scénarios à fort trafic.
5. Accès sortant par défaut
Dans Azure, les machines virtuelles créées dans un réseau virtuel sans connectivité sortante explicite définie sont affectées à une adresse IP publique sortante par défaut. Cette adresse IP active la connectivité sortante à partir des ressources sur Internet. Cet accès est appelé accès sortant par défaut. Cette méthode d’accès n’est pas recommandée, car elle n’est pas sécurisée et les adresses IP sont susceptibles de changer.
Important
Le 31 mars 2026, les nouveaux réseaux virtuels utilisent par défaut des sous-réseaux privés. Pour plus d’informations, consultez l’annonce officielle. Utilisez l’une des formes explicites de connectivité, comme indiqué dans les options 1 à 3 ci-dessus.
Ports SNAT d’Azure Load Balancer
Les ports génèrent des identificateurs uniques qui gèrent des flux distincts. Internet utilise cinq tuples pour fournir cette distinction.
Si vous utilisez un port pour les connexions entrantes, il dispose d’un écouteur pour les demandes de connexion entrantes sur ce port. Ce port ne peut pas être utilisé pour les connexions sortantes. Pour établir une connexion sortante, utilisez un port éphémère pour fournir à la destination un port sur lequel communiquer et gérer un flux de trafic distinct. Quand ces ports éphémères sont utilisés pour SNAT, ils sont appelés ports SNAT
Par définition, chaque adresse IP a 65 535 ports. Chaque port peut être utilisé pour les connexions entrantes ou sortantes pour TCP (Protocole de contrôle de transmission) et UDP (protocole de datagramme utilisateur). Lorsque vous ajoutez une adresse IP publique en tant qu’adresse IP frontale à un équilibreur de charge, 64 000 ports sont éligibles pour SNAT.
Chaque port utilisé dans une règle NAT d’équilibrage de charge ou de trafic entrant consomme une plage de huit ports issus des 64 000 ports SNAT disponibles. Cette utilisation réduit le nombre de ports éligibles pour SNAT, si la même adresse IP de front-end est utilisée pour la connectivité sortante. Si les ports consommés par l’équilibrage de charge ou les règles NAT de trafic entrant se trouvent dans le même bloc de huit ports que ceux consommés par une autre règle, les règles ne requièrent aucun autre port.
Remarque
Si vous devez vous connecter à des services PaaS pris Azure en charge tels que stockage Azure, Azure SQL ou Azure Cosmos DB, utilisez Azure Private Link pour éviter entièrement la SNAT. Azure Private Link envoie le trafic de votre réseau virtuel vers Azure services via le réseau principal Azure au lieu d’Internet.
Private Link est l’option recommandée sur les points de terminaison de service pour l’accès privé aux services hébergés Azure. Pour plus d’informations sur la différence entre les points de terminaison de Private Link et de service, consultez Compare Private Endpoints and Service Endpoints.
Comportement par défaut du SNAT d’Azure Load Balancer
Lorsqu’une machine virtuelle crée un flux sortant, Azure traduit l’adresse IP source en adresse IP éphémère. Azure effectue cette traduction via SNAT.
Si vous utilisez SNAT sans règles de trafic sortant via un équilibreur de charge public, le système préalloue les ports SNAT comme décrit dans la table d’allocation de ports SNAT par défaut suivante :
Tableau d’attribution des ports par défaut
Lorsque vous activez l’allocation de ports par défaut, le système alloue des ports SNAT en fonction de la taille du pool principal. Chaque back-end reçoit le nombre de ports définis par la table, par adresse IP frontale, jusqu’à un maximum de 1 024 ports. N’utilisez pas l’allocation de ports par défaut pour les charges de travail de production, car il alloue un nombre minimal de ports à chaque instance principale et augmente le risque d’épuisement des ports SNAT. Envisagez plutôt d’utiliser Azure NAT Gateway ou d’allouer manuellement des ports dans les règles de trafic sortant de votre équilibreur de charge.
Vous pouvez activer l’allocation de port par défaut de plusieurs façons :
- Configurez une règle d’équilibrage de charge avec
disableOutboundSnatdéfini surfalse, ou sélectionnez l’option d’allocation de ports par défaut dans une règle d’équilibrage de charge du portail Azure. - Configurez une règle de trafic sortant, mais définissez la propriété
allocatedOutboundPortssur0, ou sélectionnez Activer l’allocation de port par défaut dans le portail Azure.
Par exemple, avec 100 machines virtuelles dans un pool principal et une seule adresse IP frontale, chaque machine virtuelle reçoit 512 ports. Si vous ajoutez une deuxième adresse IP frontale, chaque machine virtuelle reçoit un nombre supplémentaire de 512 ports. Cette allocation signifie que chaque machine virtuelle est allouée à un total de 1 024 ports. Par conséquent, l’ajout d’une troisième adresse IP frontale n’augmente pas le nombre de ports SNAT alloués au-delà de 1 024 ports.
En règle générale, vous pouvez calculer le nombre de ports SNAT fournis lorsque l’allocation de ports par défaut est appliquée comme suit : MIN(# of default SNAT ports provided based on pool size * number of frontend IPs associated with the pool, 1024).
Le tableau suivant présente les préallocations de port SNAT pour une seule IP de front-end, en fonction de la taille du pool de back-ends :
| Taille du pool (instances de machine virtuelle) | Ports SNAT par défaut |
|---|---|
| 1-50 | 1 024 |
| 51-100 | 512 |
| 101-200 | 256 |
| 201-400 | 128 |
| 401-800 | 64 |
| 801-1 000 | 32 |
Épuisement des ports
Chaque connexion à une même adresse IP de destination et au même port de destination utilise un port SNAT. Cette connexion gère un flux de trafic distinct depuis l’instance ou le client back-end vers un serveur. Ce processus fournit au serveur un port distinct vers lequel envoyer le trafic. Sans ce processus, l’ordinateur client ignore dans quel flux trouver tel ou tel paquet.
Imaginez que plusieurs navigateurs vont vers https://www.microsoft.com, à savoir :
IP de destination = 23.53.254.142
Port de destination = 443
Protocole = TCP
Sans port SNAT pour le trafic en retour, le client ne dispose d’aucun moyen de distinguer les résultats de différentes requêtes.
Le nombre de connexions sortantes peut augmenter rapidement. L’instance back-end risque de se retrouver en manque de ports. Utilisez la fonctionnalité de réutilisation des connexions dans votre application. Sans la réutilisation des connexions, le risque d’épuisement des ports SNAT augmente.
Pour plus d’informations sur le regroupement de connexions avec Azure App Service, consultez Résolution des erreurs de connexion sortantes intermittentes dans Azure App Service.
Un épuisement des ports provoque l’échec des nouvelles connexions sortantes vers une adresse IP de destination. Les connexions sont correctement établies lorsqu’un port est disponible. Cet épuisement se produit lorsque les 64 000 ports à partir d’une adresse IP sont répartis sur de nombreuses instances back-end. Pour obtenir des conseils sur l’atténuation de l’épuisement des ports SNAT, consultez Support et résolution des problèmes pour Azure Load Balancer.
Réutilisation des ports
Pour TCP, chaque connexion active nécessite un tuplet source traduit distinct vers un tuple de destination spécifique, qui se compose de l’adresse IP de destination et du port de destination. Vous pouvez réutiliser un port SNAT pour une connexion à une adresse IP de destination différente ou à un port de destination différent. Vous ne pouvez pas le réutiliser pour une autre connexion active depuis la même instance backend vers la même adresse IP de destination et le même port de destination.
Pour les connexions UDP, l’équilibreur de charge utilise un algorithme nommé port-restricted cone NAT (ou NAT à cône restrictif sur les ports), qui consomme un port SNAT par adresse IP de destination, quel que soit le port de destination.
Vous pouvez réutiliser des ports individuels pour un nombre illimité de connexions où la réutilisation est autorisée (lorsque l’adresse IP de destination ou le port est différent).
Dans l’exemple du tableau suivant, une instance principale avec ip privée 10.0.0.1 établit des connexions TCP aux adresses IP de destination 23.53.254.142 et 26.108.254.155, tandis que l’équilibreur de charge est configuré avec l’adresse IP frontale 192.0.2.0. Comme les adresses IP de destination sont différentes, le même port SNAT peut être réutilisé pour plusieurs connexions.
| Flux | Tuple source | Tuple source après SNAT | Tuple de destination |
|---|---|---|---|
| 1 | 10.0.0.1:80 | 192.0.2.0:1 | 23.53.254.142:80 |
| 2 | 10.0.0.1:80 | 192.0.2.0:1 | 26.108.254.155:80 |
Contraintes
Les contraintes suivantes s’appliquent à Azure Load Balancer SNAT. Les contraintes individuelles identifient lorsqu’elles ne s’appliquent qu’à TCP, UDP, aux règles sortantes ou aux configurations IP publiques au niveau de l’instance.
Lorsqu’une connexion est inactive sans nouveaux paquets envoyés, les ports sont libérés après 4 à 120 minutes.
Vous pouvez configurer ce seuil via des règles de trafic sortant.
Chaque adresse IP fournit 64 000 ports que vous pouvez utiliser pour SNAT.
Chaque port peut être utilisé pour les connexions TCP et UDP à une adresse IP de destination.
Vous avez besoin d’un port UDP SNAT si le port de destination est unique ou non. Pour chaque connexion UDP à une adresse IP de destination, un port UDP SNAT est utilisé.
Un port TCP SNAT peut être utilisé pour plusieurs connexions à la même adresse IP de destination tant que les ports de destination sont différents.
L’épuisement SNAT se produit lorsqu’une instance back-end s’épuise de ports SNAT donnés. Un équilibreur de charge peut toujours avoir des ports SNAT inutilisés. Si les ports SNAT utilisés d’une instance principale dépassent ses ports SNAT donnés, il ne peut pas établir de nouvelles connexions sortantes.
Le système envoie des paquets fragmentés sauf si la sortie se fait via une adresse IP publique au niveau instance sur la carte réseau de la VM.
Les règles de trafic sortant ne prennent pas en charge les configurations IPv4 secondaires d’une interface réseau. Pour la connectivité sortante sur des configurations IPv4 secondaires, attachez des adresses IP publiques au niveau de l’instance ou utilisez Azure NAT Gateway à la place.
Étapes suivantes
- Support et résolution des problèmes pour Azure Load Balancer
- Passez en revue les métriques SNAT et familiarisez-vous avec la méthode appropriée pour les filtrer, les fractionner et les afficher.
- Apprenez comment migrer votre méthode de connectivité sortante existante vers Azure NAT Gateway.