Il bilanciatore del carico di rete proxy interno regionale è un bilanciatore del carico di livello 4 regionale e basato su proxy che ti consente di eseguire e scalare il traffico di servizio TCP dietro un indirizzo IP interno accessibile solo ai client nella stessa rete VPC o per i client connessi alla tua rete VPC.
Questa guida contiene le istruzioni per configurare un bilanciatore del carico di rete proxy interno regionale con backend di gruppo di istanze gestite.
Prima di iniziare, leggi la panoramica sul bilanciatore del carico di rete proxy interno regionale.
Panoramica
In questo esempio, utilizzeremo il bilanciatore del carico per distribuire il traffico TCP tra le VM di backend in due gruppi di istanze gestite a livello di zona nella regione REGION_A
. 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, configurerai il deployment seguente:
Il bilanciatore del carico di rete proxy interno regionale è un bilanciatore del carico a livello di regione. Tutti i componenti del bilanciatore del carico (gruppi di istanza di backend, servizio di backend, proxy di destinazione e regola di forwarding) devono trovarsi nella stessa regione.
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
È necessaria una rete VPC con due subnet: una per i backend del bilanciatore del carico e l'altra per i proxy del bilanciatore del carico. I bilanciatori del carico di rete proxy interni regionali sono a livello di regione. Il traffico all'interno della rete VPC viene instradato al bilanciatore del carico se la sua origine si trova in una subnet nella stessa regione del bilanciatore del carico.
Questo esempio utilizza la seguente rete VPC, la regione e le subnet:
Rete. La rete è una rete VPC in modalità personalizzata denominata
lb-network
.Subnet per i backend. Una subnet denominata
backend-subnet
nella regioneREGION_A
utilizza10.1.2.0/24
come intervallo IP principale.Subnet per i proxy. Una subnet denominata
proxy-only-subnet
nella regioneREGION_A
utilizza10.129.0.0/23
come intervallo IP principale.
Per dimostrare l'accesso globale, in questo esempio viene creata anche una seconda VM client di test in una regione diversa (REGION_B) e una subnet con l'intervallo di indirizzi IP principali 10.3.4.0/24
.
Crea la rete e le subnet
Console
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
lb-network
.Nella sezione Subnet, imposta Modalità di creazione subnet su Personalizzata.
Crea una subnet per i backend del bilanciatore del carico. Nella sezione Nuova subnet, inserisci le informazioni seguenti:
- Nome:
backend-subnet
- Regione:
REGION_A
- Intervallo di indirizzi IP:
10.1.2.0/24
- Nome:
Fai clic su Fine.
Fai clic su Aggiungi subnet.
Crea una subnet per dimostrare l'accesso globale. Nella sezione Nuova subnet, inserisci le seguenti informazioni:
- Nome:
test-global-access-subnet
- Regione:
REGION_B
- Intervallo di indirizzi IP:
10.3.4.0/24
- Nome:
Fai clic su Fine.
Fai clic su Crea.
gcloud
Crea la rete VPC personalizzata con il comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Crea una subnet nella rete
lb-network
nella regioneREGION_A
con il comandogcloud 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.
Crea una subnet nella rete
lb-network
nella regioneREGION_B
con il comandogcloud 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 un insieme di indirizzi IP che Google utilizza per eseguire i proxy Envoy per tuo conto. I proxy terminano le connessioni dal client e creano nuove connessioni ai backend.
Questa subnet solo proxy viene utilizzata da tutti i bilanciatori del carico basati su Envoy nella regione REGION_A
della rete VPC lb-network
.
Console
Se utilizzi la console Google Cloud, puoi attendere e creare la subnet solo proxy in un secondo momento nella pagina Bilanciamento del carico.
Se vuoi creare subito una subnet solo proxy, segui questi passaggi:
- Nella console Google Cloud, vai alla pagina Reti VPC.
Vai a Reti VPC - Fai clic sul nome della rete VPC condiviso:
lb-network
. - Fai clic su Aggiungi subnet.
- In Nome, inserisci
proxy-only-subnet
. - In Regione, seleziona
REGION_A
. - Imposta Scopo su Proxy gestito a livello di regione.
- In Intervallo di indirizzi IP, inserisci
10.129.0.0/23
. - 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 con bilanciamento del carico, che consente la connettività SSH in entrata sulla porta TCP22
da qualsiasi indirizzo. Puoi scegliere un intervallo IP di origine più restrittivo per questa regola. Ad esempio, puoi specificare solo gli intervalli IP del sistema da cui avvii le sessioni SSH. In questo esempio viene utilizzato il tag di destinazioneallow-ssh
.fw-allow-health-check
. Una regola in entrata, applicabile alle istanze con bilanciamento del carico, che consente tutto il traffico TCP dai sistemi di controllo di integrità di Google Cloud (in130.211.0.0/22
e35.191.0.0/16
). Questo esempio utilizza il tag di destinazioneallow-health-check
.fw-allow-proxy-only-subnet
. Una regola in entrata che consente alle connessioni dalla subnet solo proxy di raggiungere i backend.
Senza queste regole firewall, la regola predefinita nega il traffico in entrata blocca il traffico in entrata verso le istanze di backend.
I tag di destinazione definiscono le istanze di backend. Senza i tag di destinazione, le regole firewall si applicano a tutte le istanze di backend nella rete VPC. Quando crei le VM di backend, assicurati di includere i tag di destinazione specificati, come mostrato in Creazione di un gruppo di istanze gestite.
Console
- Nella console Google Cloud, vai alla pagina Criteri firewall.
Vai a Criteri firewall - Fai clic su Crea regola firewall per creare la regola che consenta le connessioni SSH in entrata:
- Nome:
fw-allow-ssh
- Rete:
lb-network
- Direzione del traffico: in entrata
- Azione in caso di corrispondenza: Consenti
- Destinazioni: 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.
- Nome:
- Fai clic su Crea.
- Fai clic su Crea regola firewall una seconda volta per creare la regola e consentire i 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
- Destinazioni: tag di destinazione specificati
- Tag di destinazione:
allow-health-check
- Filtro di origine: intervalli IPv4
- Intervalli IPv4 di origine:
130.211.0.0/22
e35.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 corrispondenti a quelli utilizzati dal controllo di integrità. Se utilizzitcp:80
per il protocollo e la porta, Google Cloud può utilizzare HTTP sulla porta80
per contattare le tue VM, ma non può utilizzare HTTPS sulla porta443
per contattarle.
- Nome:
- Fai clic su Crea.
- Fai clic su Crea regola firewall una terza volta per creare la regola in modo da consentire ai server proxy del bilanciatore del carico di connettere i backend:
- Nome:
fw-allow-proxy-only-subnet
- Rete:
lb-network
- Direzione del traffico: in entrata
- Azione in caso di corrispondenza: Consenti
- Destinazioni: 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 i numeri di porta.
- Nome:
- Fai clic su Crea.
gcloud
Crea la regola firewall
fw-allow-ssh
per consentire la connettività SSH alle VM con il tag di reteallow-ssh
. Se omettisource-ranges
, Google Cloud interpreta la regola in modo che indichi qualsiasi origine.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Crea la regola
fw-allow-health-check
per consentire i controlli di integrità di Google Cloud. Questo esempio consente tutto il traffico TCP dai prober del controllo di integrità. Tuttavia, puoi configurare un insieme più ristretto di porte per soddisfare le tue esigenze.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
Crea la regola
fw-allow-proxy-only-subnet
per consentire ai proxy Envoy dell'area geografica di connettersi ai tuoi backend. Imposta--source-ranges
sugli intervalli allocati della subnet solo proxy, in questo esempio10.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 Prenotare un nuovo indirizzo 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 di VM che eseguono i server Apache di backend per questo esempio di bilanciatore del carico di rete proxy interno regionale.
In genere, per il traffico HTTP non viene utilizzato un bilanciatore del carico di rete proxy interno regionale, ma Apache è
un software comunemente usato ed è facile da configurare per i test.
Console
Creare un modello di istanza. Nella console Google Cloud, vai alla pagina Modelli di istanza.
- Fai clic su Crea modello istanza.
- In Nome, inserisci
int-tcp-proxy-backend-template
. - Assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio Debian GNU/Linux 10 (stretch). Queste istruzioni utilizzano comandi disponibili solo su Debian, come
apt-get
. - Fai clic su Opzioni avanzate.
- Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
,allow-health-check
eallow-proxy-only-subnet
. - In Interfacce di rete, seleziona quanto segue:
- Rete:
lb-network
- Subnet:
backend-subnet
- Rete:
- In Tag di rete, inserisci
Fai clic su Gestione. Inserisci lo script seguente nel campo 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
Fai clic su Crea.
Creare un gruppo di istanze gestite. Nella console Google Cloud, vai alla pagina Gruppi di istanze.
- Fai clic su Crea gruppo di istanze.
- Seleziona Nuovo gruppo di istanze gestite (stateless). Per ulteriori informazioni, consulta la pagina relativa a MIG stateless o stateful.
- In Nome, inserisci
mig-a
. - In Località, seleziona Zona singola.
- In Regione, seleziona
REGION_A
. - In Zona, seleziona
ZONE_A1
. - In Modello di istanza, seleziona
int-tcp-proxy-backend-template
. 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
.
- In Modalità di scalabilità automatica, seleziona
Per Mappatura delle porte, fai clic su Aggiungi porta.
- In Nome porta, inserisci
tcp80
. - In Numero porta, inserisci
80
.
- In Nome porta, inserisci
Fai clic su Crea.
Ripeti il passaggio 2 per creare un secondo gruppo di istanze gestite con le seguenti impostazioni:
- Nome:
mig-c
- Zona:
ZONE_A2
Mantieni invariate tutte le altre impostazioni.
- Nome:
gcloud
Le istruzioni gcloud
in questa guida presuppongono che tu stia utilizzando Cloud Shell o un altro ambiente in cui è installato bash.
Crea un modello di istanza VM con server HTTP utilizzando il comando
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-10 \ --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'
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.
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 della regione Google Cloud di destinazione.
configura il bilanciatore del carico
Console
Avvia la configurazione
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Bilanciatore del carico del proxy e fai clic su Avanti.
- In Pubblico o interno, seleziona Interno e fai clic su Avanti.
- In Deployment in più regioni o in una singola regione, seleziona Ideale per carichi di lavoro a livello di regione e fai clic su Avanti.
- Fai clic su Configura.
Configurazione di base
- In Nome, inserisci
my-int-tcp-lb
. - In Regione, seleziona
REGION_A
. - In Rete, seleziona
lb-network
.
Prenota una subnet solo proxy
Per prenotare una subnet solo proxy:
- Fai clic su Prenota subnet.
- In Nome, inserisci
proxy-only-subnet
. - In Intervallo di indirizzi IP, inserisci
10.129.0.0/23
. - Fai clic su Aggiungi.
Configurazione backend
- Fai clic su Configurazione backend.
- In Tipo di backend, seleziona Gruppo di istanze.
- In Protocollo, seleziona TCP.
- In Porta denominata, inserisci
tcp80
. - Configura il primo backend:
- In Nuovo backend, seleziona il gruppo di istanze
mig-a
. - In Numeri di porta, inserisci
80
. - Mantieni i valori predefiniti rimanenti e fai clic su Fine.
- In Nuovo backend, seleziona il gruppo di istanze
- Configura il secondo backend:
- Fai clic su Aggiungi backend.
- In Nuovo backend, seleziona il gruppo di istanze
mig-c
. - In Numeri di porta, inserisci
80
. - Mantieni i valori predefiniti rimanenti e fai clic su Fine.
- Configura il controllo di integrità:
- In Controllo di integrità, seleziona Crea un controllo di integrità.
- Imposta il Nome del controllo di integrità su
tcp-health-check
. - In Protocollo, seleziona TCP.
- Imposta Porta su
80
.
- Mantieni i valori predefiniti rimanenti e fai clic su Salva.
- 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
- Fai clic su Configurazione frontend.
- In Nome, inserisci
int-tcp-forwarding-rule
. - Per Subnet, seleziona backend-subnet.
- Per Indirizzo IP, seleziona l'indirizzo IP prenotato in precedenza: LB_IP_ADDRESS
- In Numero porta, inserisci
110
. La regola di forwarding inoltra solo i pacchetti con una porta di destinazione corrispondente. - In questo esempio, non abilitare il protocollo proxy perché non funziona con il software Apache HTTP Server. Per ulteriori informazioni, consulta Protocollo proxy.
- Fai clic su Fine.
- 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
- Fai clic su Esamina e finalizza.
- Rivedi le impostazioni di configurazione del bilanciatore del carico.
- (Facoltativo) Fai clic su Codice equivalente per visualizzare la richiesta API REST che verrà utilizzata per creare il bilanciatore del carico.
- Fai clic su Crea.
gcloud
Creare un controllo di integrità a livello di regione.
gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-port
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
Aggiungi gruppi di istanze al tuo 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
Crea 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 l'intestazione proxy, impostala su
PROXY_V1
anziché suNONE
. In questo esempio, non abilitare il protocollo proxy perché non funziona con il software Apache HTTP Server. Per ulteriori informazioni, consulta Protocollo proxy.Crea la regola di forwarding. Per
--ports
, specifica un singolo numero di porta compreso tra 1 e 65535. Questo esempio utilizza la porta110
. La regola di forwarding inoltra solo 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 bilanciatore del carico. 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
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Imposta Nome su
client-vm
.Imposta Zona su
ZONE_A1
.Fai clic su Opzioni avanzate.
Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
. - In Interfacce di rete, seleziona quanto segue:
- Rete:
lb-network
- Subnet:
backend-subnet
- Rete:
- In Tag di rete, inserisci
Fai clic su Crea.
gcloud
La VM client deve trovarsi nella stessa rete VPC e nella stessa regione del bilanciatore del carico. Non deve trovarsi nella stessa subnet o zona. Il client utilizza la stessa subnet delle VM di backend.
gcloud compute instances create client-vm \ --zone=ZONE_A1 \ --image-family=debian-10 \ --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 del traffico all'indirizzo IP del bilanciatore del carico.
Utilizza SSH per connetterti all'istanza client.
gcloud compute ssh client-vm \ --zone=ZONE_A1
Verifica che il bilanciatore del carico fornisca i nomi host di backend come previsto.
Utilizza il comando
compute addresses describe
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.
Invia traffico al bilanciatore del carico. Sostituisci IP_ADDRESS con l'indirizzo IP del bilanciatore del carico.
curl IP_ADDRESS:110
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.
Abilita accesso globale
Puoi abilitare l'accesso globale al bilanciatore del carico per renderlo accessibile ai client in tutte le regioni. I backend del bilanciatore del carico di esempio devono ancora trovarsi in un'unica regione (REGION_A
).
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, una volta creata una regola di forwarding con l'accesso globale abilitato, non può essere modificata. Per disabilitare l'accesso globale, devi creare una nuova regola di forwarding dell'accesso a livello di regione ed eliminare la precedente regola di forwarding di accesso globale.
Per configurare l'accesso globale, apporta le seguenti modifiche alla configurazione.
Console
Crea una nuova regola di forwarding per il bilanciatore del carico:
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Nella colonna Nome, fai clic sul bilanciatore del carico.
Fai clic su Configurazione frontend.
Fai clic su Aggiungi IP e porta frontend.
Inserisci il nome e i dettagli della subnet per la nuova regola di forwarding.
Per Subnet, seleziona backend-subnet.
Per l'indirizzo IP, puoi selezionare lo stesso indirizzo IP di una regola di forwarding esistente, prenotare un nuovo indirizzo IP o utilizzare un indirizzo IP temporaneo. La condivisione dello stesso indirizzo IP tra più regole di forwarding è possibile solo se imposti il flag dell'indirizzo IP
--purpose
suSHARED_LOADBALANCER_VIP
durante la creazione dell'indirizzo IP.In Numero porta, inserisci
110
.Per Accesso globale, seleziona Attiva.
Fai clic su Fine.
Fai clic su Update (Aggiorna).
gcloud
Crea una nuova regola di forwarding per il bilanciatore del carico con il flag
--allow-global-access
.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
Puoi usare il comando
gcloud compute forwarding-rules describe
per determinare se l'accesso globale è abilitato per una regola di forwarding. Ad esempio:gcloud compute forwarding-rules describe int-tcp-forwarding-rule-global-access \ --region=REGION_A \ --format="get(name,region,allowGlobalAccess)"
Quando l'accesso globale è abilitato, la parola
True
compare nell'output dopo il nome e la regione della regola di forwarding.
Crea una VM client per testare l'accesso globale
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Imposta Nome su
test-global-access-vm
.Imposta Zona su
ZONE_B1
.Fai clic su Opzioni avanzate.
Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
. - In Interfacce di rete, seleziona quanto segue:
- Rete:
lb-network
- Subnet:
test-global-access-subnet
- Rete:
- In Tag di rete, inserisci
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-10 \ --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à
Usa
ssh
per connetterti all'istanza client:gcloud compute ssh test-global-access-vm \ --zone=ZONE_B1
Utilizza il comando
gcloud compute addresses describe
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.
Invia il traffico al bilanciatore del carico; sostituisci IP_ADDRESS con l'indirizzo IP del bilanciatore del carico:
curl IP_ADDRESS:110
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 le istanze di backend del bilanciatore del carico di rete proxy eseguano 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
Impossibile aggiornare l'intestazione di protocollo PROXY nel proxy di destinazione esistente. Devi creare un nuovo proxy di destinazione con le impostazioni richieste per l'intestazione del protocollo PROXY. Per creare un nuovo frontend con le impostazioni richieste:
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic sul nome del bilanciatore del carico da modificare.
- Fai clic su Modifica per il bilanciatore del carico.
- Fai clic su Configurazione frontend.
- Elimina l'IP e la porta del frontend precedenti.
- Fai clic su Aggiungi IP e porta frontend.
- In Nome, inserisci
int-tcp-forwarding-rule
. - Per Subnet, seleziona backend-subnet.
- Per Indirizzo IP, seleziona l'indirizzo IP prenotato in precedenza: LB_IP_ADDRESS
- In Numero porta, inserisci
110
. La regola di forwarding inoltra solo i pacchetti con una porta di destinazione corrispondente. - Modifica il valore del campo Protocollo proxy impostandolo su On.
- Fai clic su Fine.
- In Nome, inserisci
- Fai clic su Update (Aggiorna) per salvare le modifiche.
gcloud
Nel comando seguente, modifica il campo
--proxy-header
e impostalo suNONE
oPROXY_V1
, in base alle tue esigenze.gcloud compute target-tcp-proxies create TARGET_PROXY_NAME \ --backend-service=BACKEND_SERVICE \ --proxy-header=[NONE | PROXY_V1] \ --region=REGION
Elimina la regola di forwarding esistente.
gcloud compute forwarding-rules delete int-tcp-forwarding-rule \ --region=REGION
Crea una nuova regola di forwarding e associala 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 il bilanciatore del carico di rete proxy interno 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 interno di una regola di forwarding interno).
Console
Per abilitare l'affinità sessione IP client:
- Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Vai a Bilanciamento del carico - Fai clic su Backend.
- Fai clic su internal-tcp-proxy-bs (il nome del servizio di backend che hai creato per questo esempio) e fai clic su Modifica.
- Nella pagina Dettagli del servizio di backend, fai clic su Configurazione avanzata.
- In Affinità sessione, seleziona IP client dal menu.
- Fai clic su Update (Aggiorna).
gcloud
Usa il seguente comando gcloud per aggiornare il servizio di backend internal-tcp-proxy-bs
, specificando l'affinità sessione IP del client:
gcloud compute backend-services update internal-tcp-proxy-bs \ --region=REGION_A \ --session-affinity=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
- Per informazioni su come funzionano i bilanciatori del carico di rete proxy interni regionali, consulta la panoramica sui bilanciatori del carico di rete del proxy interno regionale.
- Per configurare il monitoraggio per il bilanciatore del carico di rete proxy interno regionale, consulta Utilizzo del monitoraggio.
- Esegui la pulizia della configurazione del bilanciatore del carico.