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 (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égionales (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 (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 :
Prise en charge des adresses IPv4 Adresse IPv4 interne régionale (réservée statique ou éphémère) de la plage IPv4 principale d'un sous-réseau.
Compatibilité avec les 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 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 surINTERNAL
.Les adresses IPv6 internes 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.
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 :
Prise en charge 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 Google Cloud région. L'adresse IP peut être une adresse statique réservée ou une adresse éphémère.
Compatibilité avec les 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 l'un des suivants :- Un sous-réseau à double pile (IPv4 et IPv6)
- Un sous-réseau à pile unique (IPv6 uniquement)
Le sous-réseau
ipv6-access-type
doit être 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
:- 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 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 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
.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
Le transfert de protocole à l'aide d'instances cibles est compatible avec les instances de VM dotées d'interfaces réseau non-nic0
(cartes d'interface réseau virtuelles ou interfaces réseau dynamiques) en utilisant l'indicateur --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'interfacenic0
de la VM référencée. - Si vous incluez l'indicateur
--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'indicateur--network
. Par conséquent, la VM référencée doit disposer d'une carte d'interface réseau 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 s'ils 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 un sous-réseau à pile unique IPv6 uniquement situé dans la même région que la règle de transfert IPv6.
Notez que, bien que des 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 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 Créer une instance qui utilise des adresses IPv6. Si vous souhaitez utiliser une VM existante, vous pouvez la mettre à jour pour qu'elle soit à double pile en utilisant la commande gcloud compute instances network-interfaces update
.
La mise à jour des VM existantes vers IPv6 uniquement n'est pas compatible.
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 UDP1 | Dans la plupart des cas d'utilisation, adresse IP de la règle de transfert2 | Adresse IP source du paquet de requête |
1 AH, ESP, GRE, ICMP et ICMPv6 ne sont compatibles qu'avec le transfert de protocole externe.
2 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 règle générale, une instance de VM utilise toujours sa propre adresse IP externe ou Cloud NAT pour établir des connexions. Vous utilisez l'adresse IP de la règle de transfert pour lancer des connexions à partir d'instances cibles uniquement dans des cas particuliers, par exemple lorsque vous avez besoin que des instances de VM établissent et reçoivent des connexions à la même adresse IP externe.
Les paquets sortants envoyés depuis les VM des instances cibles 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 comme 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 à la connectivité Internet à partir d'une VM d'instance cible est le comportement par défaut prévu par les règles de pare-feu implicites de Google Cloud. Toutefois, si vous avez des préoccupations concernant la sécurité de ce chemin d'accès, 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
. UtilisezTCP
ouUDP
.
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.