Configura un bilanciatore del carico di rete (proxy TCP) con proxy esterno globale con backend di gruppi di istanze VM

I bilanciatori del carico di rete con proxy esterno globale di Google Cloud consentono di utilizzare un unico indirizzo IP per tutti gli utenti in tutto il mondo. I bilanciatori del carico di rete proxy esterni globali instradano automaticamente il traffico alle istanze di backend più vicine all'utente.

Questa pagina contiene le istruzioni per configurare un bilanciatore del carico di rete proxy esterno globale con un proxy TCP di destinazione e backend di gruppi di istanze VM. Prima di iniziare, leggi la panoramica del bilanciatore del carico di rete proxy esterno per informazioni dettagliate sul funzionamento di questi bilanciatori del carico.

Panoramica della configurazione

Questo esempio mostra come configurare un bilanciatore del carico di rete proxy esterno per un servizio esistente in due regioni: REGION_A e REGION_B. Ai fini dell'esempio, il servizio è un insieme di server Apache configurati per rispondere sulla porta 110. Molti browser non consentono la porta 110, pertanto la sezione di test utilizza curl.

In questo esempio, configuri quanto segue:

  1. Quattro istanze distribuite tra due regioni
  2. Gruppi di istanze, che contengono le istanze
  3. Un controllo di integrità per verificare l'integrità dell'istanza
  4. Un servizio di backend, che monitora le istanze e impedisce che superino i limiti di utilizzo
  5. Il proxy TCP di destinazione
  6. Un indirizzo IPv4 statico esterno e una regola di forwarding che invia il traffico degli utenti al proxy
  7. Un indirizzo IPv6 statico esterno e una regola di forwarding che invia il traffico degli utenti al proxy
  8. Una regola firewall che consente al traffico dal bilanciatore del carico e dal controllo di integrità di raggiungere le istanze

Dopo aver configurato il bilanciatore del carico, testerai la configurazione.

Autorizzazioni

Per seguire questa guida, devi essere in grado di creare istanze e modificare una rete in un progetto. Devi essere un proprietario o un editor del progetto oppure devi disporre di tutti i seguenti ruoli IAM di Compute Engine:

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

Per ulteriori informazioni, consulta le seguenti guide:

Configurare la rete e le subnet

Per creare la rete e la subnet di esempio, segui questi passaggi.

Console

Per supportare il traffico IPv4 e IPv6, segui questi passaggi:

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

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. Inserisci un nome per la rete.

  4. (Facoltativo) Se vuoi configurare intervalli di indirizzi IPv6 interni sulle subnet di questa rete, completa questi passaggi:

    1. In Intervallo IPv6 interno ULA rete VPC, seleziona Abilitato.
    2. Per Assegna intervallo IPv6 interno, seleziona Automaticamente o Manualmente.

      Se selezioni Manualmente, inserisci un intervallo /48 compreso nell'intervallo fd20::/20. Se l'intervallo è in uso, ti viene chiesto di fornire un intervallo diverso.

  5. In Modalità di creazione subnet, scegli Personalizzata.

  6. Nella sezione Nuova subnet, configura i seguenti campi:

    1. Nel campo Nome, specifica un nome per la subnet.
    2. Nel campo Regione, seleziona una regione.
    3. Per Tipo di stack IP, seleziona IPv4 e IPv6 (stack doppio).
    4. Nel campo Intervallo di indirizzi IP, inserisci un intervallo di indirizzi IP. Questo è l'intervallo IPv4 principale per la subnet.

      Sebbene sia possibile configurare un intervallo di indirizzi IPv4 per la subnet, non puoi scegliere l'intervallo di indirizzi IPv6 per la subnet. Google fornisce un blocco CIDR IPv6 di dimensione fissa (/64).

    5. Per Tipo di accesso IPv6, seleziona Esterno.

  7. Fai clic su Fine.

  8. Per aggiungere una subnet in un'altra regione, fai clic su Aggiungi subnet e ripeti i passaggi precedenti.

  9. Fai clic su Crea.

Per supportare solo il traffico IPv4, segui questi passaggi:

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

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. Nel campo Nome, inserisci un nome per la rete.

  4. In Modalità di creazione subnet, scegli Personalizzata.

  5. Nella sezione Nuova subnet, configura quanto segue:

    1. Nel campo Nome, specifica un nome per la subnet.
    2. Nel campo Regione, seleziona una regione.
    3. Per Tipo di stack IP, seleziona IPv4 (stack singolo).
    4. Nel campo Intervallo di indirizzi IP, inserisci l'intervallo IPv4 principale per la subnet.
  6. Fai clic su Fine.

  7. Per aggiungere una subnet in un'altra regione, fai clic su Aggiungi subnet e ripeti i passaggi precedenti.

  8. Fai clic su Crea.

gcloud

  1. Crea la rete VPC in modalità personalizzata:

    gcloud compute networks update NETWORK \
        [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \
        --subnet-mode=custom
    
  2. All'interno della rete, crea una subnet per i backend.

    Per il traffico IPv4 e IPv6, utilizza il comando seguente per aggiornare una subnet:

    gcloud compute networks subnets update SUBNET \
       --stack-type=IPV4_IPv6 \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --region=REGION_A
    
    gcloud compute networks subnets update SUBNET_B \
       --stack-type=IPV4_IPv6 \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --region=REGION_B
    

    Per solo il traffico IPv4, utilizza il comando seguente:

    gcloud compute networks subnets update SUBNET \
       --network=NETWORK \
       --stack-type=IPV4_ONLY \
       --range=10.1.2.0/24 \
       --region=REGION_A
    
    gcloud compute networks subnets update SUBNET_B \
       --stack-type=IPV4_ONLY \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --region=REGION_B
    

Sostituisci quanto segue:

  • NETWORK: un nome per la rete VPC

  • ULA_IPV6_RANGE: un prefisso /48 compreso nell'intervallo fd20::/20 utilizzato da Google per gli intervalli di subnet IPv6 interni. Se non utilizzi il flag --internal-ipv6-range, Google seleziona un prefisso /48 per la rete

  • SUBNET: un nome per la subnet

  • REGION_A o REGION_B: il nome della regione

Configura backend di gruppi di istanze

Questa sezione mostra come creare gruppi di istanze semplici, aggiungere istanze e poi aggiungerle a un servizio di backend con un controllo di integrità. Un sistema di produzione utilizzerebbe in genere gruppi di istanze gestite in base a modelli di istanza, ma questa configurazione è più veloce per i test iniziali.

Configura istanze

A scopo di test, installa Apache su quattro istanze, due in ognuno dei due gruppi di istanze. In genere, i bilanciatori del carico di rete proxy esterni non sono utilizzati per il traffico HTTP, ma Apache è un software di uso comune ed è facile da configurare per i test.

In questo esempio, le istanze vengono create con il tag tcp-lb. Questo tag verrà utilizzato in un secondo momento dalla regola firewall.

Console

Crea istanze

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

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Imposta il campo Nome su ig-a.

  4. Imposta il campo Regione su REGION_A.

  5. Imposta il campo Zona su ZONE_A.

  6. Fai clic su Opzioni avanzate.

  7. Fai clic su Networking e configura il seguente campo:

    • In Tag di rete, inserisci tcp-lb,allow-health-check-ipv6.

    Per supportare il traffico IPv4 e IPv6, segui questi passaggi:

    1. Nella sezione Interfacce di rete, fai clic su Modifica e apporta le seguenti modifiche:
      • Rete: NETWORK
      • Subnet: SUBNET
      • Tipo di stack IP: IPv4 e IPv6 (stack doppio)
    2. Fai clic su Fine
  8. Fai clic su Gestione. Inserisci lo script seguente nel campo Script di avvio.

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-a</h1></body></html>' | sudo tee /var/www/html/index.html
  9. Fai clic su Crea.

  10. Crea ig-b con le stesse impostazioni, ad eccezione del seguente script nel campo Script di avvio:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-b</h1></body></html>' | sudo tee /var/www/html/index.html

  11. Crea ig-c con le stesse impostazioni, ad eccezione del fatto che Regione impostata su REGION_B e Zona impostata su ZONE_B. Inserisci lo script seguente nel campo Script di avvio:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-c</h1></body></html>' | sudo tee /var/www/html/index.html

  12. Crea ig-d con le stesse impostazioni, ad eccezione del fatto che Regione impostata su REGION_B e Zona impostata su ZONE_B. Inserisci lo script seguente nel campo Script di avvio:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-d</h1></body></html>' | sudo tee /var/www/html/index.html

gcloud

Per supportare sia il traffico IPv4 che quello IPv6, esegui questi comandi:

  1. Crea ig-a nella zona ZONE_A.

    gcloud compute instances create ig-a \
       --image-family debian-10 \
       --image-project debian-cloud \
       --tags tcp-lb,allow-health-check-ipv6 \
       --stack-type=IPv4_IPv6 \
       --subnet SUBNET \
       --zone ZONE_A \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>ig-a</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  2. Crea ig-b nella zona ZONE_A.

    gcloud compute instances create ig-b \
       --image-family debian-10 \
       --image-project debian-cloud \
       --tags tcp-lb,allow-health-check-ipv6 \
       --stack-type=IPv4_IPv6 \
       --subnet SUBNET \
       --zone ZONE_A \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>ig-b</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  3. Crea ig-c nella zona ZONE_B.

    gcloud compute instances create ig-c \
       --image-family debian-10 \
       --image-project debian-cloud \
       --tags tcp-lb,allow-health-check-ipv6 \
       --stack-type=IPv4_IPv6 \
       --subnet SUBNET \
       --zone ZONE_B \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>ig-c</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  4. Crea ig-d nella zona ZONE_B.

    gcloud compute instances create ig-d \
       --image-family debian-10 \
       --image-project debian-cloud \
       --tags tcp-lb,allow-health-check-ipv6 \
       --stack-type=IPv4_IPv6 \
       --zone ZONE_B \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>ig-d</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    

Crea gruppi di istanze

In questa sezione creerai un gruppo di istanze in ogni zona e aggiungerai le istanze.

Console

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

    Vai a Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze.

  3. Fai clic su Nuovo gruppo di istanze non gestite.

  4. Imposta il campo Nome su us-ig1.

  5. Imposta Zona su ZONE_A.

  6. In Mappatura delle porte, fai clic su Aggiungi porta. Un bilanciatore del carico invia il traffico a un gruppo di istanze tramite una porta con nome. Crea una porta denominata per mappare il traffico in entrata a un numero di porta specifico.

    1. Imposta Nome porta su tcp110.
    2. Imposta Numeri di porta su 110.
  7. In Istanze VM, seleziona ig-a e ig-b.

  8. Non modificare le altre impostazioni.

  9. Fai clic su Crea.

  10. Ripeti i passaggi, ma imposta i seguenti valori:

    • Nome: us-ig2
    • Regione: REGION_B
    • Zona: ZONE_B
    • Nome porta: tcp110
    • Numeri di porta: 110
    • Istanze: ig-c e ig-d.

gcloud

  1. Crea il gruppo di istanze us-ig1.

    gcloud compute instance-groups unmanaged create us-ig1 \
       --zone ZONE_A
    
  2. Crea una porta denominata per il gruppo di istanze.

    gcloud compute instance-groups set-named-ports us-ig1 \
       --named-ports tcp110:110 \
       --zone ZONE_A
    
  3. Aggiungi ig-a e ig-b a us-ig1.

    gcloud compute instance-groups unmanaged add-instances us-ig1 \
       --instances ig-a,ig-b \
       --zone ZONE_A
    
  4. Crea il gruppo di istanze us-ig2.

    gcloud compute instance-groups unmanaged create us-ig2 \
       --zone ZONE_B
    
  5. Crea una porta denominata per il gruppo di istanze.

    gcloud compute instance-groups set-named-ports us-ig2 \
       --named-ports tcp110:110 \
       --zone ZONE_B
    
  6. Aggiungi ig-c e ig-d a us-ig2.

    gcloud compute instance-groups unmanaged add-instances us-ig2 \
       --instances ig-c,ig-d \
       --zone ZONE_B
    

Ora hai un gruppo di istanze per regione. Ogni gruppo di istanze ha due istanze VM.

Crea una regola firewall per il bilanciatore del carico di rete proxy esterno

Configura il firewall per consentire il traffico dal bilanciatore del carico e il controllo di integrità alle istanze. In questo caso, apriremo la porta TCP 110. Il controllo di integrità utilizzerà la stessa porta. Poiché il traffico tra il bilanciatore del carico e le istanze utilizza IPv4, è necessario aprire solo gli intervalli IPv4.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.

    Vai a Criteri firewall

  2. Fai clic su Crea regola firewall.

  3. Nel campo Nome, inserisci allow-tcp-lb-and-health.

  4. Seleziona una rete.

  5. In Destinazioni, seleziona Tag di destinazione specificati.

  6. Imposta Tag di destinazione su tcp-lb.

  7. Imposta Filtro di origine su Intervalli IPv4.

  8. Imposta Intervalli IPv4 di origine su 130.211.0.0/22,35.191.0.0/16.

  9. In Protocolli e porte, imposta Protocolli e porte specificati su tcp:110.

  10. Fai clic su Crea.

gcloud

gcloud compute firewall-rules create allow-tcp-lb-and-health \
   --source-ranges 130.211.0.0/22,35.191.0.0/16 \
   --target-tags tcp-lb \
   --allow tcp:110

Crea una regola firewall per il controllo di integrità IPv6

Assicurati di disporre di una regola in entrata applicabile alle istanze con bilanciamento del carico e che consenta il traffico dai sistemi di controllo di integrità di Google Cloud (2600:2d00:1:b029::/64). In questo esempio viene utilizzato il tag di destinazione allow-health-check-ipv6 per identificare le istanze VM a cui si applica.

Senza questa regola firewall, la regola predefinita nega il traffico blocca il traffico IPv6 in entrata verso le istanze di backend.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.

    Vai a Criteri firewall

  2. Per consentire il traffico delle subnet IPv6, fai di nuovo clic su Crea regola firewall e inserisci le seguenti informazioni:

    • Nome: fw-allow-lb-access-ipv6
    • Seleziona la rete.
    • Priorità: 1000
    • Direzione del traffico: in entrata
    • Destinazioni: tag di destinazione specificati
    • Tag di destinazione: allow-health-check-ipv6
    • Filtro di origine: intervalli IPv6
    • Intervalli IPv6 di origine: 2600:2d00:1:b029::/64,2600:2d00:1:1::/64
    • Protocolli e porte: Consenti tutto
  3. Fai clic su Crea.

gcloud

Crea la regola firewall fw-allow-lb-access-ipv6 per consentire la comunicazione con la subnet:

gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
  --network=NETWORK \
  --action=allow \
  --direction=ingress \
  --target-tags=allow-health-check-ipv6 \
  --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
  --rules=all

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. 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 del proxy e fai clic su Avanti.
  5. In Pubblico o interno, seleziona Per il pubblico (esterno) e fai clic su Avanti.
  6. In Deployment a regione singola o globale, seleziona Ideale per carichi di lavoro globali e fai clic su Avanti.
  7. In Generazione del bilanciatore del carico, seleziona Bilanciatore del carico di rete proxy esterno globale e fai clic su Avanti.
  8. Fai clic su Configura.

Configurazione di base

Imposta il campo Nome su my-tcp-lb.

Configurazione backend

  1. Fai clic su Configurazione backend.
  2. In Tipo di backend, seleziona Gruppi di istanze.
  3. In Protocollo, seleziona TCP.
  4. Nell'elenco Criterio di selezione degli indirizzi IP, seleziona Preferenza IPv6.
  5. Configura il primo backend:

      Per supportare il traffico IPv4 e IPv6:

      • Per Tipo di stack IP, seleziona IPv4 and IPv6 (dual-stack).
    1. In Nuovo backend, seleziona il gruppo di istanze us-ig1.
    2. Mantieni i valori predefiniti rimanenti.
  6. Configura il secondo backend:

      Per supportare il traffico IPv4 e IPv6:

      • Per Tipo di stack IP, seleziona IPv4 and IPv6 (dual-stack).
    1. Fai clic su Aggiungi backend.
    2. Seleziona il gruppo di istanze us-ig2.
    3. In Numeri di porta, elimina 80 e aggiungi 110.
  7. Configura il controllo di integrità:
    1. In Controllo di integrità, seleziona Crea controllo di integrità.
    2. Imposta il Nome del controllo di integrità su my-tcp-health-check.
    3. In Protocollo, seleziona TCP.
    4. Imposta Porta su 110.
    5. Mantieni i valori predefiniti rimanenti.
    6. Fai clic su Salva e continua.
  8. 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. Aggiungi la prima regola di forwarding:
    1. Inserisci un Nome pari a my-tcp-lb-forwarding-rule.
    2. In Protocollo, seleziona TCP.
    3. In Indirizzo IP, seleziona Crea indirizzo IP:
      1. Inserisci un Nome pari a tcp-lb-static-ip.
      2. Fai clic su Prenota.
    4. Imposta Porta su 110.
    5. In questo esempio, non abilitare il protocollo proxy perché non funziona con il software Apache HTTP Server. Per ulteriori informazioni, consulta Protocollo proxy.
    6. Fai clic su Fine.
  3. 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à utilizzata per creare il bilanciatore del carico.
  4. Fai clic su Crea.

gcloud

  1. Creare un controllo di integrità.
        gcloud compute health-checks create tcp my-tcp-health-check --port 110
        
  2. Crea un servizio di backend.
        gcloud beta compute backend-services create my-tcp-lb \
            --load-balancing-scheme EXTERNAL_MANAGED \
            --global-health-checks \
            --global \
            --protocol TCP \
            --ip-address-selection-policy=PREFER_IPV6 \
            --health-checks my-tcp-health-check \
            --timeout 5m \
            --port-name tcp110
        

    In alternativa, puoi configurare la comunicazione criptata dal bilanciatore del carico alle istanze con --protocol SSL.

  3. Aggiungi gruppi di istanze al tuo servizio di backend.

        gcloud beta compute backend-services add-backend my-tcp-lb \
            --global \
            --instance-group us-ig1 \
            --instance-group-zone ZONE_A \
            --balancing-mode UTILIZATION \
            --max-utilization 0.8
        
        gcloud beta compute backend-services add-backend my-tcp-lb \
            --global \
            --instance-group us-ig2 \
            --instance-group-zone ZONE_B \
            --balancing-mode UTILIZATION \
            --max-utilization 0.8
        
  4. Configura un proxy TCP di destinazione. Se vuoi attivare l'intestazione proxy, impostala su PROXY_V1 anziché su NONE.
        gcloud beta compute target-tcp-proxies create my-tcp-lb-target-proxy \
            --backend-service my-tcp-lb \
            --proxy-header NONE
        
  5. Prenota indirizzi IPv4 e IPv6 statici globali.

    I tuoi clienti possono utilizzare questi indirizzi IP per raggiungere il servizio con bilanciamento del carico.

        gcloud compute addresses create tcp-lb-static-ipv4 \
            --ip-version=IPV4 \
            --global
        
        gcloud compute addresses create tcp-lb-static-ipv6 \
            --ip-version=IPV6 \
            --global
        
  6. Configurare regole di forwarding globali per i due indirizzi.
        gcloud beta compute forwarding-rules create my-tcp-lb-ipv4-forwarding-rule \
            --load-balancing-scheme EXTERNAL_MANAGED \
            --global \
            --target-tcp-proxy my-tcp-lb-target-proxy \
            --address tcp-lb-static-ipv4 \
            --ports 110
        

Testa il bilanciatore del carico

  1. Recupera l'indirizzo IP del bilanciatore del carico.

    Per ottenere l'indirizzo IPv4, esegui questo comando:

    gcloud compute addresses describe tcp-lb-static-ipv4
    

    Per ottenere l'indirizzo IPv6, esegui questo comando:

    gcloud compute addresses describe tcp-lb-static-ipv6
    
  2. Invia il traffico al bilanciatore del carico eseguendo questo comando. Sostituisci LB_IP_ADDRESS con l'indirizzo IPv4 o IPv6 del bilanciatore del carico.

    curl -m1 LB_IP_ADDRESS:110
    

    Ad esempio, se l'indirizzo IPv6 assegnato è [2001:db8:1:1:1:1:1:1/96]:110, il comando dovrebbe avere il seguente aspetto:

    curl -m1 http://[2001:db8:1:1:1:1:1:1]:110
    

Se non riesci a raggiungere il bilanciatore del carico, prova a seguire i passaggi descritti in Risolvere i problemi di configurazione.

Opzioni di configurazione aggiuntive

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

Protocollo PROXY per la conservazione delle informazioni di connessione del client

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

Per conservare e inviare le informazioni di connessione originali alle istanze, abilita la versione 1 del protocollo PROXY. Questo protocollo invia all'istanza un'intestazione aggiuntiva contenente l'indirizzo IP di origine, l'indirizzo IP di destinazione e i numeri di porta all'istanza come parte della richiesta.

Assicurati che nelle istanze di backend del bilanciatore del carico di rete proxy siano in esecuzione server che supportano le intestazioni di protocollo PROXY. Se i server non sono configurati per supportare le intestazioni del protocollo PROXY, le istanze di backend restituiscono risposte vuote.

Se imposti il protocollo PROXY per il traffico degli utenti, puoi impostarlo anche per i controlli di integrità. Se controlli l'integrità e pubblichi contenuti sulla stessa porta, imposta il valore --proxy-header del controllo di integrità in modo che corrisponda all'impostazione del bilanciatore del carico.

L'intestazione del protocollo PROXY è in genere una singola riga di testo leggibile dall'utente 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 client è 15221 e la porta di destinazione è 110.

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

PROXY UNKNOWN\r\n

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

L'esempio di configurazione del bilanciatore del carico in questa pagina mostra come abilitare l'intestazione del protocollo PROXY durante la creazione del bilanciatore del carico di rete proxy. Utilizza questi passaggi per modificare l'intestazione del protocollo PROXY per un proxy di destinazione esistente.

Console

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

    Vai a Bilanciamento del carico

  2. Fai clic su Modifica per il bilanciatore del carico.
  3. Fai clic su Configurazione frontend.
  4. Modifica il valore del campo Protocollo proxy impostandolo su On.
  5. Fai clic su Update (Aggiorna) per salvare le modifiche.

gcloud

Nel comando seguente, modifica il campo --proxy-header e impostalo su NONE o PROXY_V1, in base alle tue esigenze.

gcloud compute target-tcp-proxies update TARGET_PROXY_NAME \
    --proxy-header=[NONE | PROXY_V1]

Configura affinità sessione

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

Queste procedure mostrano come aggiornare un servizio di backend per il bilanciatore del carico di esempio in modo che il servizio di backend utilizzi l'affinità IP client o l'affinità cookie generato.

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

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 my-tcp-lb (il nome del servizio di backend creato per questo esempio) e fai clic su Modifica.

  4. Nella pagina Dettagli del servizio di backend, fai clic su Configurazione avanzata.

  5. In Affinità sessione, seleziona IP client dal menu.

  6. Fai clic su Update (Aggiorna).

gcloud

Usa il seguente comando gcloud per aggiornare il servizio di backend my-tcp-lb, specificando l'affinità sessione IP del client:

gcloud compute backend-services update my-tcp-lb \
    --global \
    --session-affinity=CLIENT_IP

API

Per impostare l'affinità sessione IP client, effettua una richiesta PATCH al metodo backendServices/patch.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/us-west1/backendServices/my-tcp-lb
{
  "sessionAffinity": "CLIENT_IP"
}

Abilita lo svuotamento della connessione

Puoi abilitare lo svuotamento della connessione sui servizi di backend per garantire interruzioni minime per i tuoi utenti quando un'istanza che gestisce il traffico viene terminata, rimossa manualmente o rimossa da un gestore della scalabilità automatica. Per saperne di più sullo svuotamento della connessione, consulta la documentazione Abilitazione dello svuotamento delle connessioni.

Passaggi successivi