Crea servizi di mappatura delle porte

Questa pagina descrive in che modo i produttori di servizi possono pubblicare servizi che utilizzano la mappatura delle porte di Private Service Connect.

La mappatura delle porte Private Service Connect consente alle istanze di macchine virtuali (VM) consumer di comunicare in privato con porte di servizio specifiche su VM producer specifiche tramite un singolo endpoint Private Service Connect.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per prepararti a pubblicare un servizio con la mappatura delle porte Private Service Connect, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto del produttore:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea e pubblica un servizio di mappatura delle porte

I servizi di mappatura delle porte hanno configurazioni simili ai bilanciatori del carico di rete passthrough interni, ma e il traffico non è con bilanciamento del carico. Per creare e pubblicare un servizio di mappatura delle porte:

  • Crea un NEG di mappatura delle porte
  • Aggiungi endpoint di rete al NEG di mappatura delle porte
  • Crea un servizio di mappatura delle porte
  • Pubblica il servizio di mappatura delle porte

Crea un NEG di mappatura delle porte

Un NEG di rete con mappatura delle porte è un NEG a livello di regione con tipo di endpoint di rete GCE_VM_IP_PORTMAP. Non è possibile modificare il tipo di un NEG di mappatura delle porte dopo la sua creazione.

Quando crei un NEG di mappatura delle porte, scegli una subnet. Gli endpoint di rete associati al gruppo di esclusioni di rete con mappatura delle porte devono avere un'interfaccia di rete principale in questa subnet.

Console

  1. Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.

    Vai a Gruppi di endpoint di rete

  2. Fai clic su Crea gruppo di endpoint di rete.

  3. Inserisci un nome.

  4. Fai clic su Tipo di gruppo di endpoint di rete, quindi seleziona NEG mappatura porte (regionale).

  5. Seleziona una Regione.

  6. Seleziona una Rete.

  7. Seleziona una Subnet.

  8. Fai clic su Crea.

gcloud

Utilizza il comando network-endpoints-groups create.

gcloud beta compute network-endpoint-groups create NEG \
    --region=REGION \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-endpoint-type=GCE_VM_IP_PORTMAP

Sostituisci quanto segue:

  • NEG: il nome del NEG di mappatura delle porte
  • REGION: la regione del NEG di mappatura delle porte
  • NETWORK: la rete VPC NEG mappatura porte
  • SUBNET: la subnet del NEG di mappatura delle porte

API

Invia una richiesta POST al metodo regionNetworkEndpointGroups.insert.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups
{
  "name": "NEG",
  "networkEndpointType": "GCE_VM_IP_PORTMAP",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto della mappatura delle porte NEG
  • REGION: la regione del NEG di mappatura delle porte
  • NEG: il nome del NEG di mappatura delle porte
  • NETWORK: la rete VPC del NEG di mappatura delle porte
  • SUBNET: la subnet del NEG di mappatura delle porte

Aggiungi endpoint di rete al gruppo di endpoint di rete con mappatura delle porte

Crea uno o più endpoint di rete con mappature delle porte e collegali al NEG di mappatura delle porte.

Gli endpoint di rete per i NEG con mappatura delle porte sono di zona e devono soddisfare i seguenti requisiti:

  • Ogni endpoint di rete fa riferimento a una VM di Compute Engine che su un'interfaccia di rete principale nella stessa subnet del NEG di mappatura delle porte.
  • Ogni endpoint di rete fa riferimento a una porta unica di destinazione del client.
  • Ogni endpoint di rete deve fare riferimento a una combinazione univoca di porta di servizio e VM.

Console

  1. Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.

    Vai a Gruppi di endpoint di rete

  2. Fai clic sul nome del NEG con mappatura delle porte che vuoi aggiornare.

  3. Fai clic su Aggiungi endpoint di rete.

  4. Fai clic su Istanza VM e seleziona una VM.

  5. Fai clic su Porta VM 1, quindi inserisci una porta di servizio.

  6. Fai clic su Porta client 1, quindi inserisci una porta di destinazione del client.

  7. Per ogni endpoint di rete aggiuntivo che vuoi aggiungere, fai clic su Aggiungi endpoint di rete, quindi inserisci i relativi dettagli.

  8. Fai clic su Crea.

gcloud

Utilizza il comando network-endpoint-groups update. Includi un flag --add-endpoint per ogni l'endpoint di rete che vuoi collegare.

gcloud beta compute network-endpoint-groups update NEG \
    --region=REGION \
    --add-endpoint=client-destination-port=CLIENT_DESTINATION_PORT_1,instance=projects/PROJECT_ID/zones/ZONE_1/instances/VM_1_NAME,port=VM_1_PORT \
    --add-endpoint=client-destination-port=CLIENT_DESTINATION_PORT_2,instance=projects/PROJECT_ID/zones/ZONE_2/instances/VM_2_NAME,port=VM_2_PORT

Sostituisci quanto segue:

  • NEG: il nome del NEG di mappatura delle porte
  • REGION: la regione del NEG con mappatura delle porte
  • CLIENT_DESTINATION_PORT_1: la porta di destinazione del client del primo endpoint di rete
  • PROJECT_ID: l'ID progetto del producer progetto
  • ZONE_1: la zona del primo endpoint di rete
  • VM_1_NAME: il nome della VM di destinazione per il primo endpoint di rete
  • VM_1_PORT: porta di servizio del primo endpoint di rete
  • CLIENT_DESTINATION_PORT_2: la porta di destinazione del client del secondo endpoint di rete
  • ZONE_2: la zona del secondo endpoint di rete
  • VM_2_NAME: il nome della VM di destinazione per il secondo endpoint di rete
  • VM_2_PORT: la porta di servizio del secondo endpoint di rete

API

Invia una richiesta POST a Metodo regionNetworkEndpointGroups.attachNetworkEndpoints.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups/NEG/attachNetworkEndpoints
{
  "networkEndpoints": [
    {
      "clientDestinationPort":CLIENT_DESTINATION_PORT_1,
      "instance": "projects/PROJECT_ID/zones/ZONE_1/instances/VM_1_NAME",
      "port": SERVICE_PORT_1
    },
    {
      "clientDestinationPort": CLIENT_DESTINATION_PORT_2,
      "instance": "projects/PROJECT_ID/zones/ZONE_2/instances/VM_2_NAME",
      "port": SERVICE_PORT_2
    }
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto del producer progetto
  • REGION: la regione del NEG con mappatura delle porte
  • NEG: il nome del NEG di mappatura delle porte
  • CLIENT_DESTINATION_PORT_1: la porta di destinazione del client del primo endpoint di rete
  • ZONE_1: la zona del primo endpoint di rete
  • VM_1_NAME: il nome della VM di destinazione per il primo endpoint di rete
  • SERVICE_PORT_1: la porta di servizio del primo endpoint di rete
  • CLIENT_DESTINATION_PORT_2: la porta di destinazione del client del secondo endpoint di rete
  • ZONE_2: la zona del secondo endpoint di rete
  • VM_2_NAME: il nome della VM di destinazione per il secondo endpoint di rete
  • SERVICE_PORT_2: la porta di servizio del secondo endpoint di rete

Crea un servizio di mappatura delle porte

Per creare un servizio di mappatura delle porte, completa i seguenti passaggi.

Non puoi modificare il NEG di mappatura delle porte associato a un servizio di backend dopo l'aggiunta del NEG. Tuttavia, puoi aggiornare gli endpoint di rete del NEG con mappatura delle porte.

Non puoi aggiornare la connessione di una regola di inoltro dopo la sua creazione. Se devi connetterti a un servizio di backend diverso, elimina la regola di forwarding, per crearne uno nuovo.

Console

Avvia la configurazione

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Carica di bilanciamento

  2. Fai clic su Crea bilanciatore del carico.
  3. In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
  4. Per Proxy o passthrough, seleziona Bilanciatore del carico passthrough e fai clic su Avanti.
  5. Per Pubblico o interno, seleziona Interno e fai clic su Avanti.
  6. Fai clic su Configura.

Configurazione di base

  1. Inserisci un nome del bilanciatore del carico.
  2. Seleziona una Regione.
  3. Seleziona una Rete.

Configurazione backend

  1. Per Tipo di backend, seleziona Gruppo di endpoint di rete con mappatura delle porte.
  2. Seleziona un gruppo di endpoint di rete con mappatura delle porte.

Configurazione frontend

  1. Fai clic su Configurazione frontend.
  2. (Facoltativo) Inserisci un nome.
  3. (Facoltativo) Inserisci una descrizione.
  4. Seleziona un Protocollo.
  5. Seleziona una Subnet.
  6. Fai clic su Fine.
  7. Fai clic su Crea.

gcloud

  1. Per creare un servizio di backend, utilizza il comando backend-services create.

    gcloud beta compute backend-services create SERVICE \
        --load-balancing-scheme=internal \
        --region=REGION \
        --network=NETWORK
    

    Sostituisci quanto segue:

    • SERVICE: il nome del servizio di backend
    • REGION: la regione del servizio di backend
    • NETWORK: la rete VPC producer del servizio di backend
  2. Per aggiungere il NEG di mappatura delle porte al servizio di backend, utilizza il comando backend-services add-backend.

    Non puoi aggiungere più NEG di mappatura delle porte a un singolo servizio di backend.

    gcloud beta compute backend-services add-backend SERVICE \
        --network-endpoint-group=NEG \
        --network-endpoint-group-region=REGION
    

    Sostituisci NEG con il nome della mappatura delle porte NEG.

  3. Per creare una regola di forwarding per il tuo servizio di mappatura delle porte, utilizza il metodo Comando forwarding-rules create.

    La regola di forwarding deve essere configurato per inoltrare il traffico per tutte le porte di destinazione del client.

    gcloud beta compute forwarding-rules create RULE \
        --load-balancing-scheme=INTERNAL \
        --ip-protocol=PROTOCOL \
        --network=NETWORK \
        --subnet=SUBNET \
        --address=IP_ADDRESS \
        --ports=ALL \
        --region=REGION \
        --backend-service=SERVICE
    

    Sostituisci quanto segue:

    • RULE: il nome della regola di inoltro
    • PROTOCOL: il protocollo della regola di forwarding che può essere TCP o UDP
    • SUBNET: la subnet del producer, che deve essere La stessa subnet associata al NEG di mappatura delle porte
    • IP_ADDRESS: l'indirizzo IP della regola di inoltro, che deve provenire dall'intervallo di indirizzi IP della sottorete del produttore

API

  1. Per creare un servizio di backend, invia una richiesta POST al Metodo regionBackendServices.insert.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices
    {
      "name": "SERVICE",
      "loadBalancingScheme": "INTERNAL",
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto del servizio di backend
    • REGION: la regione del servizio di backend
    • SERVICE: il nome del servizio di backend
    • NETWORK: la rete VPC producer
  2. Per aggiungere il NEG di mappatura delle porte al servizio di backend, invia un PATCH richiesta alla Metodo regionBackendServices.patch.

    Non puoi aggiungere più NEG di mappatura delle porte a un singolo servizio di backend.

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/SERVICE
    {
      "backends": [
        {
          "group": "https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups/NEG"
        }
      ]
    }
    

    Sostituisci NEG con il nome della porta con mappatura del NEG.

  3. Per creare una regola di inoltro per il servizio di mappatura delle porte, invia una richiesta POST al metodo forwardingRules.insert.

    La regola di forwarding deve essere configurato per inoltrare il traffico per tutte le porte di destinazione del client.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID>/regions/REGION/forwardingRules
    {
      "name": "RULE",
      "loadBalancingScheme": "INTERNAL",
      "IPProtocol": "PROTOCOL",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET",
      "IPAddress": "IP_ADDRESS",
      "allPorts": true,
      "backendService": "projects/PROJECT_ID/regions/REGION/backendServices/SERVICE"
    }
    

    Sostituisci quanto segue:

    • RULE: il nome della regola di inoltro
    • PROTOCOL: il protocollo della regola di forwarding che può essere TCP o UDP
    • SUBNET: la subnet del produttore, che deve essere la stessa associata al NEG di mappatura delle porte
    • IP_ADDRESS: l'indirizzo IP dell'inoltro , che deve provenire dall'intervallo di indirizzi IP della subnet del producer

Pubblica il servizio di mappatura delle porte

Per rendere disponibile il servizio di mappatura delle porte ai consumatori, pubblica il servizio creando un collegamento a un servizio. Quando crei l'attacco del servizio, specifica la regola di inoltro associata al servizio di mappatura delle porte.

Passaggi successivi