À propos des services publiés
Ce document explique comment utiliser Private Service Connect pour rendre un service disponible pour les clients de services.
En tant que producteur de services, vous pouvez utiliser Private Service Connect pour publier des services à l'aide d'adresses IP internes sur votre réseau VPC. Vos services publiés sont accessibles aux clients de services en utilisant des adresses IP internes dans leurs réseaux VPC.
Pour rendre un service disponible pour les clients, vous devez créer un ou plusieurs sous-réseaux dédiés. Vous créez ensuite un rattachement de service qui fait référence à ces sous-réseaux. Le rattachement de service peut avoir des préférences de connexion différentes.
Types de clients de service
Deux types de clients peuvent se connecter à un service Private Service Connect :
Les points de terminaison sont basés sur une règle de transfert.
Un point de terminaison permet aux clients de services d'envoyer du trafic depuis le réseau VPC du client vers des services du réseau VPC du producteur de services (cliquez pour agrandir).
Les backends sont basés sur un équilibreur de charge.
Un backend qui utilise un équilibreur de charge d'application externe global permet aux clients de services dotés d'un accès Internet d'envoyer du trafic aux services du réseau VPC du producteur de services (cliquez pour agrandir).
Sous-réseaux NAT
Les rattachements de service Private Service Connect sont configurés avec un ou plusieurs sous-réseaux NAT (également appelés sous-réseaux Private Service Connect). Les paquets du réseau VPC du client sont traduits à l'aide de la traduction NAT source (SNAT) afin que leurs adresses IP sources d'origine soient converties en adresses IP sources du sous-réseau NAT du réseau VPC du producteur.
Les rattachements de service peuvent comporter plusieurs sous-réseaux NAT. Des sous-réseaux NAT peuvent être ajoutés au rattachement de service à tout moment, sans interrompre le trafic.
Alors qu'un rattachement de service peut avoir plusieurs sous-réseaux NAT configurés, un sous-réseau NAT ne peut pas être utilisé dans plusieurs rattachements de service.
Les sous-réseaux NAT Service Connect ne peuvent pas être utilisés pour des ressources telles que des instances de machines virtuelles (VM) ou des règles de transfert. Les sous-réseaux ne sont utilisés que pour fournir les adresses IP de SNAT des connexions client entrantes.
Dimensionnement du sous-réseau NAT
La taille du sous-réseau détermine le nombre de clients pouvant se connecter à votre service. Si toutes les adresses IP du sous-réseau NAT sont utilisées, toutes les connexions Private Service Connect supplémentaires échouent. Réfléchissez aux éléments suivants :
Une adresse IP est utilisée à partir du sous-réseau NAT pour chaque point de terminaison ou backend connecté au rattachement de service.
Le nombre de connexions TCP ou UDP, de clients ou de réseaux VPC consommateur n'a pas d'incidence sur l'utilisation des adresses IP du sous-réseau NAT.
Si la propagation des connexions est utilisée par les clients, une adresse IP supplémentaire est utilisée pour chaque spoke VPC vers lequel les connexions sont propagées, pour chaque point de terminaison.
Vous pouvez contrôler le nombre de connexions propagées créées en configurant la limite de connexions propagées.
Lorsque vous estimez le nombre d'adresses IP dont vous avez besoin pour les points de terminaison et les backends, tenez compte des services mutualisés ou des clients qui utilisent un accès multipoint pour Private Service Connect.
Surveillance du sous-réseau NAT
Pour garantir que les connexions Private Service Connect n'échouent pas en raison de l'indisponibilité des adresses IP d'un sous-réseau NAT, nous vous recommandons de procéder comme suit :
- Surveillez la métrique de rattachement de service
private_service_connect/producer/used_nat_ip_addresses. Assurez-vous que le nombre d'adresses IP NAT utilisées ne dépasse pas la capacité des sous-réseaux NAT d'un rattachement de service. - Surveillez l'état de connexion des connexions du rattachement de service. Si une connexion est à l'état Attention requise, il se peut qu'il n'y ait plus d'adresses IP disponibles dans les sous-réseaux NAT du rattachement.
- Pour les services mutualisés, vous pouvez utiliser des limites de connexion pour vous assurer qu'un seul client n'épuise pas la capacité des sous-réseaux NAT d'un rattachement de service.
Si nécessaire, vous pouvez ajouter des sous-réseaux NAT au rattachement de service à tout moment, sans interrompre le trafic.
Spécifications NAT
Tenez compte des caractéristiques suivantes de la NAT Private Service Connect lorsque vous concevez le service que vous publiez :
Le délai d'inactivité du mappage UDP est de 30 secondes et ne peut pas être configuré.
Le délai d'inactivité de la connexion TCP une fois celle-ci établie est de 20 minutes et ne peut pas être configuré.
Pour éviter les problèmes de dépassement du délai d'expiration des connexions client, effectuez l'une des opérations suivantes :
Assurez-vous que toutes les connexions durent moins de 20 minutes.
Assurez-vous que du trafic est envoyé au moins une fois toutes les 20 minutes. Vous pouvez utiliser une pulsation ou un message keepalive directement dans votre application, ou utiliser plutôt des messages keepalive TCP. Par exemple, vous pouvez configurer un message keepalive dans le proxy cible d'un équilibreur de charge d'application interne régional ou d'un équilibreur de charge réseau proxy interne régional.
Le délai d'inactivité de la connexion TCP transitoire est de 30 secondes et ne peut pas être configuré.
Il existe un délai de deux minutes avant qu'un 5-tuple (adresse IP source et port source du sous-réseau NAT plus protocole, adresse IP et port de destination) ne puisse être réutilisé.
La configuration SNAT pour Private Service Connect n'accepte pas les fragments d'adresses IP.
Nombre maximal de connexions
Une seule VM de producteur peut accepter un maximum de 64 512 connexions TCP et 64 512 connexions UDP simultanées d'un seul client Private Service Connect (point de terminaison ou backend). Aucune limite ne s'applique au nombre total de connexions TCP et UDP qu'un point de terminaison Private Service Connect peut recevoir de manière globale sur tous les backends du producteur. Les VM clientes peuvent utiliser les 65 536 ports sources lors du lancement de connexions TCP ou UDP à un point de terminaison Private Service Connect. Toute la traduction d'adresse réseau est effectuée localement sur l'hôte producteur, ce qui ne nécessite pas de pool de ports NAT alloué de manière centralisée.
Rattachements de service
Les producteurs de services exposent leur service via un rattachement de service.
- Pour exposer un service, un producteur de services crée un rattachement de service qui fait référence à un service cible. Le service cible peut être l'un des suivants :
- Règle de transfert d'un équilibreur de charge
- Une instance de proxy Web sécurisé
L'URI du rattachement de service a le format suivant : projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME.
Un rattachement de service ne peut avoir qu'un seul service cible. Toutefois, plusieurs rattachements de service peuvent partager le même service cible.
Les rattachements de service vous permettent de contrôler l'accès à votre service publié, d'afficher les connexions et de configurer des limites de connexion. Pour en savoir plus, consultez À propos du contrôle de l'accès aux services publiés.
États de connexion
Les rattachements de service possèdent des états de connexion qui décrivent l'état de leurs connexions. Pour en savoir plus, consultez États de connexion.
Configuration DNS
Pour en savoir plus sur la configuration DNS des services publiés et des points de terminaison qui se connectent aux services publiés, consultez la page Configuration DNS pour les services.
Configuration multirégionale pour le basculement
Vous pouvez mettre un service à disposition dans plusieurs régions en créant les configurations suivantes.
Configuration du producteur :
- Déployez le service dans chaque région. Chaque instance régionale du service doit être configurée sur un équilibreur de charge régional compatible avec l'accès via un backend.
- Créez un rattachement de service pour publier chaque instance régionale du service.
Configuration du client :
- Créez un backend Private Service Connect pour accéder aux services publiés. Le backend doit être basé sur un équilibreur de charge compatible avec le basculement interrégional et inclure la configuration suivante :
- Un NEG Private Service Connect dans chaque région qui pointe vers le rattachement de service de cette région
- Un service de backend global contenant les backends NEG
Cette configuration est compatible avec le basculement interrégional automatique. Avec le basculement automatique, si une instance de service dans une région devient non opérationnelle, l'équilibreur de charge du consommateur cesse de router le trafic vers ce service et le route à la place vers une instance de service opérationnelle dans une autre région.
Pour en savoir plus, consultez les ressources suivantes :
- À propos de l'état de Private Service Connect
- Basculement automatique entre régions pour les consommateurs
L'utilisation d'un équilibreur de charge d'application externe global permet aux clients de services dotés d'un accès Internet d'envoyer du trafic aux services du réseau VPC du producteur de services. Le service étant déployé dans plusieurs régions, l'équilibreur de charge du consommateur peut acheminer le trafic vers une instance de service opérationnelle dans une autre région (cliquez pour agrandir).
Traduction de version IP
Pour les points de terminaison Private Service Connect qui se connectent à des services publiés (rattachements de service), la version IP de l'adresse IP de la règle de transfert client détermine la version IP du point de terminaison et le trafic sortant du point de terminaison. L'adresse IP peut provenir d'un sous-réseau à double pile, IPv4 uniquement ou IPv6 uniquement. La version IP du point de terminaison peut être de type IPv4 ou IPv6, mais pas les deux.
Pour les services publiés, la version IP du rattachement de service est déterminée par l'adresse IP de la règle de transfert ou de l'instance Secure Web Proxy associée. Cette adresse IP doit être compatible avec le type de pile du sous-réseau NAT du rattachement de service. Le sous-réseau NAT peut être un sous-réseau IPv4 uniquement, IPv6 uniquement ou à double pile. Si le sous-réseau NAT est un sous-réseau à double pile, la plage d'adresses IPv4 ou IPv6 est utilisée, mais pas les deux.
Private Service Connect n'est pas compatible avec la connexion d'un point de terminaison IPv4 à un rattachement de service IPv6. Dans ce cas, la création du point de terminaison échoue avec le message d'erreur suivant :
Private Service Connect forwarding rule with an IPv4 address
cannot target an IPv6 service attachment.
Les combinaisons suivantes sont possibles pour les configurations compatibles :
- Point de terminaison IPv4 vers rattachement de service IPv4
- Point de terminaison IPv6 vers rattachement de service IPv6
-
Point de terminaison IPv6 vers rattachement de service IPv4
Dans cette configuration, Private Service Connect traduit automatiquement les deux versions d'adresse IP.
Pour les connexions entre les backends Private Service Connect et les rattachements de service, les règles de transfert client et producteur doivent utiliser IPv4.
Fonctionnalités et compatibilité
Dans les tables suivantes, la coche indique qu'une fonctionnalité est compatible, et "aucun symbole" indique qu'une fonctionnalité n'est pas compatible.
Selon l'équilibreur de charge du producteur choisi, le service du producteur peut prendre en charge l'accès via des points de terminaison, des backends ou les deux.
Compatibilité avec les points de terminaison
Cette section récapitule les options de configuration disponibles pour les clients et les producteurs lorsqu'ils utilisent des points de terminaison pour accéder aux services publiés.
Configuration du client
Ce tableau récapitule les options et les capacités de configuration compatibles avec les points de terminaison qui accèdent à des services publiés en fonction du type de producteur cible.
Configuration du producteur
Ce tableau récapitule les options de configuration et les capacités compatibles avec les services publiés auxquels les points de terminaison ont accès.
| Type de producteur | Configuration du producteur (service publié) | |||
|---|---|---|---|---|
| Backends de producteur compatibles | Protocole PROXY (trafic TCP uniquement) | Version IP | ||
| Équilibreur de charge d'application interne interrégional |
|
|
||
| Équilibreur de charge réseau passthrough interne |
|
|
||
| Transfert de protocole interne (instance cible) |
|
|
||
| Services de mappage de port |
|
|
||
| Équilibreur de charge d'application interne régional |
|
|
||
| Équilibreur de charge réseau proxy interne régional |
|
|
||
| Secure Web Proxy |
|
|
||
Différents équilibreurs de charge prennent en charge différentes configurations de port. Certains équilibreurs de charge acceptent un seul port, d'autres sont compatibles avec une plage de ports et d'autres acceptent tous les ports. Pour en savoir plus, consultez la section Spécifications de ports.
Compatibilité avec les backends
Un backend Private Service Connect pour les services publiés nécessite deux équilibreurs de charge : un équilibreur de charge du client et un équilibreur de charge du producteur. Cette section récapitule les options de configuration disponibles pour les clients et les producteurs lorsqu'ils utilisent des backends pour accéder aux services publiés.
Configuration du client
Ce tableau décrit les équilibreurs de charge client compatibles avec les backends Private Service Connect pour les services publiés, y compris les protocoles de service de backend pouvant être utilisés avec chaque équilibreur de charge du client. Les équilibreurs de charge du client peuvent accéder aux services publiés qui sont hébergés sur des équilibreurs de charge du producteur compatibles.
| Équilibreur de charge du client | Protocoles | Version IP | Basculement interrégional |
|---|---|---|---|
|
IPv4 | ||
|
IPv4 | ||
|
Équilibreur de charge d'application externe global Remarque : L'équilibreur de charge d'application classique n'est pas compatible. |
|
IPv4 | |
|
Équilibreur de charge réseau proxy externe global Pour associer cet équilibreur de charge à un NEG Private Service Connect, utilisez Google Cloud CLI ou envoyez une requête API. Remarque : L'équilibreur de charge réseau classique n'est pas compatible. |
|
IPv4 | |
|
IPv4 | ||
|
IPv4 | ||
|
IPv4 | ||
|
IPv4 |
Configuration du producteur
Ce tableau décrit la configuration des équilibreurs de charge de producteur compatibles avec les backends Private Service Connect des services publiés.
| Type de producteur | Configuration du producteur (service publié) | |||||
|---|---|---|---|---|---|---|
| Backends de producteur compatibles | Protocoles de règles de transfert | Ports de règle de transfert | Protocole PROXY | Version IP | Assistance Santé Connect | |
| Équilibreur de charge d'application interne interrégional |
|
|
Prend en charge un, plusieurs ou tous les ports | IPv4 | ||
| Équilibreur de charge réseau passthrough interne |
|
|
Consultez la section Configuration du port du producteur. | IPv4 | ||
| Équilibreur de charge d'application interne régional |
|
|
Prise en charge d'un seul port | IPv4 | ||
| Équilibreur de charge réseau proxy interne régional |
|
|
Prise en charge d'un seul port | IPv4 | ||
| Secure Web Proxy |
|
|
Non applicable | IPv4 | ||
Configuration du port du producteur
Lorsqu'un équilibreur de charge réseau passthrough interne est publié à l'aide de Private Service Connect, les clients qui utilisent des backends Private Service Connect pour accéder au service doivent connaître le port à utiliser pour communiquer avec le service. Tenez compte des points suivants lorsque vous créez la règle de transfert pour l'équilibreur de charge réseau passthrough interne du producteur :
- Nous vous recommandons de communiquer aux consommateurs le port utilisé dans la règle de transfert du producteur, afin qu'ils puissent le spécifier lorsqu'ils créent un NEG.
Si les consommateurs ne spécifient pas de port de producteur lorsqu'ils créent leurs NEG, le port de producteur est déterminé en fonction de la configuration de la règle de transfert du producteur :
- Si la règle de transfert du producteur utilise un seul port, le backend du client utilise le même port.
Si la règle de transfert du producteur utilise plusieurs ports, les éléments suivants s'appliquent :
- Si le port
443est inclus, le backend du client utilise le port443. - Si le port
443n'est pas inclus, le backend du client utilise le premier port de la liste, une fois celle-ci triée par ordre alphabétique. Par exemple, si vous spécifiez les ports80et1111, le backend du client utilise le port1111. Si vous modifiez les ports utilisés par les backends du producteur, cela peut entraîner une interruption de service pour les consommateurs.
Par exemple, supposons que vous créez un service publié avec une règle de transfert qui utilise les ports
443et8443, et des VM de backend qui répondent sur les ports443et8443. Lorsqu'un backend de client se connecte à ce service, il utilise le port443pour la communication.Si vous modifiez les VM de backend pour qu'elles ne répondent que sur le port
8443, le backend du client ne peut plus accéder au service publié.
- Si le port
Si la règle de transfert du producteur utilise tous les ports, le consommateur de service doit spécifier un port de producteur lorsqu'il crée le NEG. S'il ne spécifie pas de port, le backend du client utilise le port
1, qui ne fonctionne pas.
VPC partagé
Les administrateurs de projets de service peuvent créer des rattachements de service dans des projets de service VPC partagé qui se connectent à des ressources dans des réseaux VPC partagés.
La configuration est la même que pour un rattachement de service standard, à l'exception des éléments suivants :
- La règle de transfert de l'équilibreur de charge du producteur est associée à une adresse IP du réseau VPC partagé. Le sous-réseau de la règle de transfert doit être partagé avec le projet de service.
- Le rattachement de service utilise un sous-réseau Private Service Connect du réseau VPC partagé. Ce sous-réseau doit être partagé avec le projet de service.
Journalisation
Vous pouvez activer les journaux de flux VPC sur les sous-réseaux qui contiennent les VM de backend. Les journaux affichent les flux entre les VM de backend et les adresses IP du sous-réseau Private Service Connect.
VPC Service Controls
Les solutions VPC Service Controls et Private Service Connect sont compatibles entre elles. Si le réseau VPC sur lequel le point de terminaison Private Service Connect est déployé se trouve dans un périmètre VPC Service Controls, le point de terminaison fait partie du même périmètre. Tous les services compatibles avec VPC Service Controls accessibles via le point de terminaison sont soumis aux règles de ce périmètre VPC Service Controls.
Lorsque vous créez un point de terminaison, des appels d'API de plan de contrôle sont effectués entre les projets client et producteur pour établir une connexion Private Service Connect. L'établissement d'une connexion Private Service Connect entre des projets client et producteur qui ne se trouvent pas dans le même périmètre VPC Service Controls ne nécessite pas d'autorisation explicite avec des règles de sortie. La communication avec les services compatibles avec VPC Service Controls via le point de terminaison est protégée par le périmètre VPC Service Controls.
Afficher les informations de connexion client
Par défaut, Private Service Connect traduit l'adresse IP source du client en adresse dans l'un des sous-réseaux Private Service Connect du réseau VPC du producteur de services. Si vous souhaitez voir l'adresse IP source d'origine du client, vous pouvez activer le protocole PROXY lorsque vous publiez un service. Private Service Connect est compatible avec le protocole PROXY version 2.
Certains services ne sont pas compatibles avec le protocole PROXY. Pour en savoir plus, consultez la section Fonctionnalités et compatibilité.
Si le protocole PROXY est activé, vous pouvez obtenir l'adresse IP source et l'ID de connexion PSC (pscConnectionId) du client à partir de l'en-tête de protocole PROXY.
Le format des en-têtes de protocole PROXY dépend de la version IP du point de terminaison du client. Si l'équilibreur de charge de votre rattachement de service possède une adresse IPv6, les clients peuvent se connecter avec des adresses IPv4 et IPv6. Configurez votre application pour qu'elle reçoive et lise les en-têtes du protocole PROXY pour la version IP du trafic qu'elle doit recevoir.
Pour le trafic client qui transite par une connexion propagée, l'adresse IP source du client et l'ID de connexion PSC font référence au point de terminaison Private Service Connect propagé.
Lorsque vous activez le protocole PROXY pour un rattachement de service, la modification ne s'applique qu'aux nouvelles connexions. Les connexions existantes n'incluent pas l'en-tête du protocole PROXY.
Si vous activez le protocole PROXY, consultez la documentation de votre logiciel serveur Web backend pour obtenir des informations sur l'analyse et le traitement des en-têtes de protocole PROXY entrants dans les charges utiles TCP de connexion client. Si le protocole PROXY est activé sur le rattachement de service, mais que le serveur Web de backend n'est pas configuré pour traiter les en-têtes de protocole PROXY, les requêtes Web peuvent être mal formulées. Si les requêtes sont mal formulées, le serveur ne peut pas les interpréter.
L'ID de connexion Private Service Connect (pscConnectionId) est encodé dans l'en-tête du protocole de PROXY au format TLV (Type-Length-Value).
| Champ | Longueur du champ | Valeur du champ |
|---|---|---|
| Type | 1 octet | 0xE0 (PP2_TYPE_GCP)
|
| Longueur | 2 octets | 0x8 (8 octets) |
| Valeur | 8 octets | ID de connexion PSC (pscConnectionId) de 8 octets dans l'ordre réseau |
Vous pouvez afficher l'ID de connexion PSC (pscConnectionId) de 8 octets en consultant la règle de transfert du client ou le rattachement de service du producteur.
La valeur pscConnectionId est unique pour toutes les connexions actives à un moment donné. Toutefois, au fil du temps, un pscConnectionId peut être réutilisé dans les scénarios suivants :
Dans un réseau VPC donné, si vous supprimez un point de terminaison (règle de transfert) et que vous créez un point de terminaison utilisant la même adresse IP, il est possible d'utiliser la même valeur
pscConnectionId.Si vous supprimez un réseau VPC contenant des points de terminaison (règles de transfert), après un délai d'attente de sept jours, la valeur
pscConnectionIdutilisée pour ces points de terminaison peut être utilisée pour un autre point de terminaison dans un autre réseau VPC.
Vous pouvez utiliser les valeurs pscConnectionId pour le débogage et pour suivre la source des paquets.
Un ID de rattachement de service Private Service Connect distinct (pscServiceAttachmentId) de 16 octets est disponible dans le rattachement de service producteur.
La valeur pscServiceAttachmentId est un ID unique qui identifie un rattachement de service Private Service Connect. Vous pouvez utiliser la valeur pscServiceAttachmentId pour la visibilité et le débogage. Cette valeur n'est pas incluse dans l'en-tête de protocole PROXY.
Tarifs
La tarification de Private Service Connect est décrite sur la page des tarifs relatifs aux VPC.
Quotas
Le nombre total de points de terminaison Private Service Connect et de connexions propagées, à partir de n'importe quel client, qui peuvent accéder à votre réseau VPC producteur est contrôlé par le quota PSC ILB consumer forwarding rules per producer VPC network.
Les points de terminaison contribuent à ce quota jusqu'à leur suppression, même si le rattachement de service associé est supprimé ou configuré pour refuser la connexion. Les connexions propagées sont prises en compte dans ce quota jusqu'à la suppression du point de terminaison associé, même si la propagation de la connexion est désactivée sur le hub Network Connectivity Center ou si le spoke de la connexion propagée est supprimé.
Accès sur site
Les services Private Service Connect sont rendus disponibles à l'aide de points de terminaison. Ces points de terminaison sont accessibles à partir d'hôtes sur site connectés compatibles. Pour en savoir plus, consultez la section Accéder au point de terminaison à partir d'hôtes sur site.
Limites
Les limites suivantes s'appliquent aux services publiés :
- Les équilibreurs de charge configurés avec
plusieurs protocoles (protocole défini sur
L3_DEFAULT) ne sont pas compatibles. - La mise en miroir de paquets ne peut pas mettre en miroir les paquets pour le trafic des services publiés par Private Service Connect.
- Vous devez utiliser Google Cloud CLI ou l'API pour créer un rattachement de service pointant vers une règle de transfert utilisée pour le transfert de protocole interne.
Pour connaître les problèmes et les solutions, consultez la section Problèmes connus.