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.
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.
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ètreipv6-access-type
défini surINTERNAL
. 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) etUDP
.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ètreipv6-access-type
défini surEXTERNAL
. 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
etL3_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 surL3_DEFAULT
.
- Le paramètre 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 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
ouSCTP
.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.
- 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
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'interfacenic0
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.
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 :
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.
Connectivité Internet sortante depuis les 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 général, 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 les instances de VM émettent et reçoivent des connexions à la même adresse IP externe.
Les paquets sortants envoyés depuis les VM de l'instance cible directement vers Internet 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 en tant que source, le protocole et le port source du paquet ne doivent pas nécessairement correspondre aux spécifications de protocole et 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 et le transfert de protocole externe.
Ce chemin d'accès à Internet à partir d'une VM d'instance cible correspond au comportement par défaut prévu selon les règles de pare-feu implicites de Google Cloud. Toutefois, si vous avez des préoccupations 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 présente les limitations suivantes :
- Le protocole
L3_DEFAULT
n'est pas pris en charge. UtilisezTCP
ouUDP
. - Les cartes d'interface réseau multiples ne sont pas prises en charge.
- Le protocole
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.