Configura un bilanciatore del carico di rete proxy interno regionale con backend di gruppi di istanze VM

Il bilanciatore del carico di rete proxy interno regionale è un bilanciatore del carico di livello 4 regionale basato su proxy che consente di eseguire e scalare il traffico del servizio TCP dietro un indirizzo IP interno accessibile solo ai client nello stesso VPC o client connessi al tuo VPC in ogni rete.

Questa guida contiene le istruzioni per la configurazione di un bilanciatore del carico di rete proxy interno regionale con un backend di un gruppo di istanze gestite.

Prima di iniziare, leggi l'articolo sul bilanciatore del carico di rete proxy interno regionale Panoramica.

Panoramica

In questo esempio, utilizzeremo il bilanciatore del carico per distribuire il traffico TCP VM di backend in due gruppi di istanze gestite a livello di zona nella regione REGION_A. Per Nell'esempio, il servizio è un insieme Server Apache configurati per rispondere sulla porta 110. Molti browser non consentono la porta 110, perciò la sezione di test utilizza curl.

In questo esempio, configuri il seguente deployment:

Configurazione di esempio del bilanciatore del carico di rete proxy interno regionale con backend di gruppi di istanze.
Configurazione di esempio del bilanciatore del carico di rete proxy interno regionale con backend di gruppi di istanze

Il bilanciatore del carico di rete proxy interno regionale è un bilanciatore del carico regionale. Tutti i componenti del bilanciatore del carico (gruppi di istanza di backend, servizio di backend, proxy di destinazione e regola di forwarding) deve trovarsi nella stessa regione.

Autorizzazioni

Per seguire questa guida, devi essere in grado di creare istanze e modificare un in un progetto. Devi essere un progetto proprietario o editor oppure includono tutte le seguenti caratteristiche Ruoli IAM di Compute Engine:

Attività Ruolo richiesto
Creazione di reti, subnet e componenti del bilanciatore del carico Amministratore rete
Aggiungi e rimuovi regole firewall Amministratore sicurezza
Creazione delle istanze Amministratore istanze Compute

Per ulteriori informazioni, consulta le seguenti guide:

Configura la rete e le subnet

È necessaria una rete VPC con due subnet: una per il carico e l'altro per i proxy del bilanciatore del carico. I bilanciatori del carico di rete proxy interni regionali sono a livello di regione. Traffico all'interno del VPC la rete è instradata al bilanciatore del carico se l'origine del traffico si trova in una subnet in della stessa regione del bilanciatore del carico.

Questo esempio utilizza la rete VPC, la regione e subnet:

  • Rete. La rete è un VPC in modalità personalizzata denominata lb-network.

  • Subnet per i backend. Una subnet denominata backend-subnet nel La regione REGION_A utilizza 10.1.2.0/24 come intervallo IP principale.

  • Subnet per i proxy. Una subnet denominata proxy-only-subnet nel La regione REGION_A utilizza 10.129.0.0/23 come intervallo IP principale.

Per dimostrare globale di accesso, questo esempio crea anche una seconda VM client di test in una regione diversa (REGION_B) e una subnet con intervallo di indirizzi IP principali 10.3.4.0/24.

Crea la rete e le subnet

Console

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai alle reti VPC

  2. Fai clic su Crea rete VPC.

  3. In Nome, inserisci lb-network.

  4. Nella sezione Subnet, imposta la Modalità di creazione subnet su Personalizzato.

  5. Creare una subnet per i backend del bilanciatore del carico. Nella sezione Nuova subnet inserisci le seguenti informazioni:

    • Nome: backend-subnet
    • Regione: REGION_A
    • Intervallo di indirizzi IP: 10.1.2.0/24
  6. Fai clic su Fine.

  7. Fai clic su Aggiungi subnet.

  8. Crea una subnet per dimostrare come funziona globale l'accesso alle app. Nel subnet, inserisci le seguenti informazioni:

    • Nome: test-global-access-subnet
    • Regione: REGION_B
    • Intervallo di indirizzi IP: 10.3.4.0/24
  9. Fai clic su Fine.

  10. Fai clic su Crea.

gcloud

  1. Crea la rete VPC personalizzata con il comando gcloud compute networks create:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Crea una subnet nella rete lb-network della regione REGION_A con il comando gcloud compute networks subnets create:

    gcloud compute networks subnets create backend-subnet \
       --network=lb-network \
       --range=10.1.2.0/24 \
       --region=REGION_A
    

    Sostituisci REGION_A con il nome della regione Google Cloud di destinazione.

  3. Crea una subnet nella rete lb-network nella regione REGION_B con il comando gcloud compute networks subnets create:

    gcloud compute networks subnets create test-global-access-subnet \
       --network=lb-network \
       --range=10.3.4.0/24 \
       --region=REGION_B
    

    Sostituisci REGION_B con il nome della regione Google Cloud in cui vuoi creare la seconda subnet per testare l'accesso globale.

Crea la subnet solo proxy

Una subnet solo proxy fornisce una insieme di indirizzi IP che Google utilizza per eseguire proxy Envoy per tuo conto. La i proxy terminano le connessioni dal client e creano nuove connessioni di backend.

Questa subnet solo proxy viene utilizzata da tutto il carico basato su Envoy bilanciatori del carico in REGION_A regione della rete VPC lb-network.

Console

Se utilizzi la console Google Cloud, puoi attendere e creare una subnet solo proxy in un secondo momento nella pagina Bilanciamento del carico.

Se vuoi creare ora la subnet solo proxy, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Reti VPC.
    Vai alle reti VPC
  2. Fai clic sul nome della rete VPC condiviso: lb-network.
  3. Fai clic su Aggiungi subnet.
  4. In Nome, inserisci proxy-only-subnet.
  5. In Regione, seleziona REGION_A.
  6. Imposta Purpose su Regional Managed Proxy (Proxy gestito a livello di regione).
  7. In Intervallo di indirizzi IP, inserisci 10.129.0.0/23.
  8. Fai clic su Aggiungi.

gcloud

Crea la subnet solo proxy con il comando gcloud compute networks subnets create.

gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=REGION_A \
    --network=lb-network \
    --range=10.129.0.0/23

Crea regole firewall

Questo esempio richiede le seguenti regole firewall:

  • fw-allow-ssh. Una regola in entrata, applicabile alle istanze da caricare bilanciata, che consente la connettività SSH in entrata sulla porta TCP 22 da qualsiasi . Puoi scegliere un intervallo IP di origine più restrittivo per questa regola. della Ad esempio, puoi specificare solo gli intervalli IP del sistema da cui avviare sessioni SSH. Questo esempio utilizza il tag target allow-ssh.

  • fw-allow-health-check. Una regola in entrata, applicabile alle istanze che vengono con bilanciamento del carico, che consente tutto il traffico TCP da Google Cloud sistemi di controllo dell'integrità (in 130.211.0.0/22 e 35.191.0.0/16). Questo utilizza il tag di destinazione allow-health-check.

  • fw-allow-proxy-only-subnet. Una regola in entrata che consente le connessioni dal una subnet solo proxy per raggiungere i backend.

Senza queste regole firewall, il campo di blocco predefinito una regola in entrata blocca in entrata alle istanze di backend.

I tag target e definire le istanze di backend. Senza i tag di destinazione, il firewall e vengono applicate a tutte le istanze di backend nella rete VPC. Quando crei le VM di backend, assicurati di includere i tag di destinazione specificati, come illustrato in Creazione di un'istanza gestita .

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.
    Vai ai criteri firewall
  2. Fai clic su Crea regola firewall per creare la regola in modo da consentire le richieste in entrata Connessioni SSH:
      .
    • Nome: fw-allow-ssh
    • Rete: lb-network
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: Consenti
    • Target: tag di destinazione specificati
    • Tag di destinazione: allow-ssh
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 0.0.0.0/0
    • Protocolli e porte:
        .
      • Scegli Protocolli e porte specificati.
      • Seleziona la casella di controllo TCP, quindi inserisci 22 per il numero di porta.
  3. Fai clic su Crea.
  4. Fai clic su Crea regola firewall una seconda volta per creare la regola che consente Controlli di integrità di Google Cloud:
      .
    • Nome: fw-allow-health-check
    • Rete: lb-network
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: Consenti
    • Target: tag di destinazione specificati
    • Tag di destinazione: allow-health-check
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 130.211.0.0/22 e 35.191.0.0/16
    • Protocolli e porte:
        .
      • Scegli Protocolli e porte specificati.
      • Seleziona la casella di controllo TCP, quindi inserisci 80 per il numero di porta.
        Come best practice, limita questa regola ai soli protocolli e porte che corrispondano a quelli usati dal controllo di integrità. Se utilizzi tcp:80 per il protocollo e la porta, Google Cloud può utilizzare HTTP sulla porta 80 per contattare le VM, ma non è possibile utilizzare HTTPS porta 443 per contattarlo.
  5. Fai clic su Crea.
  6. Fai clic su Crea regola firewall una terza volta per creare la regola che consente ai server proxy del bilanciatore del carico per connettere i backend:
      .
    • Nome: fw-allow-proxy-only-subnet
    • Rete: lb-network
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: Consenti
    • Target: tag di destinazione specificati
    • Tag di destinazione: allow-proxy-only-subnet
    • Filtro di origine: Intervalli IPv4
    • Intervalli IPv4 di origine: 10.129.0.0/23
    • Protocolli e porte:
        .
      • Scegli Protocolli e porte specificati.
      • Seleziona la casella di controllo TCP, quindi inserisci 80 per numeri di porta.
  7. Fai clic su Crea.

gcloud

  1. Crea la regola firewall fw-allow-ssh per consentire la connettività SSH a VM con il tag di rete allow-ssh. Se ometti source-ranges, Google Cloud interpreta la regola nel significato che Fonte.

    gcloud compute firewall-rules create fw-allow-ssh \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --target-tags=allow-ssh \
       --rules=tcp:22
    
  2. Crea la regola fw-allow-health-check per consentire a Google Cloud e controlli di integrità. Questo esempio consente tutto il traffico TCP proveniente dal controllo di integrità i probatori; ma puoi configurare un insieme più ristretto di porte e alle esigenze aziendali.

    gcloud compute firewall-rules create fw-allow-health-check \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --source-ranges=130.211.0.0/22,35.191.0.0/16 \
       --target-tags=allow-health-check \
       --rules=tcp:80
    
  3. Crea la regola fw-allow-proxy-only-subnet per consentire a Envoy della regione per connettersi ai tuoi backend. Imposta --source-ranges su di intervalli allocati della subnet solo proxy, in questo esempio 10.129.0.0/23.

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --source-ranges=10.129.0.0/23 \
       --target-tags=allow-proxy-only-subnet \
       --rules=tcp:80
    

Prenota l'indirizzo IP del bilanciatore del carico

Per prenotare un indirizzo IP interno statico per il bilanciatore del carico, consulta Prenota un nuovo IPv4 o IPv6 interno statico .

Creare un gruppo di istanze gestite

Questa sezione mostra come creare due backend di gruppo di istanze gestite nella regione REGION_A per il bilanciatore del carico. Il gruppo di istanze gestite fornisce istanze VM che esegue i server Apache backend per il bilanciatore del carico di rete proxy interno regionale di esempio. In genere, un bilanciatore del carico di rete proxy interno regionale non viene utilizzato per il traffico HTTP, ma Il software Apache è comunemente usato per i test.

Console

  1. Creare un modello di istanza. Nella console Google Cloud, vai a la pagina Modelli di istanza.

    Vai a Modelli di istanza

    1. Fai clic su Crea modello istanza.
    2. In Nome, inserisci int-tcp-proxy-backend-template.
    3. Assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio Debian GNU/Linux 10 (stretch). Queste istruzioni utilizzano comandi sono disponibili solo su Debian, come apt-get.
    4. Fai clic su Opzioni avanzate.
    5. Fai clic su Networking e configura i seguenti campi:
        .
      1. In Tag di rete, inserisci allow-ssh, allow-health-check e allow-proxy-only-subnet.
      2. In Interfacce di rete, seleziona quanto segue:
          .
        • Rete: lb-network
        • Subnet: backend-subnet
    6. Fai clic su Gestione. Inserisci lo script seguente nel Script di avvio.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
    7. Fai clic su Crea.

  2. Creare un gruppo di istanze gestite. Nella console Google Cloud, vai alla Pagina Gruppi di istanze.

    Vai a Gruppi di istanze

    1. Fai clic su Crea gruppo di istanze.
    2. Seleziona Nuovo gruppo di istanze gestite (stateless). Per ulteriori informazioni consulta le informazioni sui MIG stateless o stateful.
    3. In Nome, inserisci mig-a.
    4. In Località, seleziona Zona singola.
    5. In Regione, seleziona REGION_A.
    6. In Zona, seleziona ZONE_A1.
    7. In Modello di istanza, seleziona int-tcp-proxy-backend-template.
    8. Specifica il numero di istanze che vuoi creare nel gruppo.

      Per questo esempio, specifica le seguenti opzioni in Scalabilità automatica:

      • In Modalità di scalabilità automatica, seleziona Off:do not autoscale.
      • In Numero massimo di istanze, inserisci 2.
    9. In Mappatura delle porte, fai clic su Aggiungi porta.

      • In Nome porta, inserisci tcp80.
      • In Numero porta, inserisci 80.
    10. Fai clic su Crea.

  3. Ripeti il passaggio 2 per creare un secondo gruppo di istanze gestite con le seguenti impostazioni:

    1. Nome: mig-c
    2. Zona: ZONE_A2 Mantieni invariate tutte le altre impostazioni.

gcloud

Le istruzioni per gcloud in questa guida presuppongono che l'utilizzo di Cloud Shell o un altro ambiente con bash installato.

  1. Crea un modello di istanza VM con il server HTTP gcloud compute instance-templates create .

    gcloud compute instance-templates create int-tcp-proxy-backend-template \
       --region=REGION_A \
       --network=lb-network \
       --subnet=backend-subnet \
       --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
       --image-family=debian-12 \
       --image-project=debian-cloud \
       --metadata=startup-script='#! /bin/bash
         apt-get update
         apt-get install apache2 -y
         a2ensite default-ssl
         a2enmod ssl
         vm_hostname="$(curl -H "Metadata-Flavor:Google" \
         http://metadata.google.internal/computeMetadata/v1/instance/name)"
         echo "Page served from: $vm_hostname" | \
         tee /var/www/html/index.html
         systemctl restart apache2'
    
  2. Crea un gruppo di istanze gestite nella zona ZONE_A1.

    gcloud compute instance-groups managed create mig-a \
       --zone=ZONE_A1 \
       --size=2 \
       --template=int-tcp-proxy-backend-template
    

    Sostituisci ZONE_A1 con il nome della zona nella regione Google Cloud di destinazione.

  3. Crea un gruppo di istanze gestite nella zona ZONE_A2.

    gcloud compute instance-groups managed create mig-c \
       --zone=ZONE_A2 \
       --size=2 \
       --template=int-tcp-proxy-backend-template
    

    Sostituisci ZONE_A2 con il nome di un'altra zona nella regione Google Cloud di destinazione.

Configura il bilanciatore del carico

Console

Avvia la configurazione

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

    Vai a Bilanciamento del carico

  2. Fai clic su Crea bilanciatore del carico.
  3. Per 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 proxy e fai clic su Avanti.
  5. Per Pubblico o interno, seleziona Interno e fai clic Avanti.
  6. Per Deployment tra più regioni o in una singola regione, seleziona Ideale per regionali e fai clic su Avanti.
  7. Fai clic su Configura.

Configurazione di base

  1. In Nome, inserisci my-int-tcp-lb.
  2. In Regione, seleziona REGION_A.
  3. In Rete, seleziona lb-network.

Riserva una subnet solo proxy

.

Per prenotare una subnet solo proxy:

  1. Fai clic su Prenota subnet.
  2. In Nome, inserisci proxy-only-subnet.
  3. In Intervallo di indirizzi IP, inserisci 10.129.0.0/23.
  4. Fai clic su Aggiungi.

Configurazione backend

  1. Fai clic su Configurazione backend.
  2. In Tipo di backend, seleziona Gruppo di istanze.
  3. Per Protocollo, seleziona TCP.
  4. In Porta denominata, inserisci tcp80.
  5. Configura il primo backend:
    1. In Nuovo backend, seleziona il gruppo di istanze mig-a.
    2. In Numeri di porta, inserisci 80.
    3. Conserva i restanti valori predefiniti e fai clic su Fine.
  6. Configura il secondo backend:
    1. Fai clic su Aggiungi backend.
    2. In Nuovo backend, seleziona il gruppo di istanze mig-c.
    3. In Numeri di porta, inserisci 80.
    4. Conserva i restanti valori predefiniti e fai clic su Fine.
  7. Configura il controllo di integrità:
    1. In Controllo di integrità, seleziona Crea un controllo di integrità.
    2. Imposta il Nome del controllo di integrità su tcp-health-check.
    3. Per Protocollo, seleziona TCP.
    4. Imposta Porta su 80.
  8. Conserva i valori predefiniti rimanenti e fai clic su Salva.
  9. Nella console Google Cloud, verifica che sia presente un segno di spunta accanto a Configurazione backend. In caso contrario, assicurati di aver completato tutti i passaggi.

Configurazione frontend

  1. Fai clic su Configurazione frontend.
  2. In Nome, inserisci int-tcp-forwarding-rule.
  3. Per Subnet, seleziona backend-subnet.
  4. Per Indirizzo IP, seleziona l'indirizzo IP riservato in precedenza: LB_IP_ADDRESS
  5. In Numero porta, inserisci 110. Solo la regola di forwarding inoltra i pacchetti con una porta di destinazione corrispondente.
  6. In questo esempio, non attivare il protocollo proxy perché non funziona con il software Apache HTTP Server. Per ulteriori informazioni consulta la sezione Protocollo proxy.
  7. Fai clic su Fine.
  8. Nella console Google Cloud, verifica che sia presente un segno di spunta accanto a Configurazione frontend. In caso contrario, assicurati di aver completato tutti i passaggi precedenti.

Esamina e finalizza

  1. Fai clic su Esamina e finalizza.
  2. Rivedi le impostazioni di configurazione del bilanciatore del carico.
  3. (Facoltativo) Fai clic su Codice equivalente per visualizzare la richiesta API REST. che verrà utilizzato per creare il bilanciatore del carico.
  4. Fai clic su Crea.

gcloud

  1. Crea un controllo di integrità a livello di regione.

    gcloud compute health-checks create tcp tcp-health-check \
       --region=REGION_A \
       --use-serving-port
    
  2. Crea un servizio di backend.

    gcloud compute backend-services create internal-tcp-proxy-bs \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=TCP \
       --region=REGION_A \
       --health-checks=tcp-health-check \
       --health-checks-region=REGION_A
    
  3. Aggiungi gruppi di istanze al servizio di backend.

    gcloud compute backend-services add-backend internal-tcp-proxy-bs \
       --region=REGION_A \
       --instance-group=mig-a \
       --instance-group-zone=ZONE_A1 \
       --balancing-mode=UTILIZATION \
       --max-utilization=0.8
    
    gcloud compute backend-services add-backend internal-tcp-proxy-bs \
       --region=REGION_A \
       --instance-group=mig-c \
       --instance-group-zone=ZONE_A2 \
       --balancing-mode=UTILIZATION \
       --max-utilization=0.8
    
  4. Creare un proxy TCP di destinazione interno.

    gcloud compute target-tcp-proxies create int-tcp-target-proxy \
       --backend-service=internal-tcp-proxy-bs \
       --proxy-header=NONE \
       --region=REGION_A
    

    Se vuoi attivare il proxy intestazione, impostala su PROXY_V1 anziché su NONE. In questo esempio, non abilitare il protocollo proxy perché non funziona con il software Apache HTTP Server. Per ulteriori informazioni consulta la sezione Protocollo proxy.

  5. Crea la regola di forwarding. Per --ports, specifica un singolo numero di porta da 1-65535. Questo esempio utilizza la porta 110. Solo la regola di forwarding inoltra i pacchetti con una porta di destinazione corrispondente.

    gcloud compute forwarding-rules create int-tcp-forwarding-rule \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --network=lb-network \
       --subnet=backend-subnet \
       --region=REGION_A \
       --target-tcp-proxy=int-tcp-target-proxy \
       --target-tcp-proxy-region=REGION_A \
       --address=int-tcp-ip-address \
       --ports=110
    

Testa il bilanciatore del carico

Per testare il bilanciatore del carico, crea una VM client nella stessa regione del con il bilanciatore del carico di rete passthrough esterno regionale. Quindi, invia il traffico dal client al bilanciatore del carico.

Crea una VM client

Crea una VM client (client-vm) nella stessa regione del bilanciatore del carico.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Imposta Nome su client-vm.

  4. Imposta Zona su ZONE_A1.

  5. Fai clic su Opzioni avanzate.

  6. Fai clic su Networking e configura i seguenti campi:

    1. In Tag di rete, inserisci allow-ssh.
    2. In Interfacce di rete, seleziona quanto segue:
        .
      • Rete: lb-network
      • Subnet: backend-subnet
  7. Fai clic su Crea.

gcloud

La VM client deve trovarsi nella stessa rete VPC e nella stessa regione tramite il bilanciatore del carico. Non è necessario che si trovi nella stessa subnet o zona. La utilizza la stessa subnet delle VM di backend.

gcloud compute instances create client-vm \
    --zone=ZONE_A1 \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=backend-subnet

Invia traffico al bilanciatore del carico

Ora che hai configurato il bilanciatore del carico, puoi testare l'invio all'indirizzo IP del bilanciatore del carico.

  1. Utilizza SSH per connetterti all'istanza client.

    gcloud compute ssh client-vm \
       --zone=ZONE_A1
    
  2. Verifica che il bilanciatore del carico fornisca i nomi host di backend come previsto.

    1. Utilizza la compute addresses describe comando per visualizzare l'indirizzo IP del bilanciatore del carico:

      gcloud compute addresses describe int-tcp-ip-address \
       --region=REGION_A
      

      Prendi nota dell'indirizzo IP.

    2. Invia traffico al bilanciatore del carico. Sostituisci IP_ADDRESS con Indirizzo IP del bilanciatore del carico.

      curl IP_ADDRESS:110
      

Opzioni di configurazione aggiuntive

Questa sezione espande l'esempio di configurazione per fornire alternative e e altre opzioni di configurazione. Tutte le attività sono facoltative. Puoi eseguirle in qualsiasi ordine.

Abilita accesso globale

Puoi attivare l'impostazione globale l'accesso per il tuo carico per renderlo accessibile ai client in tutte le regioni. I backend il bilanciatore del carico di esempio deve trovarsi ancora in una regione (REGION_A).

Bilanciatore del carico di rete proxy interno regionale con accesso globale
Bilanciatore del carico di rete proxy interno regionale con accesso globale (fai clic per ingrandire)

Non puoi modificare una regola di forwarding a livello di regione esistente per abilitare l'accesso globale. A questo scopo, devi creare una nuova regola di forwarding. Inoltre, dopo un una regola di forwarding è stata creata con l'accesso globale abilitato, non può essere modificato. Per disabilitare l'accesso globale, devi creare una nuova regione regola di forwarding di accesso ed elimina la regola di forwarding di accesso globale precedente.

Per configurare l'accesso globale, apporta le seguenti modifiche alla configurazione.

Console

Crea una nuova regola di forwarding per il bilanciatore del carico:

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

    Vai a Bilanciamento del carico

  2. Nella colonna Nome, fai clic sul bilanciatore del carico.

  3. Fai clic su Configurazione frontend.

  4. Fai clic su Aggiungi IP e porta frontend.

  5. Inserisci il nome e i dettagli della subnet per la nuova regola di forwarding.

  6. Per Subnet, seleziona backend-subnet.

  7. Per Indirizzo IP, puoi selezionare lo stesso indirizzo IP di un una regola di forwarding esistente, prenotare un nuovo indirizzo IP o utilizzare una regola Indirizzo IP. Condividere lo stesso indirizzo IP tra più istanze Le regole di forwarding sono possibili solo se imposti l'indirizzo IP --purpose su SHARED_LOADBALANCER_VIP durante la creazione dell'indirizzo IP.

  8. In Numero porta, inserisci 110.

  9. In Accesso globale, seleziona Attiva.

  10. Fai clic su Fine.

  11. Fai clic su Aggiorna.

gcloud

  1. Crea una nuova regola di forwarding per il bilanciatore del carico con --allow-global-access flag.

    gcloud compute forwarding-rules create int-tcp-forwarding-rule-global-access \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --network=lb-network \
       --subnet=backend-subnet \
       --region=REGION_A \
       --target-tcp-proxy=int-tcp-target-proxy \
       --target-tcp-proxy-region=REGION_A \
       --address=int-tcp-ip-address \
       --ports=110 \
       --allow-global-access
    
  2. Puoi utilizzare il comando gcloud compute forwarding-rules describe per Determina se per una regola di forwarding è abilitato l'accesso globale. Per esempio:

    gcloud compute forwarding-rules describe int-tcp-forwarding-rule-global-access \
       --region=REGION_A \
       --format="get(name,region,allowGlobalAccess)"
    

    Quando l'accesso globale è attivato, nell'output viene visualizzata la parola True dopo il nome e la regione della regola di forwarding.

Crea una VM client per testare l'accesso globale

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Imposta Nome su test-global-access-vm.

  4. Imposta Zona su ZONE_B1.

  5. Fai clic su Opzioni avanzate.

  6. Fai clic su Networking e configura i seguenti campi:

    1. In Tag di rete, inserisci allow-ssh.
    2. In Interfacce di rete, seleziona quanto segue:
        .
      • Rete: lb-network
      • Subnet: test-global-access-subnet
  7. Fai clic su Crea.

gcloud

Crea una VM client nella zona ZONE_B1.

gcloud compute instances create test-global-access-vm \
    --zone=ZONE_B1 \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=test-global-access-subnet

Sostituisci ZONE_B1 con il nome della zona nella regione REGION_B.

Connettiti alla VM client e verifica la connettività

  1. Utilizza ssh per connetterti all'istanza client:

    gcloud compute ssh test-global-access-vm \
        --zone=ZONE_B1
    
  2. Utilizza la gcloud compute addresses describe comando per ottenere l'indirizzo IP del bilanciatore del carico:

    gcloud compute addresses describe int-tcp-ip-address \
        --region=REGION_A
    

    Prendi nota dell'indirizzo IP.

  3. Invia il traffico al bilanciatore del carico; sostituisci IP_ADDRESS con Indirizzo IP del bilanciatore del carico:

    curl IP_ADDRESS:110
    

Protocollo PROXY per conservare le informazioni di connessione del client

Il bilanciatore del carico di rete proxy termina le connessioni TCP da il client e crea nuove connessioni alle istanze. Per impostazione predefinita, le informazioni sull'IP e sulla porta del client originali non vengono conservate.

Per conservare e inviare le informazioni di connessione originali alle tue istanze, Attiva il protocollo PROXY versione 1. Questo protocollo invia un'intestazione aggiuntiva contenente l'origine Indirizzo IP, indirizzo IP di destinazione e numeri di porta per l'istanza come parte della richiesta.

Assicurati che le istanze di backend del bilanciatore del carico di rete del proxy siano in esecuzione che supportano le intestazioni di protocollo PROXY. Se i server non sono configurate per supportare le intestazioni del protocollo PROXY, le istanze di backend diverse.

Se imposti il protocollo PROXY per il traffico degli utenti, puoi impostarlo anche per il tuo controlli di integrità. Se stai controllando lo stato di integrità e la pubblicazione sulla stessa porta, imposta il valore --proxy-header del controllo di integrità in modo che corrisponda dell'impostazione del bilanciatore del carico.

L'intestazione del protocollo PROXY è in genere una singola riga di testo leggibile testo nel seguente formato:

PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n

L'esempio seguente mostra un protocollo PROXY:

PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n

Nell'esempio precedente, l'IP client è 192.0.2.1, l'IP di bilanciamento del carico è 198.51.100.1, la porta del client è 15221 e la porta di destinazione è 110.

Se l'IP del client non è noto, il bilanciatore del carico genera un'intestazione del protocollo PROXY nel seguente formato:

PROXY UNKNOWN\r\n

Aggiorna l'intestazione del protocollo PROXY per il proxy di destinazione

Non puoi aggiornare l'intestazione del protocollo PROXY nel proxy di destinazione esistente. Tu occorre creare un nuovo proxy di destinazione con l'impostazione richiesta per PROXY dell'intestazione del protocollo. Segui questi passaggi per creare un nuovo frontend con impostazioni:

Console

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

    Vai a Bilanciamento del carico

  2. Fai clic sul nome del bilanciatore del carico che vuoi modificare.
  3. Fai clic su Modifica per il tuo carico. con il bilanciatore del carico di rete passthrough esterno regionale.
  4. Fai clic su Configurazione frontend.
  5. Elimina l'IP e la porta del frontend precedenti.
  6. Fai clic su Aggiungi IP e porta frontend.
    1. In Nome, inserisci int-tcp-forwarding-rule.
    2. Per Subnet, seleziona backend-subnet.
    3. Per Indirizzo IP, seleziona l'indirizzo IP riservato in precedenza: LB_IP_ADDRESS
    4. In Numero porta, inserisci 110. Solo la regola di forwarding inoltra i pacchetti con una porta di destinazione corrispondente.
    5. Modifica il valore del campo Protocollo proxy su On.
    6. Fai clic su Fine.
  7. Fai clic su Update (Aggiorna) per salvare le modifiche.

gcloud

  1. Nel comando seguente, modifica il campo --proxy-header e impostalo su NONE o PROXY_V1, a seconda delle tue esigenze.

       gcloud compute target-tcp-proxies create TARGET_PROXY_NAME \
           --backend-service=BACKEND_SERVICE \
           --proxy-header=[NONE | PROXY_V1] \
           --region=REGION
       
  2. Elimina la regola di forwarding esistente.

       gcloud compute forwarding-rules delete int-tcp-forwarding-rule \
           --region=REGION
       
  3. Creare una nuova regola di forwarding e associarla al proxy di destinazione.

       gcloud compute forwarding-rules create int-tcp-forwarding-rule \
           --load-balancing-scheme=INTERNAL_MANAGED \
           --network=lb-network \
           --subnet=backend-subnet \
           --region=REGION \
           --target-tcp-proxy=TARGET_PROXY_NAME \
           --target-tcp-proxy-region=REGION \
           --address=LB_IP_ADDRESS \
           --ports=110
       

Abilita affinità sessione

La configurazione di esempio crea un servizio di backend senza affinità sessione.

Queste procedure mostrano come aggiornare un servizio di backend per l'esempio Network Load Balancer proxy interno regionale in modo che il servizio di backend utilizzi l'affinità IP client o dell'affinità cookie generato.

Quando è abilitata l'affinità IP client, il bilanciatore del carico indirizza una particolare delle richieste del client alla stessa VM di backend in base a un hash creato l'indirizzo IP del client e l'indirizzo IP del bilanciatore del carico (l'indirizzo IP interno di una regola di forwarding interno).

Console

Per abilitare l'affinità sessione IP client:

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
    Vai a Bilanciamento del carico
  2. Fai clic su Backend.
  3. Fai clic su internal-tcp-proxy-bs (il nome del servizio di backend creato per questo esempio) e fai clic su Modifica.
  4. Nella pagina Dettagli servizio di backend, fai clic su Avanzate. configurazione.
  5. In Affinità sessione, seleziona IP client dal menu.
  6. Fai clic su Aggiorna.

gcloud

Utilizza questo comando di Google Cloud CLI per aggiornare il backend internal-tcp-proxy-bs specificando l'affinità sessione IP client:

gcloud compute backend-services update internal-tcp-proxy-bs \
    --region=REGION_A \
    --session-affinity=CLIENT_IP

Abilita svuotamento della connessione

Puoi abilitare lo svuotamento della connessione sui servizi di backend per garantire il minimo agli utenti quando un'istanza che gestisce il traffico viene terminato, rimosso manualmente o rimosso da un gestore della scalabilità automatica. Per scoprire di più su per svuotamento della connessione, leggi Attivazione dello svuotamento della connessione documentazione.

Passaggi successivi