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 d'état. Contrairement à un service de backend, une instance cible n'est pas compatible avec les vérifications d'é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 schéma 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
  • 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 adresse IPv6 interne régionale (de la plage d'adresses IPv6 d'un sous-réseau).

    Le transfert de protocole interne est compatible avec les protocoles TCP et UDP.

    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

    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 (réservée statique ou éphémère) de la plage IPv4 principale d'un sous-réseau.

    • Compatibilité des adresses IPv6 : la règle de transfert référence une plage d'adresses IP /96 de la plage d'adresses IPv6 interne /64 du sous-réseau. Le sous-réseau doit être un sous-réseau à deux piles, avec le paramètre ipv6-access-type défini sur INTERNAL. Les adresses IPv6 internes ne sont disponibles qu'avec le niveau Premium. La réservation d'une adresse IPv6 interne régionale n'est possible que pour les instances. Vous devez donc utiliser une adresse IPv6 éphémère pour la règle de transfert.

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

    • 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 adresse IPv4 externe régionale. Les adresses IPv4 externes régionales proviennent d'un pool propre à chaque région Google Cloud. L'adresse IP peut être une adresse statique réservée ou une adresse é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 externe /64 du sous-réseau. Le sous-réseau doit être un sous-réseau à deux piles, avec le paramètre ipv6-access-type défini sur EXTERNAL. Les adresses IPv6 externes ne sont disponibles qu'avec le niveau Premium. La plage d'adresses IPv6 peut être une adresse statique réservée ou une adresse éphémère.

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

      • Le paramètre de protocole de règle de transfert L3_DEFAULT peut être utilisé pour diffuser tout le trafic de protocole IP.
      • 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 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 l'équilibreur de charge 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 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.

  • L'option de protocole L3_DEFAULT transfère tous les protocoles AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP et UDP. Pour les protocoles TCP, UDP et SCTP, L3_DEFAULT transfère tous les ports.

  • 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

Une instance cible permet de spécifier l'interface réseau (carte d'interface réseau) de l'instance de VM à laquelle elle fait référence. Utilisez l'option --network pour spécifier le nom d'un réseau VPC dans lequel la VM référencée dispose d'une carte d'interface réseau :

  • Si vous omettez l'option --network, l'instance cible transmet les paquets à l'interface nic0 de la VM à laquelle elle fait référence.
  • Si vous utilisez l'option --network, la VM référencée par l'instance cible doit avoir une carte d'interface réseau dans ce réseau VPC.
  • Pour le transfert de protocole interne, le sous-réseau utilisé par la règle de transfert doit être situé dans le réseau VPC utilisé par l'interface réseau de l'instance cible.

Compatibilité IPv6

Si vous souhaitez que le déploiement de transfert de protocole externe accepte le trafic IPv6, l'instance de VM doit être configurée dans un sous-réseau à double pile situé dans la même région que la règle de transfert IPv6. Vous pouvez utiliser un sous-réseau avec ipv6-access-type défini sur EXTERNAL ou INTERNAL pour l'instance de VM. L'utilisation d'un sous-réseau avec ipv6-access-type défini sur INTERNAL nécessite l'utilisation d'un sous-réseau à double pile distinct avec ipv6-access-type défini sur EXTERNAL pour la règle de transfert externe. Pour obtenir des instructions, reportez-vous à la section Ajouter un sous-réseau à double pile.

De plus, l'instance de VM elle-même doit être une instance à double pile. Définissez le paramètre stack-type de la VM sur IPv4_IPv6. 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 VM et activer IPv6. Si vous souhaitez utiliser une VM existante, mettez à jour la VM pour qu'elle soit à double pile en utilisant la commande gcloud compute instances network-interfaces update.

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 VM Google Cloud ou 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 clients Google Cloud, 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* Dans la plupart des cas d'utilisation, adresse IP de la règle de transfert Adresse IP source du paquet de requête

* AH, ESP, GRE, ICMP et ICMPv6 ne sont compatibles qu'avec le transfert de protocole externe.

 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 la VM, vous pouvez également utiliser des sources d'adresse IP arbitraires. 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.

Limites

  • Une règle de transfert ne peut pas pointer vers plusieurs instances cibles.
  • Les vérifications d'état ne sont pas compatibles avec les instances cibles. Vous devez 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.
  • Le transfert de protocole interne pour le trafic IPv6 présente les limitations suivantes :
    • Le protocole L3_DEFAULT n'est pas pris en charge. Utilisez TCP ou UDP.
    • Les cartes d'interface réseau multiples ne sont pas prises en charge.

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

Le transfert de protocole est facturé au même tarif que l'équilibrage de charge. Des frais s'appliquent à la règle de transfert ainsi qu'aux données entrantes traitées par l'instance cible.

Toutes les informations tarifaires sont disponibles dans la section Tarifs.

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