Adresses IP et ports

Cette page explique comment les passerelles Cloud NAT utilisent les adresses IP ils allouent des ports sources aux instances de machines virtuelles (VM) Compute Engine. et les nœuds Google Kubernetes Engine (GKE) qui utilisent ces passerelles.

Avant d'examiner ces informations, consultez la page Présentation de Cloud NAT.

Adresses IP publiques NAT

Une adresse IP publique NAT est une adresse IP externe régionale sont routables sur Internet. Une VM sans adresse IP externe, située dans un desservi par une passerelle Public NAT, utilise un sous-réseau Adresse IP NAT publique lorsqu'elle envoie des paquets à une destination sur sur Internet.

Pour attribuer des adresses IP de traduction d'adresses réseau (NAT) à une passerelle Public NAT, utilisez l'une des les méthodes suivantes:

  • Allocation automatique d'adresses IP NAT Lorsque vous sélectionnez cette méthode, ou choisir les paramètres Google Cloud par défaut, Public NAT ajoute automatiquement d'adresses IP externes régionales à votre passerelle en fonction des éléments suivants:

    • Niveau de réseau que vous sélectionnez
    • Le nombre de VM qui utilisent la passerelle
    • Nombre de ports réservés pour chaque VM

    Le NAT public supprime aussi automatiquement une adresse IP NAT lorsqu'elle n'a plus besoin de ports sources sur cette adresse IP NAT.

    Voici les caractéristiques de l'allocation automatique d'adresses IP NAT:

    • Lorsqu'une passerelle Public NAT ajoute une adresse IP NAT, elle crée un une adresse IP externe régionale statique (réservée) au niveau de réseau auquel vous sélectionnées lors de la configuration de la passerelle. Par exemple, si vous avez niveau Premium sélectionné, la passerelle Public NAT crée l'adresse IP à ce niveau. Les niveaux de réseau pris en charge sont le niveau Premium (par défaut, option) et du niveau Standard.

      Vous pouvez consulter les adresses IP NAT ajoutées automatiquement dans la liste des adresses IP statiques des adresses IP externes. Ces adresses ne sont pas comptabilisées dans les quotas par projet.

    • Si vous modifiez le niveau de réseau d'une passerelle Public NAT, existante les adresses IP de cette passerelle sont libérées et un nouvel ensemble d'adresses IP du niveau sélectionné est attribué.
    • Avec l'allocation automatique, vous ne pouvez pas prédire l'adresse IP suivante qui sera allouée. Si vous avez besoin de connaître l'ensemble des adresses IP NAT possibles à l'avance (par exemple, pour créer une liste d'autorisation), vous devez utiliser l'attribution manuelle d'adresses IP NAT.
    • Lorsque les adresses IP NAT ajoutées automatiquement ne sont plus utilisées, elles sont supprimés. Cependant, Public NAT ne désaffecte une adresse que lorsque le la dernière VM attribuée à l'adresse n'utilise plus aucun port. Ainsi, lorsque le de VM utilisant le NAT public tombe en panne, vous ne verrez peut-être pas de réduction des adresses IP . En effet, Cloud NAT n'effectue pas de manière dynamique réaffecter les VM d'une adresse IP à une autre, car la réaffectation de perturber les connexions établies. Tant qu'il y a au moins une VM utilisant une adresse IP, cette adresse IP reste active et de nouvelles VM peuvent lui être attribuées.

      Si vous souhaitez pouvoir réaffecter manuellement des VM d'une adresse IP à une autre afin de réduire l'utilisation des adresses IP, utilisez les attributions d'adresses IP NAT manuelles. L'attribution manuelle d'adresses IP NAT permet drainage des adresses IP publiques NAT.

    • Si vous passez ultérieurement à l'attribution manuelle d'adresses IP NAT, les adresses IP externes régionales automatiquement réservées sont supprimées. Pour en savoir plus, consultez la section Changer de méthode d'attribution.

  • Attribution manuelle des adresses IP NAT Sélectionnez cette option pour créer et attribuer manuellement des adresses IP externes régionales statiques (réservées) à vos Passerelle NAT publique. Vous pouvez attribuer manuellement des adresses IP Niveau Premium, du niveau Standard ou les deux, sous réserve de conditions.

    • Vous pouvez augmenter ou diminuer le nombre d'adresses IP NAT attribuées manuellement en modifiant la passerelle Cloud NAT.
    • Lorsque vous utilisez l'attribution manuelle d'adresses IP NAT, vous devez calculer le nombre d'adresses IP externes régionales dont vous avez besoin de passerelle VPN haute disponibilité. Si votre passerelle n'a plus d'adresses IP NAT, supprime des paquets. Les paquets supprimés sont consignés lorsque vous utilisez la journalisation Cloud NAT pour activer la journalisation des erreurs.
    • Pour obtenir des exemples de calculs, consultez l'exemple de réservation de port.

Pour connaître le nombre maximal d'adresses IP NAT allouées automatiquement ou attribuées manuellement, consultez la section Limites de Cloud NAT.

Attribuer manuellement une combinaison d'adresses IP de niveaux Premium et Standard

Lorsque vous créez une passerelle Public NAT avec la méthode d'attribution manuelle d'adresses IP NAT, vous pouvez attribuer une combinaison d'adresses IP de Niveau Premium et Standard tant que les adresses IP des différents niveaux de réseau n'appartiennent pas à la même règle. (y compris la règle par défaut).

Dans une règle (y compris la règle par défaut), toutes les adresses IP attribuées plages doivent être du même niveau de réseau. Si vous essayez d'utiliser des adresses IP d'une même règle, Google Cloud rejette la configuration.

Changer de méthode d'attribution

Vous pouvez faire passer une passerelle Public NAT de l'adresse IP NAT automatique l'attribution à l'attribution manuelle d'adresses IP NAT ; En revanche, les adresses IP NAT ne peuvent pas être conservées. Même si les adresses IP NAT allouées automatiquement sont statiques, elles ne peuvent pas être déplacées vers une attribution manuelle d'adresses IP NAT. Pour Par exemple, vous ne pouvez pas commencer à utiliser une passerelle publique NAT avec d'adresses IP NAT allouées, puis qui utilisent les mêmes adresses aux adresses IP NAT attribuées manuellement.

Ensemble des adresses IP externes régionales utilisées par Public NAT l'allocation automatique d'adresses IP NAT est différente de l'ensemble des adresses IP externes que vous choisissez manuellement.

Drainer les adresses IP publiques NAT

Lorsque vous configurez une passerelle Public NAT avec une adresse IP NAT manuelle l'attribution, vous pouvez choisir ce qui se passe lorsque vous devez réduire le nombre de Adresses IP NAT utilisées par la passerelle:

  • Si vous supprimez une adresse IP NAT attribuée manuellement, les connexions NAT établies sont immédiatement interrompues.

  • Vous pouvez choisir de drainer une adresse IP NAT attribuée manuellement. Drainage indique à la passerelle Public NAT de cesser d'utiliser l'adresse IP NAT pour de nouvelles connexions, mais continuez à l'utiliser pour les connexions établies. Les connexions établies sont autorisées à se fermer normalement au lieu d'être immédiatement supprimées. Pour drainer une adresse IP associée à un service de NAT public qui n'utilise pas de règles NAT, consultez Drainez les adresses IP externes associées à la NAT. Pour drainer une adresse IP associée à une passerelle NAT qui utilise la NAT règles, consultez Mettre à jour les règles NAT.

Adresses IP NAT privées

Une adresse NAT privée est une adresse IPv4 interne régionale qui provient de la plage d'adresses IPv4 principale d'un réseau NAT sous-réseau situé dans la même région et le même réseau VPC Passerelle NAT privée. Une adresse IP NAT privée ne peut pas être routée sur Internet. des plages d'adresses IPv4 principales Les sous-réseaux NAT privés ne peuvent être utilisés Passerelles NAT privées. Créer un NAT privé sous-réseau, ajoutez uniquement une plage d'adresses IPv4 sous-réseau à l'aide du sous-réseau Google Cloud CLI et l'option --purpose=PRIVATE_NAT.

Après avoir configuré une passerelle NAT privée pour fournir des services NAT pour un sous-réseau d'un réseau VPC, les VM dotées d'interfaces réseau ce sous-réseau peut envoyer des paquets aux ressources situées sur d'autres réseaux, tels que des réseaux VPC associés le même hub Network Connectivity Center que le réseau qui héberge le service Private NAT une passerelle réseau ou des réseaux extérieurs à Google Cloud connectés Google Cloud via Cloud Interconnect ou Cloud VPN. À la sortie, Google Cloud remplace l'adresse IP source par une adresse IP du sous-réseau NAT privé associé à la passerelle.

Voici les caractéristiques des adresses IP NAT privées:

  • Vous ne pouvez pas attribuer automatiquement des adresses IP NAT privées Passerelle NAT privée. À la place, lorsque vous créez une règle de passerelle NAT privée, spécifiez manuellement Sous-réseau ou sous-réseaux NAT privés NAT privé les sous-réseaux doivent être situés dans le même réseau VPC et dans la même région que la passerelle. La passerelle n'utilise que les adresses IP de l'adresse IPv4 principale des sous-réseaux NAT privés.
  • Pour déterminer le nombre d'adresses IP NAT pour chaque sous-réseau NAT privé pouvez fournir, utilisez la formule suivante: 2(32 - PREFIX_LENGTH) - 4, où PREFIX_LENGTH correspond à la longueur du masque de sous-réseau de l'adresse IPv4 principale du sous-réseau NAT privé la plage d'adresses IP interne. Quatre adresses IP sont inutilisable dans tous les cas la plage d'adresses IPv4 principale du sous-réseau.

Ports

Chaque adresse IP NAT sur une passerelle Cloud NAT (à la fois Public NAT et Private NAT) offre 64 512 ports sources TCP et 64 512 ports sources UDP. TCP et UDP chacun acceptent 65 536 ports par adresse IP, mais Cloud NAT n'utilise pas le premier 1 024 ports bien connus (privilégiés).

Lorsqu'une passerelle Cloud NAT effectue une traduction d'adresse réseau source (SNAT) sur un paquet envoyé par une VM, elle modifie l'adresse IP NAT et le port source du paquet.

Lorsque vous créez une passerelle Cloud NAT, vous choisissez d'utiliser l'allocation de ports statique ou l'attribution de ports dynamique. Lorsque vous modifiez le mode d'attribution de port, toutes les connexions existantes qui utilisent la passerelle Public NAT sont fermées et doivent être rétablies.

Si vous avez attribué manuellement plusieurs adresses IP externes régionales statiques (réservées) à votre passerelle Public NAT, une VM unique qui utilise le peuvent obtenir les ports requis à partir de n'importe quelle adresse IP NAT attribuée les adresses IP NAT, même à partir de plusieurs adresses IP NAT simultanément.

Allocation de ports statique

Lorsque vous configurez l'allocation de ports statique, vous spécifiez un nombre minimal de ports par instance de VM. Si vous ne spécifiez pas le nombre minimal de ports par rapport à une VM, Google Cloud utilise la valeur par défaut.

L'allocation de ports statiques est activée par défaut pour le NAT public. Le NAT privé, en revanche, utilise l'allocation de ports dynamique par défaut.

Étant donné que le même nombre de ports est alloué à toutes les VM, l'allocation de ports statique fonctionne mieux si toutes les VM utilisent le même trafic de sortie. Si certaines VM utilisent plus de ports que d'autres, il est possible que les ports de la passerelle Cloud NAT soient sous-utilisés. Si de sortie varie, envisagez de configurer un port dynamique l'allocation de capacité.

Si vous souhaitez configurer le mappage indépendant du point de terminaison sur votre passerelle Public NAT, vous devez utiliser l'allocation de ports statiques. Mappage indépendant du point de terminaison n'est pas disponible pour les passerelles NAT privées.

Allocation de ports dynamique

Lorsque vous configurez l'allocation de ports dynamique, vous spécifiez un minimum le nombre de ports par instance de VM et le nombre maximal de ports par instance de VM.

L'allocation de ports dynamique est activée par défaut pour le NAT privé. Pour Public NAT, vous devez configurer l'allocation de ports dynamique manuellement.

La configuration de l'allocation de ports dynamique permet à la même passerelle Cloud NAT d'allouer un nombre différent de ports par VM, en fonction de l'utilisation de la VM. Initialement, une VM se voit attribuer le nombre minimal de ports par instance de VM. Si une VM est sur le point d'épuiser tous les ports qui lui sont alloués, le nombre de ports qui lui sont attribués est doublé. La VM peut demander à plusieurs reprises un nombre maximal de ports jusqu'à atteindre le nombre maximal de ports par instance de VM. Lorsque l'utilisation des ports diminue considérablement, les ports sont libérés et peuvent être alloués à d'autres VM utilisant la même passerelle NAT.

L'allocation de ports dynamique présente les avantages suivants :

  • Le nombre de ports alloués, mais non utilisés, est réduit.

  • La passerelle NAT surveille l'utilisation de chaque VM et modifie le nombre de ports alloués à chaque VM en fonction des besoins. Vous n'avez pas besoin de surveiller l'utilisation du port ni d'ajuster la configuration de la passerelle NAT.

Avant d'utiliser l'allocation dynamique de ports, tenez compte des points suivants :

  • Si le mappage indépendant du point de terminaison est activé sur la passerelle Cloud NAT, vous ne pouvez pas configurer l'allocation de ports dynamique. Si vous avez besoin d'un mappage indépendant des points de terminaison, utilisez l'allocation de ports statique.

  • Pendant l'allocation de ports supplémentaires aux VM, des délais avant expiration de la connexion ou une latence peuvent s'afficher. Pour connaître les stratégies permettant d'éviter les pertes de connexions, consultez la page Réduire les connexions perdues avec l'allocation dynamique de ports.

Changer de méthode d'allocation de ports

Vous pouvez basculer entre l'allocation de ports statique et l'allocation de ports dynamique pour une à une passerelle Cloud NAT donnée.

Le passage à la méthode d'allocation de ports dynamique interrompt les connexions NAT existantes uniquement si l'une des conditions suivantes est remplie:

  • Vous définissez le nombre maximal de ports par VM sur une valeur inférieur au nombre minimal de ports par VM spécifié à la Configuration NAT (avec allocation de ports statique)

    Si, dans la configuration précédente, le nombre minimal de ports par VM a été défini sur une valeur supérieure à 1024, et si vous spécifiez 1024 comme nombre maximal de ports par VM dans la nouvelle configuration, les connexions existantes sont interrompues car la première condition est prioritaire.

  • Vous définissez le nombre maximal de ports par VM sur une valeur inférieure à 1024.

Passer à l'allocation de ports dynamique, sauf si l'une des conditions précédentes est remplie n'interrompt pas les connexions NAT existantes.

La désactivation de l'allocation de ports dynamique et le passage à l'allocation de ports statique sont perturbatrice et cela interrompt toutes les connexions NAT actives.

Procédure de réservation de port

Cloud NAT utilise la procédure suivante pour provisionner l'adresse IP source NAT et des tuples de port source pour chaque VM que le service Cloud NAT (à la fois et Private NAT).

  1. Cloud NAT détermine les adresses IP internes de VM pour lesquelles le NAT doit être effectué. Les adresses IP internes de VM sont déterminées par les plages d'adresses IP de sous-réseau que la passerelle a été configurée pour utiliser.

    • Si la passerelle Public NAT est configurée pour effectuer la NAT pour la plage d'adresses IP principale du sous-réseau utilisé par l'interface réseau de la VM, la passerelle effectue une NAT à la fois pour l'adresse IP interne principale de la VM et pour n'importe quelle plage d'adresses IP d'alias de la VM à partir de la couche principale d'adresses IP.

    • Si la passerelle Public NAT est configurée pour effectuer la NAT pour un plage d'adresses IP secondaire du sous-réseau utilisé par l'interface réseau de la VM, la passerelle effectue une NAT pour toutes les plages d'adresses IP d'alias du sous-réseau secondaire d'une plage d'adresses IP.

    Comme une passerelle NAT privée est configurée pour effectuer une NAT pour toutes les adresses IP, du sous-réseau utilisé par l'interface réseau de la VM, la passerelle effectue NAT pour toutes les plages d'adresses IP de ce sous-réseau.

  2. Cloud NAT ajuste le nombre minimal de ports par instance de VM si nécessaire. Si l'allocation de ports statique est configurée et que la passerelle exécute le NAT pour les plages d'adresses IP d'alias comportant plus d'une adresse (masque de réseau plus petit que /32), Cloud NAT ajuste le nombre minimal de ports par VM afin qu'il corresponde au maximum de ces deux valeurs :

    • Nombre minimal de ports par instance de VM que vous spécifiez

    • Le nombre 1 024

    Dans toutes les autres situations, y compris lorsque l'allocation de ports dynamique est configurée, la passerelle Cloud NAT passe à l'étape suivante en utilisant le nombre minimal de ports spécifié par instance de VM comme entrée. Si vous ne spécifiez pas nombre minimal de ports par instance de VM, la valeur par défaut est utilisée: 64 pour le port statique et 32 pour l'allocation de ports dynamique.

  3. Cloud NAT réserve les tuples d'adresses IP NAT sources et de ports sources pour chaque VM. La passerelle Cloud NAT utilise le nombre minimal de ports attribué ou ajusté à l'étape précédente par instance de VM pour calculer le nombre de tuples d'adresses IP NAT sources et de ports sources à attribuer à la VM.

    Pour Public NAT, Google Cloud alloue une adresse IP source NAT adresse et tuples de port source utilisant des multiples de puissances de deux, donc le nombre de Les tuples d'adresse IP source et de port source NAT sont supérieurs ou égaux au par instance de VM que vous spécifiez.

    Pour Private NAT, Google Cloud alloue deux fois le nombre sur obligatoire le nombre minimal de ports par VM pour garantir la fiabilité. Assurez-vous que le sous-réseau NAT privé attribue des adresses IP et les ports sont dimensionnés de manière appropriée.

    • Si la passerelle Cloud NAT utilise plusieurs adresses IP NAT, pour que les tuples d'adresse IP source et de port source NAT s'étendre sur plusieurs adresses IP NAT. Une adresse IP NAT unique peut ne pas avoir suffisamment de ports sources disponibles pour prendre en charge le nombre de tuples d'adresses IP NAT sources et de ports sources nécessaire à une VM.

    • La passerelle Cloud NAT alloue les tuples d'adresses IP sources et de ports sources à chaque VM.

      • Si vous avez configuré l'allocation de ports statique, le nombre de tuples d'adresses IP sources et de ports sources est fixe. Celles-ci ne peuvent pas utiliser plus de tuples que ceux qui leur ont été alloués, même pendant les pics de trafic.

      • Si vous avez configuré l'allocation de ports dynamique, le nombre de tuples d'adresses IP sources et de ports sources peut changer en fonction de la demande. Si une VM est sur le point d'épuiser son allocation de ports actuelle, Cloud NAT alloue des ports supplémentaires, dans la limite du nombre maximal de ports par instance de VM spécifié. Une fois que l'utilisation des ports de la VM passe sous un certain seuil, les ports sont libérés et peuvent être alloués à d'autres VM.

Augmenter le nombre de ports par VM

Si vous avez configuré une passerelle Cloud NAT avec allocation de ports statique, lorsque vous augmentez le nombre minimal de ports par VM sur la passerelle, le trafic ne subit aucune interruption.

Si vous avez configuré une passerelle Cloud NAT avec un port dynamique puis en augmentant le nombre minimal, maximal ou les deux de ports par VM n'interrompt pas les connexions NAT existantes et ne perturbe pas le trafic qui circule la passerelle NAT.

Tenez compte des points suivants lorsque vous augmentez le nombre de ports par VM :

  • Lorsque vous utilisez Public NAT avec l'attribution manuelle d'adresses IP NAT, vous devez calculate le nombre d'adresses IP sources NAT dont vous avez besoin. Avant d'augmenter le nombre minimal de ports par VM, attribuez au moins d'adresses IP NAT vers la passerelle NAT public.

  • Lorsque vous utilisez Public NAT avec l'allocation automatique d'adresses IP NAT, l'augmentation de la valeur nombre minimal de ports par VM entraîne l'acquisition par la passerelle et alloue automatiquement plus d'adresses IP externes régionales.

  • Lorsque vous utilisez Private NAT, assurez-vous que le sous-réseau auquel la passerelle alloue Les adresses IP disposent d'un nombre adéquat d'adresses IP.

Réduire le nombre de ports par VM

Si vous avez configuré une passerelle Cloud NAT avec allocation de ports statique et que vous réduisez le nombre minimal de ports par VM sur la passerelle, aucun drainage de connexion ne se produit. Les connexions NAT établies sont immédiatement interrompues, et les clients doivent établir de nouvelles connexions TCP.

Si vous avez configuré une passerelle Cloud NAT avec un port dynamique les affirmations suivantes sont vraies:

  • La réduction du nombre minimal de ports par VM n'interrompt pas la NAT existante ou perturber le trafic circulant via la passerelle NAT.
  • La réduction du nombre maximal de ports par VM breaks toutes les connexions NAT existantes immédiatement, et le nombre de ports alloués pour toutes les VM est temporairement réinitialisé à la valeur spécifiée pour le nombre minimal de ports par VM.

Ports et connexions

Nombre de tuples d'adresse IP source et de port source NAT qu'un Les réserves de passerelle Cloud NAT pour une VM limitent le nombre de connexions que la VM peut atteindre vers une destination unique:

  • Une destination unique correspond à un 3-tuple unique composé d'une adresse IP de destination, d'un port de destination et d'un protocole IP (tel que TCP ou UDP).

  • Une connexion correspond à un 5-tuple unique composé du tuple d'adresse IP source et de port source, associé à un 3-tuple de destination unique. Le protocole UDP étant sans connexion, le concept de connexion est réduit à un 5-tuple associé à un datagramme UDP unique.

Supposons qu'une passerelle Cloud NAT évalue à 1 024 le nombre fixe de ports pour une VM en suivant la procédure de réservation de port. La passerelle Cloud NAT réserve 1 024 combinaisons uniques de tuples d'adresses IP NAT sources et de ports sources pour la VM. La passerelle Cloud NAT peut traiter 1 024 connexions simultanées vers chaque 3-tuple de destination unique. Cependant, Cloud NAT considère que les connexions fermées sont inutilisables pendant 120 secondes après la fermeture de la connexion, ce qui peut affecter le nombre de connexions utilisées à la fois.

Par exemple :

  • La passerelle accepte 1 024 connexions simultanées vers l'adresse IP de destination 203.0.113.99 sur le port 80, en utilisant le protocole TCP.

  • La passerelle accepte 1 024 connexions simultanées supplémentaires vers cette même adresse IP de destination sur le port 443, en utilisant également le protocole TCP.

  • La passerelle accepte 1 024 connexions simultanées supplémentaires vers une adresse IP de destination différente sur le port 80, en utilisant également le protocole TCP.

Réutilisation simultanée de ports et mappage indépendant des points de terminaison

Tant qu'au moins une information sur le 3-tuple de destination change (l'adresse IP de destination, le port de destination, le protocole), le même tuple d'adresse IP source et de port source NAT peut être utilisé simultanément pour de nombreuses connexions différentes.

La NAT publique utilise un mappage indépendant du point de terminaison, tel que défini dans Section 2.3 du document RFC 5128. En tant que par conséquent, le nombre de connexions simultanées qu'une VM cliente peut établir vers une destination unique Le triple tuple peut être réduit si Public NAT attribue la même source NAT tuple d'adresse IP et de port source à plusieurs l'adresse IP interne et le port source éphémère d'une VM cliente. Les risques augmentent si la VM cliente possède un grand nombre d'adresses IP sources internes et établit un grand nombre de connexions au même 3-tuple de destination. La première fois qu'une VM cliente envoie un paquet à partir d'une adresse IP interne. et éphémère, Public NAT crée un port source "plusieurs à un" Mappage indépendant du point de terminaison entre les éléments suivants:

  • Le tuple d'adresse IP interne et de port source éphémère
  • Un tuple d'adresse IP source unique et de port source

Par exemple, lorsqu'une VM cliente envoie un paquet à partir de son adresse IP interne 10.0.0.2 via le port source éphémère 10001, Public NAT attribue 10.0.0.2:10001 Ce tuple d'adresse IP source et de port source NAT est ensuite utilisé pour toutes les connexions suivantes de 10.0.0.2:10001 vers n'importe quel 3-tuple de destination.

Si la même VM utilise un autre port source éphémère pour envoyer un paquet, par exemple : 10.0.0.2:20002, Public NAT attribue également une adresse IP source NAT et tuple de port source pour toutes les connexions suivantes depuis 10.0.0.2:20002 vers n'importe quelle connexion 3-tuple de destination. Il est possible que le NAT public attribue le même tuple d'adresse IP NAT source et de port source à la fois pour ces tuples d'adresse IP internes et de port source éphémère, ce qui peut entraîner un conflit indépendant du point de terminaison dans certaines situations.

Pour obtenir un exemple plus détaillé, consultez l'exemple de conflit de mappage indépendant du point de terminaison.

Réduire les conflits indépendants des points de terminaison

Pour réduire le nombre de conflits indépendants de points de terminaison, vous pouvez modifier la configuration. Pour plus d'informations, consultez la section Paquets supprimés avec un motif de conflit indépendant du point de terminaison.

Délai avant réutilisation des ports sources TCP

Lorsqu'une passerelle Cloud NAT ferme une connexion TCP, Google Cloud laisse s'écouler un délai avant que la passerelle ne puisse réutiliser le même tuple d'adresse IP source et de port source NAT vers la même destination (adresse IP de destination, port de destination et protocole). La durée du délai est contrôlée par le paramètre délai TCP TIME_WAIT.

Si nécessaire, vous pouvez réduire ce délai en modifiant la valeur par défaut Expiration du délai TCP TIME_WAIT. Pour en savoir plus sur la modification des délais avant expiration NAT, consultez la section Modifier les délais avant expiration de la NAT Vous pouvez également apporter l'une des modifications suivantes:

  • Augmentez le nombre minimal de ports par instance de VM afin que la procédure de réservation de port attribue à la VM davantage de tuples d'adresse IP source et de port source NAT.

  • Si une VM doit ouvrir et fermer rapidement les connexions TCP au même l'adresse IP de destination et le port de destination en utilisant le même protocole, puis au lieu de Cloud NAT, attribuez une adresse IP externe au MV Utilisez des règles de pare-feu pour limiter les entrées non sollicitées. connexions externes.

Ports source et sécurité

Si vous dépendez de la randomisation du port source comme mesure de sécurité, vous devez prendre en compte ce qui suit :

  • Augmentez le nombre minimal de ports par instance de VM afin que la procédure de réservation de port attribue à la VM davantage de tuples d'adresse IP source et de port source NAT. En augmentant le nombre minimal de "ports par instance de VM" attribue une plage de ports de manière aléatoire à chaque VM. Toutefois, le port source choisi dans cette plage est séquentiel.

  • Attribuez une adresse IP externe au MV au lieu d'utiliser Public NAT.

Examples

Les exemples suivants montrent comment Cloud NAT réserve les adresses IP sources et les ports sources d'une VM, et la façon dont la NAT s'applique aux paquets envoyés à Internet.

Réservation de port

Les exemples suivants illustrent les applications de la procédure de réservation de port :

Supposons que vous configuriez une passerelle Public NAT pour fournir la NAT pour la plage d'adresses IP principale d'un sous-réseau, tandis que les VM qui utilisent ce sous-réseau n'importe quelle plage d'adresses IP d'alias de la plage d'adresses IP principale du sous-réseau. Arrondissez le résultat de n'importe quelle opération de division à l'entier inférieur le plus proche. ⌊⌋ est la fonction floor (plus grand entier), ce qui signifie que tout résultat fractionnaire de division est ignoré.

  • Si vous configurez la passerelle Public NAT avec une seule adresse IP NAT à l'aide de l'attribution manuelle, et définissez le nombre minimal de ports par VM à 64, la passerelle peut fournir des services NAT pour un maximum de 1 008 VM:

    ⌊(1 adresse IP NAT) × (64 512 ports par adresse) / (64 ports par VM)⌋ = 1 008 VM

  • Si vous devez prendre en charge plus de 1 008 VM, vous pouvez attribuer une deuxième adresse IP NAT à la passerelle Cloud NAT. Avec deux adresses IP NAT, en conservant le nombre minimal de ports par VM de 64, vous pouvez prendre en charge 2 016 VM :

    ⌊(2 adresses IP NAT) × (64 512 ports par adresse) / (64 ports par VM)⌋ = 2 016 VM

  • Si vous définissez le nombre minimal de ports par VM sur 4 096, chaque adresse IP NAT peut prendre en charge 15 VM. Ce calcul est arrondi à l'entier inférieur le plus proche :

    ⌊(1 adresse IP NAT) × (64 512 ports par adresse) / (4 096 ports par VM)⌋ = 15 VM

Supposons que vous configurez une passerelle NAT privée pour fournir la NAT pour toutes les adresses IP d'un sous-réseau:

  • La taille de sous-réseau minimale que vous pouvez créer est de huit adresses IPv4, ce qui représente masque de sous-réseau /29. Si vous configurez une passerelle NAT privée avec un sous-réseau NAT et que vous définissez le nombre minimal de ports par instance de VM sur 64, la passerelle peut fournir des services NAT pour un maximum de 2 016 VM:

    ⌊(2(32-29) - 4) adresses IP NAT × (64 512 ports par adresse) / (64 ports par VM × 2)⌋ = 2 016 VM

    Dans l'exemple précédent, si vous définissez le nombre minimal de ports par instance de VM 1 024, la passerelle peut fournir des services NAT pour un maximum de 126 VM:

    ⌊(2(32-29) - 4) adresses IP NAT × (64 512 ports par adresse) / (1 024 ports par VM × 2)⌋ = 126 VM

  • Si vous configurez une passerelle NAT privée avec un masque de sous-réseau NAT /28 et que vous définir le nombre minimal de ports par instance de VM sur 64, la passerelle peut fournir Services NAT pour un maximum de 6 048 VM:

    ⌊(2(32-28) - 4) adresses IP NAT × (64 512 ports par adresse) / (64 ports par VM × 2)⌋ = 6 048 VM

Conflit de mappage indépendant du point de terminaison

L'exemple suivant montre comment le mappage indépendant du point de terminaison peut réduire le nombre de connexions simultanées depuis une VM cliente vers la même 3-tuple de destination, même lorsqu'il existe un nombre suffisant de sources NAT libres Des tuples d'adresse IP et de port source disponibles pour la VM cliente.

Supposons que vous ayez configuré une passerelle Public NAT pour fournir la NAT pour principale d'un sous-réseau. Vous avez créé une VM cliente avec une interface réseau dont l'adresse IP interne principale est 10.0.0.2 dans ce sous-réseau. Aucune adresse IP externe n'est attribuée à l'interface de l'exemple de VM.

  1. La VM ouvre une connexion avec les caractéristiques suivantes :

    • Adresse IP interne et port sources : 10.0.0.2:10001
    • 3-tuple de destination : 203.0.113.1:80 via TCP
    • La NAT publique utilise l'adresse IP source et le port source NAT suivants tuple: 192.0.2.10:30009
  2. La VM ouvre une deuxième connexion avec les caractéristiques suivantes :

    • Adresse IP interne et port sources : 10.0.0.2:10002
    • 3-tuple de destination : 203.0.113.2:80 via TCP
    • La NAT publique peut choisir d'utiliser la même adresse IP source NAT et le tuple du port source,192.0.2.10:30009, pour cette connexion également. Il est possible d'utiliser le même tuple d'adresse IP source et de port source pour une adresse IP cliente différente et un port source éphémère.
  3. Alors que la première et la deuxième connexions sont actives, La NAT publique ne peut pas ouvrir une troisième connexion TCP avec ces caractéristiques:

    • Adresse IP interne et port sources identiques à ceux de la première connexion : 10.0.0.2:10001
    • 3-tuple de destination identique à celui de la deuxième connexion : 203.0.113.2:80 via TCP

    Cette troisième tentative de connexion est interrompue, un point de terminaison indépendant de conflit, car le mappage indépendant du point de terminaison établi par première connexion exige que toutes les connexions provenant de 10.0.0.2:10001 utilisent le le même tuple d'adresse IP source et de port source : 192.0.2.10:30009. Toutefois, 192.0.2.10:30009 est déjà utilisé par la deuxième connexion TCP à 203.0.113.2:80

  4. Pour clarifier l'ambiguïté, une tentative de connexion ultérieure dans cet exemple aboutit tant que l'une des conditions suivantes est remplie :

    • La première connexion TCP a été fermée. La fermeture de la connexion supprime Mappage indépendant du point de terminaison entre 10.0.0.2:10001 et 192.0.2.10:30009, Ainsi, la troisième connexion peut être mappée à une autre adresse IP source NAT tuple de port source pour communiquer avec 203.0.113.2:80 via TCP.
    • La deuxième connexion TCP a été fermée. La fermeture de la connexion libère 10.0.0.2:10001 d'utiliser l'adresse IP source et le port source 192.0.2.10:30009 NAT pour communiquer avec 203.0.113.2:80 via TCP.
    • La troisième tentative de connexion sélectionne un autre port source éphémère (interne). Dans cet exemple, un mappage indépendant du point de terminaison a établi un mappage de type "plusieurs à un" pour les adresses IP NAT sources et les ports sources internes 10.0.0.2:10001 et 10.0.0.2:10002, afin d'utiliser 192.0.2.10:30009 en communication avec 203.0.113.2:80 via TCP. Si la troisième tentative de connexion utilise un port source éphémère différent de 10001 et 10002, il est possible d'utiliser une adresse IP source et un port source différents pour communiquer avec 203.0.113.2:80 via TCP.
    • Désactiver l'indépendance des points de terminaison Le basculement permet connexion de 10.0.0.2:10001 pour ne pas avoir besoin d'utiliser 192.0.2.10:30009, ce qui lui permet d'utiliser une adresse IP et un port sources NAT différents.

Pour connaître les techniques que vous pouvez utiliser pour éviter les conflits, consultez la section Réduire les conflits indépendants des points de terminaison.

Étape suivante