Présentation du transfert de protocole

Le transfert de protocole utilise une règle de transfert régionale pour transmettre les paquets d'un protocole spécifique à une seule instance de machine virtuelle (VM). La règle de transfert peut avoir une adresse IP interne ou externe. Le transfert de protocole transmet des paquets tout en conservant l'adresse IP de destination de la règle de transfert. La règle de transfert fait référence à un objet appelé instance cible, qui lui-même fait référence à une instance de VM.

Vous pouvez utiliser le transfert de protocole pour effectuer les opérations suivantes :

  • Indiquez une adresse IP pouvant être déplacée d'une instance à une autre en modifiant la VM référencée par l'objet d'instance cible ou l'instance cible référencée par la règle de transfert.
  • Transférez des paquets vers différentes VM en fonction du protocole et du port. Deux règles de transfert peuvent partager la même adresse IP, à condition que leurs informations de port et de protocole soient uniques.
  • (Transfert de protocole externe uniquement) Définissez des adresses IP externes supplémentaires pour une interface réseau donnée. Contrairement à une interface réseau dotée d'une configuration NAT 1:1 pour son adresse IPv4 externe, le transfert de protocole conserve l'adresse IP de destination de la règle de transfert.
  • Envoyez des paquets dont les adresses IP sources correspondent à l'adresse IP de la règle de transfert.

Le transfert de protocole présente les différences suivantes par rapport à un équilibreur de charge de type passthrough :

  • Aucun équilibrage de charge. Une instance cible ne distribue des paquets qu'à une seule VM.
  • Aucune vérification de l'état. Contrairement à un service de backend, une instance cible n'est pas compatible avec les vérification de l'état. Vous devez utiliser d'autres moyens pour vous assurer que le logiciel nécessaire est en cours d'exécution et opérationnel sur la VM référencée par l'instance cible.

Architecture

Le transfert de protocole utilise des règles de transfert internes ou externes régionales, ainsi qu'un objet d'instance cible zonal. L'instance cible et la VM auxquelles il fait référence doivent se trouver dans une zone de la région de la règle de transfert.

  • Transfert de protocole externe. Vous pouvez configurer plusieurs règles de transfert afin qu'elles pointent vers une instance cible unique, vous permettant ainsi d'utiliser plusieurs adresses IP externes avec une seule instance de VM. Vous pouvez l'utiliser dans des scénarios dans lesquels vous souhaitez exposer des données à partir d'une seule instance de VM, mais via différentes adresses IP externes, ou différents protocoles et ports. Cela se révèle particulièrement utile pour configurer l'hébergement virtuel SSL. Le transfert de protocole externe peut gérer les connexions depuis des clients IPv6.

    Le transfert de protocole externe est compatible avec les protocoles suivants : AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP et UDP .

    Le diagramme suivant montre un exemple d'architecture de transfert de protocole externe. Pour apprendre à le configurer, consultez la section Configurer le transfert de protocole externe.

    Architecture de transfert de protocole externe.
    Architecture de transfert de protocole externe (cliquez pour agrandir).
  • Transfert de protocole interne. Le transfert de protocole interne utilise une adresse IPv4 interne régionale (de la plage d'adresses IPv4 principale d'un sous-réseau) ou une plage d'adresses IPv6 internes régionale (de la plage d'adresses IPv6 d'un sous-réseau).

    Le transfert de protocole interne est compatible avec les protocoles suivants : TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH et GRE .

    Le schéma suivant montre un exemple d'architecture de transfert de protocole interne. Pour apprendre à le configurer, consultez la section Configurer le transfert de protocole interne.

    Architecture de transfert de protocole interne.
    Architecture de transfert de protocole interne (cliquez pour agrandir).

    Avec le transfert de protocole interne, vous pouvez modifier la cible d'une règle de transfert pour basculer entre une instance cible et un service de backend d'un équilibreur de charge de type passthrough. Pour en savoir plus, consultez la page Basculer entre une instance cible et un service de backend.

Règles de transfert

Chaque règle de transfert fait correspondre une adresse IP, un protocole et, éventuellement, des informations sur les ports (si spécifié et si le protocole est compatible avec les ports). Lorsqu'une règle de transfert fait référence à une instance cible, Google Cloud achemine les paquets correspondant à l'adresse de la règle de transfert , au protocole et à la spécification de port vers la VM référencée par l'instance cible.

  • Transfert de protocole interne :

    • Compatibilité des adresses IPv4 : une adresse IPv4 interne régionale de la plage IPv4 principale d'un sous-réseau. Vous pouvez spécifier une adresse IPv4 statique réservée ou une adresse IPv4 éphémère personnalisée. Si vous ne spécifiez rien, Google Cloud attribue automatiquement une adresse IPv4 éphémère.

    • Compatibilité des adresses IPv6 : la règle de transfert référence une plage d'adresses IP /96 de la plage d'adresses IPv6 internes /64 du sous-réseau. Le sous-réseau doit être l'un des suivants :

      • Un sous-réseau à double pile (IPv4 et IPv6)
      • Un sous-réseau à pile unique (IPv6 uniquement)

      Le paramètre ipv6-access-type du sous-réseau doit être défini sur INTERNAL.

      Les adresses IPv6 internes ne sont disponibles qu'avec le niveau Premium. Vous pouvez spécifier une adresse IPv6 statique réservée ou une adresse IPv6 éphémère personnalisée. Si vous ne spécifiez rien, Google Cloud attribue automatiquement une adresse IPv6 éphémère.

      Pour spécifier une adresse IPv6 éphémère personnalisée, vous devez utiliser gcloud CLI ou l'API. La Google Cloud console n'est pas compatible avec la spécification d'adresses IPv6 éphémères personnalisées pour les règles de transfert.

    • Options de protocole : TCP(par défaut), UDP et L3_DEFAULT.

      • L'option de protocole de règle de transfert L3_DEFAULT transfère tout le trafic TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH et GRE. Pour les protocoles TCP, UDP et SCTP, L3_DEFAULT transfère également tous les ports.
    • Options de spécification du port : liste de cinq ports contigus ou non contigus au maximum, ou tous les ports.

  • Transfert de protocole externe :

    • Compatibilité des adresses IPv4 : la règle de transfert fait référence à une seule régionale adresse IPv4 externe. Les adresses IPv4 externes régionales proviennent d'un pool propre à chaque Google Cloud région. Vous pouvez spécifier une adresse IPv4 statique réservée. Si vous ne spécifiez rien, Google Cloud attribue automatiquement une adresse IPv4.

    • Compatibilité des adresses IPv6 : la règle de transfert référence une plage d'adresses IP /96 de la seconde moitié (/65) de la plage d'adresses IPv6 externes /64 du sous-réseau, comme décrit dans la section Spécifications IPv6 externes. Le sous-réseau doit être l'un des suivants :

      • Un sous-réseau à double pile (IPv4 et IPv6)
      • Un sous-réseau à pile unique (IPv6 uniquement)

      Le paramètre ipv6-access-type du sous-réseau doit être défini sur EXTERNAL.

      Les adresses IPv6 externes ne sont disponibles qu'avec le niveau Premium. Vous pouvez spécifier une adresse IPv6 statique réservée ou une adresse IPv6 éphémère personnalisée. Si vous ne spécifiez rien, Google Cloud attribue automatiquement une adresse IPv6 éphémère.

      Pour spécifier une adresse IPv6 éphémère personnalisée, vous devez utiliser gcloud CLI ou l'API. La Google Cloud console n'est pas compatible avec la spécification d'adresses IPv6 éphémères personnalisées pour les règles de transfert.

    • Options de protocole : AH, ESP, ICMP, SCTP, TCP (par défaut), UDP et L3_DEFAULT :

      • L'option de protocole de règle de transfert L3_DEFAULT transfère tout le trafic AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP et UDP. Pour les protocoles TCP, UDP et SCTP, L3_DEFAULT transfère également tous les ports.
      • Les règles de transfert IPv6 n'acceptent pas le paramètre de protocole ICMP, car le protocole ICMP n'accepte que les adresses IPv4. Pour diffuser le trafic ICMPv6 et GRE, définissez le protocole de la règle de transfert sur L3_DEFAULT.
    • Options de spécification du port : plage de ports contigus ou tous les ports.

Voici quelques éléments à garder à l'esprit lorsque vous utilisez des règles de transfert :

  • Pour le transfert de protocole, une règle de transfert ne peut référencer qu'une seule instance cible.

  • Pour les équilibreurs de charge réseau passthrough internes et les équilibreurs de charge réseau passthrough externes régionaux basés sur un service de backend, une règle de transfert ne peut faire référence qu'à un seul service de backend.

  • Vous pouvez basculer entre le transfert de protocole interne et un équilibreur de charge réseau passthrough interne, sans supprimer ni recréer la règle de transfert. Pour basculer entre le transfert de protocole externe et l'équilibreur de charge réseau passthrough externe régional basé sur un service de backend, vous devez supprimer et recréer la règle de transfert. Pour en savoir plus, consultez la page Basculer entre une instance cible et un service de backend.

  • Les informations de port ne peuvent être spécifiées que pour les protocoles ayant un concept de port : TCP, UDP ou SCTP.

  • Si vous prévoyez des paquets UDP fragmentés, effectuez l'une des opérations suivantes pour vous assurer que tous les fragments (y compris ceux sans informations de port) sont transmis à l'instance :

    • Utilisez une seule règle de transfert L3_DEFAULT.
    • Utilisez une seule règle de transfert UDP configurée pour transférer tous les ports.

Instances cibles

Une instance cible est une ressource zonale qui référence une instance de VM dans la même zone. La règle de transfert qui référence l'instance cible doit se trouver dans la région contenant la zone de l'instance cible. Lorsqu'aucune règle Cloud NAT n'est appliquée à une instance cible, elle peut être utilisée pour le trafic IPsec qui ne peut pas traverser la NAT.

Compatibilité avec plusieurs cartes d'interface réseau

Le transfert de protocole à l'aide d'instances cibles est compatible avec les instances de VM dotées d'interfaces réseau non-nic0 (interfaces réseau virtuelles ou interfaces réseau dynamiques) à l'aide de l'option --network lorsque vous créez l'instance cible :

  • Si vous omettez l'option --network lorsque vous créez une instance cible, Google Cloud transmet les paquets à l'interface nic0 de la VM référencée.
  • Si vous incluez l'option --network lorsque vous créez une instance cible, Google Cloud transmet les paquets à la carte d'interface réseau de la VM référencée qui se trouve dans le réseau VPC spécifié par l'option --network.
  • Le transfert de protocole interne et le transfert de protocole externe IPv6 présentent l'exigence supplémentaire suivante, car leurs règles de transfert utilisent des sous-réseaux : lorsque vous configurez une règle de transfert pour référencer une instance cible, la règle de transfert doit utiliser un sous-réseau du réseau VPC de l'instance cible. La règle de transfert et l'instance cible ne peuvent pas utiliser des réseaux VPC différents, même si ces réseaux sont connectés d'une manière ou d'une autre.

Compatibilité avec IPv6 pour les instances de VM

Si vous souhaitez que le déploiement de transfert de protocole accepte le trafic IPv6, l'instance de VM doit être configurée dans un sous-réseau à double pile ou à pile unique IPv6 uniquement situé dans la même région que la règle de transfert IPv6.

Notez que, bien que les instances IPv6 uniquement puissent être créées dans des sous-réseaux à double pile et IPv6 uniquement, les VM à double pile ne peuvent pas être créées dans des sous-réseaux IPv6 uniquement.

L'instance de VM peut être créée dans un sous-réseau avec le paramètre ipv6-access-type défini sur EXTERNAL ou INTERNAL. La VM hérite du paramètre ipv6-access-type ( EXTERNAL ou INTERNAL) du sous-réseau.

Pour obtenir des instructions, consultez la section Créer une instance qui utilise des adresses IPv6 addresses. Si vous souhaitez utiliser une VM existante, vous pouvez la mettre à jour pour qu'elle soit à double pile à l'aide de la gcloud compute instances network-interfaces update commande. La mise à jour des VM existantes vers IPv6 uniquement n'est pas acceptée.

Adresses IP pour les paquets de requêtes et de retours

Lorsqu'une instance cible reçoit un paquet d'un client, les adresses IP source et de destination du paquet de requête sont indiquées dans ce tableau.

Tableau 1. Adresses IP source et de destination des paquets de requête
Type de transfert de protocole Adresse IP source Adresse IP de destination
Transfert de protocole externe Adresse IP externe associée à une Google Cloud VM ou une adresse IP externe d'un client sur Internet. Adresse IP de la règle de transfert
Transfert de protocole interne Adresse IP interne d'un client. Pour les Google Cloud clients, l' adresse IPv4 interne principale ou adresse IPv6 ou adresse IPv4 d'une plage d'adresses IP d'alias de l'interface réseau d'une VM. Adresse IP de la règle de transfert

Le logiciel exécuté sur les VM de l'instance cible doit être configuré pour effectuer les opérations suivantes :

  • Écouter (être lié à) l'adresse IP de la règle de transfert ou toute adresse IP (0.0.0.0 ou ::).
  • Si le protocole de la règle de transfert est compatible avec les ports, écouter (être lié à) un port inclus dans la règle de transfert

Les paquets de retour sont envoyés directement de l'instance cible au client. Les adresses IP source et de destination du paquet de réponse dépendent du protocole :

  • TCP est orienté connexion. Les instances cibles doivent répondre à l'aide de paquets dont les adresses IP sources correspondent à l'adresse IP de la règle de transfert. Cela garantit que le client peut associer les paquets de réponse à la connexion TCP appropriée.
  • AH, ESP, GRE, ICMP, ICMPv6 et UDP sont sans connexion. Les instances cibles peuvent envoyer des paquets de réponse dont les adresses IP sources correspondent à l'adresse IP de la règle de transfert ou à toute adresse IP attribuée à la carte d'interface réseau de la VM dans le même réseau VPC que la règle de transfert. En pratique, la plupart des clients s'attendent à ce que la réponse provienne de l'adresse IP à laquelle ils ont envoyé des paquets.

Le tableau suivant résume les sources et les destinations des paquets de retour :

Tableau 2. Adresses IP source et de destination des paquets de retour
Type de trafic Adresse IP source Adresse IP de destination
TCP Adresse IP de la règle de transfert Adresse IP source du paquet de requête
AH, ESP, GRE, ICMP, ICMPv6 et UDP Pour la plupart des cas d'utilisation, adresse IP de la règle de transfert1 Adresse IP source du paquet de requête

1 Avec le transfert de protocole interne, il est possible de définir la source du paquet de réponse sur l'adresse IPv4 interne principale ou l'adresse IPv6 de la carte d'interface réseau de la VM ou sur une plage d'adresses IP d'alias. Si le transfert IP est activé sur une VM, elle peut utiliser une adresse IP source arbitraire pour les paquets qu'elle envoie à des destinations routées dans un réseau VPC. Ne pas utiliser l'adresse IP de la règle de transfert en tant que source est un scénario avancé, car le client reçoit un paquet de réponse provenant d'une adresse IP interne qui ne correspond pas à l'adresse IP à laquelle il a envoyé un paquet de requête.

Connectivité Internet sortante à partir d'instances cibles

Les instances de VM référencées par des instances cibles peuvent établir des connexions à Internet en utilisant l'adresse IP de la règle de transfert associée comme adresse IP source de la connexion sortante.

En règle générale, une instance de VM utilise toujours sa propre adresse IP externe ou Cloud NAT pour établir des connexions. Vous n'utilisez l'adresse IP de la règle de transfert que pour établir des connexions à partir d'instances cibles dans des scénarios particuliers, par exemple lorsque vous avez besoin que des instances de VM émettent et reçoivent des connexions à la même adresse IP externe.

Les paquets sortants envoyés directement à Internet à partir de VM d'instance cible ne sont soumis à aucune restriction concernant les protocoles et les ports de trafic. Même si un paquet sortant utilise l'adresse IP de la règle de transfert comme source, le protocole et le port source du paquet n'ont pas besoin de correspondre au protocole et à la spécification de port de la règle de transfert. Toutefois, les paquets de réponse entrants doivent correspondre à l'adresse IP, au protocole et au port de destination de la règle de transfert. Pour en savoir plus, consultez la section Chemins d'accès pour les équilibreurs de charge réseau passthrough externes régionaux et le transfert de protocole externe externe.

Ce chemin d'accès à la connectivité Internet à partir d'une VM d'instance cible est le comportement prévu par défaut, conformément aux règles de pare-feu implicites de Google Cloud. Toutefois, si vous avez des problèmes de sécurité concernant le fait de laisser ce chemin ouvert, vous pouvez utiliser des règles de pare-feu de sortie ciblées pour bloquer le trafic sortant non sollicité vers Internet.

Limites

Documentation de référence sur l'API et sur gcloud

Pour les règles de transfert, consultez les pages suivantes :

Pour les instances cibles, consultez les pages suivantes :

Tarifs

Pour obtenir des informations sur les tarifs, consultez la section Tarifs du réseau : Cloud Load Balancing.

Quotas et limites

Pour connaître les quotas des règles de transfert pour le transfert de protocole, consultez la section Quotas et limites : Règles de transfert.

Étapes suivantes