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 (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 (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
/96de la plage d'adresses IPv6 internes/64du 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-typedu sous-réseau doit être défini surINTERNAL.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),UDPetL3_DEFAULT.- L'option de protocole de règle de transfert
L3_DEFAULTtransfère tout le trafic TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH et GRE. Pour les protocoles TCP, UDP et SCTP,L3_DEFAULTtransfère également tous les ports.
- L'option de protocole de règle de transfert
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
/96de la seconde moitié (/65) de la plage d'adresses IPv6 externes/64du 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-typedu sous-réseau doit être défini surEXTERNAL.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),UDPetL3_DEFAULT:- L'option de protocole de règle de transfert
L3_DEFAULTtransfère tout le trafic AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP et UDP. Pour les protocoles TCP, UDP et SCTP,L3_DEFAULTtransfè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 surL3_DEFAULT.
- L'option de protocole de règle de transfert
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,UDPouSCTP.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
UDPconfigurée pour transférer tous les ports.
- Utilisez une seule règle de transfert
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
--networklorsque vous créez une instance cible, Google Cloud transmet les paquets à l'interfacenic0de la VM référencée. - Si vous incluez l'option
--networklorsque 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.- La VM référencée doit avoir une carte d'interface réseau dans le réseau VPC spécifié par l'option
--network. - Pour transmettre des paquets à des interfaces non-
nic0, chaque interface réseau d'une instance doit se trouver dans un réseau VPC distinct. L'utilisation du transfert de protocole pour transmettre des paquets à plusieurs interfaces réseau qui se trouvent dans le même réseau VPC n'est pas acceptée.
- La VM référencée doit avoir une carte d'interface réseau dans le réseau VPC spécifié par l'option
- 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.
| 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.0ou::). - 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 :
| 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
- 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 n'est pas compatible avec le protocole
L3_DEFAULT. UtilisezTCPouUDP. - Pour les cartes d'interface réseau dynamiques, vous devez ajouter manuellement des routes locales pour les adresses IP de règle de transfert, comme décrit dans le problème connu suivant : Paquets supprimés lors de l'utilisation de cartes d'interface réseau dynamiques avec des plages d'adresses IP d'alias, le transfert de protocole ou des équilibreurs de charge réseau passthrough.
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.