Questo documento spiega come convertire le risorse e i backend del bilanciatore del carico delle applicazioni da solo IPv4 (stack singolo) a IPv4 e IPv6 (stack doppio). Il principale vantaggio dell'utilizzo di IPv6 è che è possibile allocare un pool di indirizzi IP molto più grande. Puoi configurare il bilanciatore del carico in modo da terminare il traffico IPv6 in entrata e inviarlo tramite una connessione IPv4 o IPv6 ai tuoi backend, in base alle tue preferenze. Per ulteriori informazioni, consulta IPv6 per i bilanciatori del carico delle applicazioni e i bilanciatori del carico di rete proxy.
In questo documento, IPv4 solo (stack singolo) si riferisce alle risorse che utilizzano solo indirizzi IPv4, mentre IPv4 e IPv6 (stack doppio) si riferisce alle risorse che utilizzano entrambi gli indirizzi IPv4 e IPv6.
Prima di iniziare
Tieni presente le seguenti condizioni prima di iniziare la procedura di conversione:
Devi utilizzare uno dei seguenti tipi di bilanciatori del carico delle applicazioni:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni esterno regionale
- Bilanciatore del carico delle applicazioni interno tra regioni
- Bilanciatore del carico delle applicazioni interno regionale
I bilanciatori del carico delle applicazioni classici non supportano backend o sottoreti dual stack. Per ulteriori informazioni sul supporto IPv6, consulta IPv6 per bilanciatori del carico di rete proxy e bilanciatori del carico delle applicazioni.
Il bilanciatore del carico deve avere backend di gruppi di istanze VM o backend di gruppi di endpoint di rete (NEG) zonali con endpoint
GCE_VM_IP_PORT
. Altri tipi di backend non supportano il dual-stack.
Inoltre, la procedura di conversione varia in base al tipo di bilanciatore del carico.
Per i bilanciatori del carico delle applicazioni esterni globali, converti i backend in a doppio stack e crei una regola di inoltro IPv6 in grado di gestire il traffico IPv6 in entrata.
Per i bilanciatori del carico delle applicazioni interni tra regioni, i bilanciatori del carico delle applicazioni esterni regionali e i bilanciatori del carico delle applicazioni interni regionali, converti solo i backend in dual-stack. Le regole di inoltro IPv6 non sono supportate per questi bilanciatori del carico.
Per informazioni su come configurare i bilanciatori del carico delle applicazioni, consulta la seguente documentazione:
- Configura un bilanciatore del carico delle applicazioni esterno globale: backend di gruppi di istanze VM, backend NEG zonali
- Configura un bilanciatore del carico delle applicazioni esterno regionale: backend di gruppi di istanze VM, backend di NEG di zona
- Configura un bilanciatore del carico delle applicazioni interno tra regioni: backend di gruppi di istanze VM, backend di NEG di zona
- Configura un bilanciatore del carico delle applicazioni interno regionale: backend di gruppi di istanze VM, backend di NEG di zona
Identifica le risorse da convertire
Prendi nota dei nomi delle risorse a cui è associato il bilanciatore del carico. Dovrai fornire questi nomi in un secondo momento.
Per elencare tutte le subnet, utilizza il comando
gcloud compute networks subnets list
:gcloud compute networks subnets list
Prendi nota del nome della subnet con indirizzi solo IPv4 da convertire in dual-stack. Questa in seguito verrà chiamata
SUBNET
. La rete VPC in seguito verrà chiamataNETWORK
.Per elencare tutti i servizi di backend, utilizza il comando
gcloud compute backend-services list
:gcloud compute backend-services list
Annota il nome del servizio di backend da convertire in dual-stack. Questo in seguito verrà chiamato
BACKEND_SERVICE
.Per elencare tutte le mappe URL, utilizza il comando
gcloud compute url-maps list
:gcloud compute url-maps list
Prendi nota del nome della mappa URL associata al bilanciatore del carico. Questo in seguito verrà chiamato
URL_MAP
.Se hai già un bilanciatore del carico, per visualizzare il tipo di stack IP dei tuoi backend, utilizza il comando
gcloud compute instances list
:gcloud compute instances list \ --format= \ "table( name, zone.basename(), networkInterfaces[].stackType.notnull().list(), networkInterfaces[].ipv6AccessConfigs[0].externalIpv6.notnull().list():label=EXTERNAL_IPV6, networkInterfaces[].ipv6Address.notnull().list():label=INTERNAL_IPV6)"
Per elencare tutte le istanze VM e i modelli di istanze, utilizza il comando
gcloud compute instances list
e il comandogcloud compute instance-templates list
:gcloud compute instances list
gcloud compute instance-templates list
Prendi nota dei nomi delle istanze e dei modelli di istanze da convertire in dual-stack. Questi in seguito verranno chiamati
VM_INSTANCE
eINSTANCE_TEMPLATES
.Per elencare tutti i gruppi di istanze, utilizza il comando
gcloud compute instance-groups list
:gcloud compute instance-groups list
Prendi nota del nome dei gruppi di endpoint di rete da convertire in dual stack. Questo in seguito verrà chiamato
INSTANCE_GROUP
.Per elencare tutti i gruppi di endpoint di rete (NEG) a livello di zona, utilizza il comando
gcloud compute network-endpoint-groups list
:gcloud compute network-endpoint-groups list
Prendi nota dei nomi dei backend NEG zonali da convertire in dual-stack. Questo in seguito verrà chiamato
ZONAL_NEG
.Per elencare tutti i proxy di destinazione, utilizza il comando
gcloud compute target-http-proxies list
:gcloud compute target-http-proxies list
Annota il nome del proxy di destinazione associato al bilanciatore del carico. Questo in seguito verrà chiamato
TARGET_PROXY
.
Passare da backend a stack singolo a backend a stack doppio
Questa sezione mostra come convertire le risorse e i backend del bilanciatore del carico che utilizzano indirizzi solo IPv4 (stack singolo) in indirizzi IPv4 e IPv6 (stack doppio).
Aggiorna la subnet
Le subnet a doppio stack sono supportate solo nelle reti VPC in modalità personalizzata. Le subnet dual stack non sono supportate nelle reti VPC in modalità automatica o nelle reti legacy. Sebbene le reti in modalità automatica possano essere utili per le prime esplorazioni, i VPC in modalità personalizzata sono più adatti alla maggior parte degli ambienti di produzione. Ti consigliamo di utilizzare le VPC in modalità personalizzata.
Per aggiornare la VPC all'impostazione dual-stack:
Se utilizzi una rete VPC in modalità automatica, devi prima convertire la rete VPC in modalità personalizzata.
Se utilizzi la rete
default
, devi convertirla in una rete VPC in modalità personalizzata.Per attivare IPv6, consulta Modificare il tipo di stack di una subnet in doppio stack.
Assicurati che il tipo di accesso IPv6 della subnet sia impostato su
External
.(Facoltativo) Se vuoi configurare intervalli di indirizzi IPv6 interni sulle subnet di questa rete, completa i seguenti passaggi:
- Per Intervallo IPv6 interno ULA rete VPC, seleziona Abilitato.
Per Alloca intervallo IPv6 interno, seleziona Automaticamente o Manualmente.
Se selezioni Manualmente, inserisci un intervallo
/48
all'interno dell'intervallofd20::/20
. Se l'intervallo è in uso, ti viene chiesto di fornire un altro intervallo.
Aggiorna la subnet solo proxy
Se utilizzi un bilanciatore del carico basato su Envoy, ti consigliamo di cambiare il tipo di stack della sottorete solo proxy in dual stack. Per informazioni sui bilanciatori del carico che supportano le subnet solo proxy, consulta Bilanciatori del carico supportati.
Non puoi aggiornare il tipo di stack di una subnet solo proxy (purpose=REGIONAL_MANAGED_PROXY
) nello stesso modo in cui faresti per una subnet normale (con subnets update command
). Devi invece creare una subnet solo proxy di backup con un tipo di stack dual-stack e poi promuoverla al ruolo attivo. Questo perché può essere attiva una sola subnet solo proxy per regione e per rete VPC.
Dopo aver assegnato un intervallo IPv6 interno alla rete VPC, procedi nel seguente modo per modificare il tipo di stack della subnet solo proxy in doppio stack.
Console
Crea una subnet solo proxy di backup nella stessa regione della subnet solo proxy attiva, specificando il tipo di stack IP come dual-stack.
- Nella console Google Cloud, vai alla pagina Reti VPC.
Vai alla pagina Reti VPC - Fai clic sul nome della rete VPC a cui vuoi aggiungere una subnet solo proxy.
- Fai clic su Aggiungi subnet.
- Inserisci un nome.
- Seleziona una regione.
- In Finalità, seleziona Proxy gestito a livello di regione.
- In Ruolo, seleziona Backup.
- Per Tipo di stack IP, seleziona IPv4 e IPv6 (stack doppio).
- Inserisci un intervallo di indirizzi IP.
- Fai clic su Aggiungi.
- Nella console Google Cloud, vai alla pagina Reti VPC.
Crea o modifica regole firewall di autorizzazione in entrata che si applicano alle VM o agli endpoint di backend in modo che includano l'intervallo di indirizzi IP principale della subnet solo proxy di backup.
Esegui la promozione della subnet solo proxy di backup al ruolo attivo. Questa azione inoltre riduce il ruolo della subnet solo proxy attiva in precedenza al ruolo di backup:
- Nella console Google Cloud, vai alla pagina Reti VPC.
Vai alla pagina Reti VPC - Fai clic sul nome della rete VPC da modificare.
- In Subnet solo proxy riservate per il bilanciamento del carico, individua la subnet di backup creata nel passaggio precedente.
- Fai clic su Attiva.
- Specifica un timeout di svuotamento facoltativo.
- Fai clic su Attiva la subnet.
- Nella console Google Cloud, vai alla pagina Reti VPC.
Dopo il timeout dello svuotamento delle connessioni o dopo aver verificato che le connessioni alle VM o agli endpoint di backend non provengono da proxy nella subnet solo proxy attiva in precedenza (ora di riserva), puoi procedere nel seguente modo:
- Modifica le regole firewall di autorizzazione in entrata che si applicano alle VM o agli endpoint di backend in modo che non includano l'intervallo di indirizzi IP principale della subnet solo proxy precedentemente attiva (ora di backup).
- Elimina la subnet solo proxy attiva in precedenza (ora di riserva) per rilasciare gli indirizzi IP utilizzati dalla subnet per il suo intervallo IP principale.
gcloud
I passaggi che seguono presuppongono che tu abbia già una subnet solo proxy attiva.
Crea una subnet solo proxy di backup nella stessa regione, specificando un tipo di stack dual-stack (
--stack-type=IPV4_IPV6
), utilizzando il comando gcloud compute networks subnets create. Questa subnet viene assegnata come backup con il flag--role=BACKUP
.gcloud compute networks subnets create BACKUP_PROXY_ONLY_SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=BACKUP \ --region=REGION \ --network=VPC_NETWORK_NAME \ --range=BACKUP_PROXY_ONLY_SUBNET_RANGE \ --stack-type=IPV4_IPV6
Sostituisci quanto segue:
BACKUP_PROXY_ONLY_SUBNET_NAME
: il nome della subnet solo proxy di backup appena creataREGION
: la regione della subnet solo proxy di backup appena creata. Deve essere la stessa regione della subnet solo proxy attiva corrente.VPC_NETWORK_NAME
: la rete della subnet solo proxy di backup appena creata. Deve essere la stessa rete della subnet solo proxy attiva corrente.VPC_NETWORK_NAME
: il nome della rete VPCBACKUP_PROXY_ONLY_SUBNET_RANGE
: l'intervallo CIDR della subnet solo proxy di backup appena creata
Crea o modifica le regole firewall di autorizzazione in entrata che si applicano alle VM o agli endpoint di backend in modo che includano ora l'intervallo di indirizzi IP principale della subnet solo proxy di backup. La regola del firewall dovrebbe già accettare le connessioni dalla subnet attiva.
gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \ --source-ranges ACTIVE_PROXY_ONLY_SUBNET_RANGE,BACKUP_PROXY_ONLY_SUBNET_RANGE
Sostituisci quanto segue:
PROXY_ONLY_SUBNET_FIREWALL_RULE
: il nome della regola firewall che consente al traffico dalla subnet solo proxy di raggiungere le istanze o gli endpoint di backendACTIVE_PROXY_ONLY_SUBNET_RANGE
: l'intervallo CIDR della subnet solo proxy attiva correnteBACKUP_PROXY_ONLY_SUBNET_RANGE
: l'intervallo CIDR della subnet solo proxy di backup
Aggiorna la nuova subnet impostandola come subnet solo proxy
ACTIVE
nella regione e attendi lo svuotamento della vecchia subnet. Inoltre, viene retrocessa la subnet solo proxy attiva in precedenza al ruolo di backup.Per svuotare immediatamente un intervallo di indirizzi IP, imposta
--drain-timeout
su0s
. In questo modo vengono interrotte immediatamente tutte le connessioni ai proxy che hanno indirizzi assegnati nella sottorete in cui viene eseguito lo scarico.gcloud compute networks subnets update BACKUP_PROXY_ONLY_SUBNET_NAME \ --region=REGION \ --role=ACTIVE \ --drain-timeout=CONNECTION_DRAINING_TIMEOUT
Sostituisci quanto segue:
BACKUP_PROXY_ONLY_SUBNET_NAME
: il nome della subnet solo proxy di backup appena creataREGION
: la regione della subnet solo proxy di backup appena creata. Deve essere la stessa regione della subnet solo proxy attiva corrente.CONNECTION_DRAINING_TIMEOUT
: il tempo in secondi impiegato per eseguire la migrazione delle connessioni esistenti dai proxy nella subnet solo proxy attiva in precedenza. Google Cloud
Monitora lo stato dello scarico utilizzando un comando
list
odescribe
. Lo stato della subnet èDRAINING
durante lo svuotamento.gcloud compute networks subnets list
Attendi il completamento dello svuotamento. Quando la vecchia subnet solo proxy viene svuotata, il suo stato è
READY
.Aggiorna la regola del firewall della subnet solo proxy in modo da consentire solo le connessioni dalla nuova subnet.
gcloud compute firewall-rules PROXY_ONLY_SUBNET_FIREWALL_RULE \ --source-ranges BACKUP_PROXY_ONLY_SUBNET_RANGE
Una volta accertato che le connessioni alle VM o agli endpoint di backend non provengono da proxy nella subnet solo proxy attiva in precedenza (ora di backup), puoi eliminare la vecchia subnet.
gcloud compute networks subnets delete ACTIVE_PROXY_ONLY_SUBNET_NAME \ --region=REGION
Aggiorna l'istanza VM o i modelli
Puoi configurare gli indirizzi IPv6 su un'istanza VM se la subnet a cui è connessa la VM ha un intervallo IPv6 configurato. Solo i seguenti backend possono supportare gli indirizzi IPv6:
- Backend del gruppo di istanze: uno o più backend di gruppi di istanze gestiti, non gestiti o una combinazione di backend di gruppi di istanze gestiti e non gestiti.
- NEG a livello di zona: uno o più NEG a livello di zona di tipo
GCE_VM_IP_PORT
.
Aggiorna le istanze VM
Non puoi modificare le istanze VM che fanno parte di un gruppo di istanze gestite o non gestite. Per aggiornare le istanze VM al dual stack:
- Eliminare istanze specifiche da un gruppo
- Crea una VM dual-stack
- Crea istanze con nomi specifici nei gruppi di istanze gestite
Aggiorna i modelli di istanze VM
Non puoi aggiornare un modello di istanza esistente. Se devi apportare modifiche, puoi creare un altro modello con proprietà simili. Per aggiornare i modelli di istanze VM a doppio stack:
Console
Nella console Google Cloud, vai alla pagina Modelli di istanza.
- Fai clic sul modello di istanza da copiare e aggiornare.
- Fai clic su Crea simile.
- Espandi la sezione Opzioni avanzate.
- In Tag di rete, inserisci
allow-health-check-ipv6
. - Nella sezione Interfacce di rete, fai clic su Aggiungi un'interfaccia di rete.
- Nell'elenco Rete, seleziona la rete VPC in modalità personalizzata.
- Nell'elenco Subnet, seleziona
SUBNET
. - Per Tipo di stack IP, seleziona IPv4 e IPv6 (stack doppio).
- Fai clic su Crea.
Avvio di un aggiornamento in sequenza di base nel gruppo di istanze gestite
MIG
associato al bilanciatore del carico.
Aggiorna il NEG a livello di zona
Gli endpoint NEG zonali non possono essere modificati. Devi eliminare gli endpoint IPv4 e creare un nuovo endpoint a doppio stack con indirizzi IPv4 e IPv6.
Per configurare un NEG zonale (con endpoint di tipo GCE_VM_IP_PORT
)
nella regione REGION_A
, crea prima le VM nella
zona GCP_NEG_ZONE
. Poi aggiungi gli endpoint di rete della VM al NEG a livello di zona.
Creare VM
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Imposta Nome su
vm-a1
.Per Regione, scegli
REGION_A
e poi un valore qualsiasi per il campo Zona. In questa procedura, questa zona è indicata comeGCP_NEG_ZONE
.Nella sezione Disco di avvio, assicurati che sia selezionata l'opzione Debian GNU/Linux 12 (bookworm) per le opzioni del disco di avvio. Fai clic su Scegli per modificare l'immagine, se necessario.
Espandi la sezione Opzioni avanzate e apporta le seguenti modifiche:
- Espandi la sezione Networking.
- Nel campo Tag di rete, inserisci
allow-health-check
. - Nella sezione Interfacce di rete, apporta le seguenti modifiche:
- Rete:
NETWORK
- Subnet:
SUBNET
- Tipo di stack IP: IPv4 e IPv6 (stack doppio)
- Rete:
- Fai clic su Fine.
Fai clic su Gestione. Nel campo Script di avvio, copia e incolla i seguenti contenuti dello 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
Fai clic su Crea.
Ripeti i seguenti passaggi per creare una seconda VM utilizzando la seguente combinazione di nome e zona:
- Nome:
vm-a2
, zona:GCP_NEG_ZONE
- Nome:
gcloud
Crea le VM eseguendo il seguente comando due volte, utilizzando queste combinazioni per il nome della VM e della relativa zona. I contenuti dello script sono identici per entrambe le VM.
VM_NAME
divm-a1
e qualsiasiGCP_NEG_ZONE
zona di tuo gradimento.VM_NAME
divm-a2
e nella stessaGCP_NEG_ZONE
zona.gcloud compute instances create VM_NAME \ --zone=GCP_NEG_ZONE \ --stack-type=IPV4_IPV6 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-health-check \ --subnet=SUBNET \ --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'
Aggiungere endpoint al NEG zonale
Console
Per aggiungere endpoint al NEG zonale:
Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.
Nell'elenco Nome, fai clic sul nome del gruppo di endpoint di rete (
ZONAL_NEG
). Vedi la pagina Dettagli gruppo di endpoint di rete.Nella sezione Endpoint di rete in questo gruppo, seleziona l'endpoint NEG creato in precedenza. Fai clic su Rimuovi endpoint.
Nella sezione Endpoint di rete in questo gruppo, fai clic su Aggiungi endpoint di rete.
Seleziona l'istanza VM.
Nella sezione Interfaccia di rete vengono visualizzati il nome, la zona e la subnet della VM.
Nel campo Indirizzo IPv4, inserisci l'indirizzo IPv4 del nuovo endpoint di rete.
Nel campo Indirizzo IPv6, inserisci l'indirizzo IPv6 del nuovo endpoint di rete.
Seleziona il Tipo di porta.
- Se selezioni Predefinito, l'endpoint utilizza la porta predefinita
80
per tutti gli endpoint nel gruppo di endpoint di rete. Questo è sufficiente per il nostro esempio perché il server Apache gestisce le richieste sulla porta80
. - Se selezioni Personalizzata, inserisci il Numero di porta da utilizzare per l'endpoint.
- Se selezioni Predefinito, l'endpoint utilizza la porta predefinita
Per aggiungere altri endpoint, fai clic su Aggiungi endpoint di rete e ripeti i passaggi precedenti.
Dopo aver aggiunto tutti gli endpoint, fai clic su Crea.
gcloud
Aggiungi endpoint (endpoint
GCE_VM_IP_PORT
) aZONAL_NEG
.gcloud compute network-endpoint-groups update ZONAL_NEG \ --zone=GCP_NEG_ZONE \ --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \ ipv6=IPv6_ADDRESS,port=80' \ --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \ ipv6=IPv6_ADDRESS,port=80'
Sostituisci quanto segue:
IPv4_ADDRESS
:
indirizzo IPv4 dell'endpoint di rete. L'IPv4 deve appartenere a una VM in Compute Engine (l'IP principale o all'interno di un intervallo IP con alias).
Se l'indirizzo IP non è specificato, viene utilizzato l'indirizzo IP principale per l'istanza VM nella rete a cui appartiene il gruppo di endpoint di rete.
IPv6_ADDRESS
:
Indirizzo IPv6 dell'endpoint di rete. L'indirizzo IPv6 deve appartenere a un'istanza VM nella rete a cui appartiene il gruppo di endpoint di rete (indirizzo IPv6 esterno).
Crea una regola firewall per i probe del controllo di integrità IPv6
Devi creare una regola firewall per consentire i controlli di integrità dagli intervalli IP Google Cloud dei sistemi di probe. Per ulteriori informazioni, consulta la sezione Intervalli IP di monitoraggio.
Assicurati che la regola di ingresso sia applicabile alle istanze sottoposte a bilanciamento del carico
e che consenta il traffico dai Google Cloud sistemi di controllo di integrità.
Questo esempio utilizza il tag di destinazione allow-health-check-ipv6
per identificare le istanze VM a cui si applica.
Senza questa regola firewall, la regola default-deny per il traffico in entrata blocca il traffico IPv6 in entrata verso le istanze di backend.
Console
Nella console Google Cloud, vai alla pagina Policy firewall.
Per consentire il traffico nella subnet IPv6, fai di nuovo clic su Crea regola firewall e inserisci le seguenti informazioni:
- Nome:
fw-allow-lb-access-ipv6
- Rete:
NETWORK
- Priorità:
1000
- Direzione del traffico: in entrata
- Target: tag di destinazione specificati
- Tag di destinazione:
allow-health-check-ipv6
- Filtro di origine: intervalli IPv6
Intervalli IPv6 di origine:
Per bilanciatore del carico delle applicazioni esterno globale e bilanciatore del carico di rete proxy esterno globale, inserisci
2600:2d00:1:b029::/64
,2600:2d00:1:1::/64
Per bilanciatore del carico delle applicazioni interno tra regioni, bilanciatore del carico delle applicazioni esterno regionale, bilanciatore del carico delle applicazioni interno regionale, bilanciatore del carico di rete proxy interno tra regioni, bilanciatore del carico di rete proxy esterno regionale e bilanciatore del carico di rete proxy interno regionale, inserisci
2600:2d00:1:b029::/64
Protocolli e porte: Consenti tutto
- Nome:
Fai clic su Crea.
gcloud
Crea la regola firewall
fw-allow-lb-access-ipv6
per consentire la comunicazione con la subnet.Per il bilanciatore del carico delle applicazioni esterno globale e il bilanciatore del carico di rete proxy esterno globale, utilizza il seguente comando:
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
Per i bilanciatori del carico delle applicazioni interni tra regioni, i bilanciatori del carico delle applicazioni esterni a livello di regione, i bilanciatori del carico delle applicazioni interni a livello di regione, i bilanciatori del carico di rete proxy interni tra regioni, i bilanciatori del carico di rete proxy esterni a livello di regione e i bilanciatori del carico di rete proxy interni a livello di regione, utilizza il seguente comando:
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 \ --rules=all
Crea una regola firewall per la subnet solo proxy
Se utilizzi un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno, devi aggiornare la regola del firewall di ingressofw-allow-lb-access-ipv6
per consentire il traffico dalla subnet solo proxy ai backend.
Per ottenere l'intervallo di indirizzi IPv6 della subnet solo proxy, esegui questo comando:
gcloud compute networks subnets describe PROXY_ONLY_SUBNET \ --region=REGION \ --format="value(internalIpv6Prefix)"
Prendi nota dell'intervallo di indirizzi IPv6 interno. Questo intervallo verrà chiamato in seguito
IPV6_PROXY_ONLY_SUBNET_RANGE
.
Per aggiornare la regola del firewall fw-allow-lb-access-ipv6
per la subnet solo proxy, svolgi quanto segue:
Console
Nella console Google Cloud, vai alla pagina Policy firewall.
Nel riquadro Regole firewall VPC, fai clic su
fw-allow-lb-access-ipv6
.- Intervalli IPv6 di origine:
2600:2d00:1:b029::/64
, IPV6_PROXY_ONLY_SUBNET_RANGE
- Intervalli IPv6 di origine:
Fai clic su Salva.
gcloud
Aggiorna la regola firewall
fw-allow-lb-access-ipv6
per consentire la comunicazione con la subnet solo proxy:gcloud compute firewall-rules update fw-allow-lb-access-ipv6 \ --source-ranges=2600:2d00:1:b029::/64,IPV6_PROXY_ONLY_SUBNET_RANGE
Creare un nuovo servizio di backend e una nuova regola di inoltro per IPv6
Questa sezione descrive la procedura per creare un nuovo servizio di backend e una regola di inoltro per IPv6. Tieni presente che la regola di inoltro IPv6 può essere creata solo per bilanciatori del carico delle applicazioni esterni globali. Le regole di inoltro IPv6 non sono supportate per bilanciatori del carico delle applicazioni interni tra regioni, bilanciatori del carico delle applicazioni esterni regionali e bilanciatori del carico delle applicazioni interni regionali.
A questo punto della procedura, sia BACKEND_SERVICE
sia
BACKEND_SERVICE_IPV6
sono in grado di pubblicare traffico. Per evitare interruzioni del traffico, crea un nuovo servizio di backend con il criterio di selezione dell'indirizzo IP impostato su Prefer IPv6
. Dopo aver creato il nuovo servizio di backend,
puoi indirizzare il traffico al nuovo servizio di backend IPv6.
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico.
Fai clic su Modifica.
Configura il servizio di backend:
- Fai clic su Configurazione backend.
- Nel campo Servizio di backend, seleziona Crea un servizio di backend.
- Imposta Nome su BACKEND_SERVICE_IPV6.
- In Tipo di backend, seleziona Gruppo di endpoint di rete zonale.
- Nell'elenco Criterio di selezione degli indirizzi IP, seleziona Preferenza per IPv6.
- Nel campo Protocollo, seleziona HTTP.
- Nel riquadro Nuovo backend:
- Nell'elenco Gruppo di endpoint di rete, seleziona ZONAL_NEG.
- In RPS massimo, inserisci
10
.
- Nell'elenco Controllo di integrità, seleziona un controllo di integrità HTTP.
- Fai clic su Fine.
Configura il frontend IPv6:
La regola di inoltro con IPv6 non è supportata per i bilanciatori del carico delle applicazioni interni tra regioni, per i bilanciatori del carico delle applicazioni esterni regionali e per i bilanciatori del carico delle applicazioni interni regionali.
- Fai clic su Configurazione frontend.
- Fai clic su Aggiungi IP e porta frontend.
- Nel campo Nome, inserisci un nome per la regola di inoltro.
- Nel campo Protocollo, seleziona
HTTP
. - Imposta Versione IP su
IPv6
. - Fai clic su Fine.
- Fai clic su Aggiorna.
Configura le regole di routing
- Fai clic su Regole di routing.
- Fai clic su Regola avanzata per host e percorso.
- Fai clic su Aggiorna.
gcloud
Crea un controllo di integrità:
gcloud compute health-checks create http HEALTH_CHECK \ --port 80
Crea il servizio di backend per il traffico HTTP:
globale
Per il bilanciatore del carico delle applicazioni esterno globale, utilizza il comando:
gcloud compute backend-services create BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=PREFER_IPV6 \ --health-checks=HEALTH_CHECK \ --global
tra regioni
Per il bilanciatore del carico delle applicazioni interno tra regioni, utilizza il comando:
gcloud compute backend-services create BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=PREFER_IPV6 \ --health-checks=HEALTH_CHECK \ --global
regionale
Per il bilanciatore del carico delle applicazioni esterno regionale, utilizza il comando:
gcloud compute backend-services create BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=PREFER_IPV6 \ --health-checks=HEALTH_CHECK \ --region=REGION
Per il bilanciatore del carico delle applicazioni interno regionale, utilizza il comando:
gcloud compute backend-services create BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=PREFER_IPV6 \ --health-checks=HEALTH_CHECK \ --region=REGION
Aggiungi i NEG zonali dual-stack come backend del servizio di backend.
globale
Per il bilanciatore del carico delle applicazioni esterno globale, utilizza il comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --network-endpoint-group=ZONAL_NEG \ --network-endpoint-group-zone=ZONE \ --max-rate-per-endpoint=10 \ --global
tra regioni
Per il bilanciatore del carico delle applicazioni interno tra regioni, utilizza il comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --network-endpoint-group=ZONAL_NEG \ --network-endpoint-group-zone=ZONE \ --max-rate-per-endpoint=10 \ --global
regionale
Per il bilanciatore del carico delle applicazioni esterno regionale e il bilanciatore del carico delle applicazioni interno regionale, utilizza il comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --network-endpoint-group=ZONAL_NEG \ --network-endpoint-group-zone=ZONE \ --max-rate-per-endpoint=10 \ --region=REGION
Aggiungi i gruppi di istanze dual-stack come backend del servizio di backend.
globale
Per il bilanciatore del carico delle applicazioni esterno globale, utilizza il comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --instance-group=INSTANCE_GROUP \ --global
tra regioni
Per il bilanciatore del carico delle applicazioni interno tra regioni, utilizza il comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --instance-group=INSTANCE_GROUP \ --global
regionale
Per il bilanciatore del carico delle applicazioni esterno regionale e il bilanciatore del carico delle applicazioni interno regionale, utilizza il comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --instance-group=INSTANCE_GROUP \ --region=REGION
Solo per i bilanciatori del carico delle applicazioni esterni globali. Crea la regola di inoltro IPv6 per il bilanciatore del carico delle applicazioni esterno globale. Utilizza il comando:
gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --global \ --target-http-proxy=TARGET_PROXY \ --ports=443
Instrada il traffico al nuovo servizio di backend IPv6
Aggiorna la mappa URL per indirizzare una parte del traffico client al nuovo servizio di backend IPv6 BACKEND_SERVICE_IPV6
.
Utilizza il seguente comando per modificare le mappe URL:
globale
Per il bilanciatore del carico delle applicazioni esterno globale, utilizza il comando:
gcloud compute url-maps edit URL_MAP \ --global
tra regioni
Per il bilanciatore del carico delle applicazioni interno tra regioni, utilizza il comando:
gcloud compute url-maps edit URL_MAP \ --global
regionale
Per il bilanciatore del carico delle applicazioni esterno regionale e il bilanciatore del carico delle applicazioni interno regionale, utilizza il comando:
gcloud compute url-maps edit URL_MAP \ --region=REGION
Nell'editor di testo visualizzato, aggiungi un
routeRule
con un'azioneweightedBackendServices
che indirizzi una percentuale di traffico IPv6 aBACKEND_SERVICE_IPV6
.defaultService: global/backendServices/BACKEND_SERVICE hostRules: - hosts: - '*' pathMatcher: matcher1 name: URL_MAP pathMatchers: - defaultService: global/backendServices/BACKEND_SERVICE name: matcher1 routeRules: - matchRules: - prefixMatch: '' priority: 1 routeAction: weightedBackendServices: - backendService: global/backendServices/BACKEND_SERVICE weight: 95 - backendService: global/backendServices/BACKEND_SERVICE_IPV6 weight: 5
Per implementare la migrazione graduale a IPv6, aumenta la percentuale di peso per il nuovo servizio di backend BACKEND_SERVICE_IPV6
in modo incrementale fino al 100% modificando la mappa URL più volte.
Configura il criterio di selezione degli indirizzi IP
Dopo aver convertito le risorse e i backend in IPv6, puoi utilizzare il criterio di selezione dell'indirizzo IP per specificare il tipo di traffico inviato dal servizio di backend ai tuoi backend.
Sostituisci IP_ADDRESS_SELECTION_POLICY
con uno dei seguenti valori:
Policy di selezione degli indirizzi IP | Descrizione |
---|---|
Solo IPv4 | Invia solo traffico IPv4 ai backend del servizio di backend, indipendentemente dal traffico dal client a GFE. Per controllare l'integrità dei backend vengono utilizzati solo i controlli di integrità IPv4. |
Preferenza per IPv6 | Assegna la priorità alla connessione IPv6 del backend rispetto alla connessione IPv4 (a condizione che sia presente un backend funzionante con indirizzi IPv6). I controlli di integrità monitorano periodicamente le connessioni IPv6 e IPv4 dei backend. La GFE tenta prima la connessione IPv6. Se la connessione IPv6 è interrotta o lenta, la GFE utilizza gli happy eyeballs per eseguire il fallback e connettersi a IPv4. Anche se una delle connessioni IPv6 o IPv4 non è attiva, il backend viene comunque trattato come attivo e GFE può provare entrambe le connessioni, con gli utenti che alla fine scelgono quale utilizzare. |
Solo IPv6 | Invia solo traffico IPv6 ai backend del servizio di backend, indipendentemente dal traffico dal client al proxy. Per controllare l'integrità dei backend vengono utilizzati solo i controlli di integrità IPv6. Non viene eseguita alcuna convalida per verificare se il tipo di traffico di backend corrisponde al
criterio di selezione degli indirizzi IP. Ad esempio, se hai backend solo IPv4
e selezioni |
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico.
Fai clic su Modifica.
Fai clic su Configurazione backend.
Nel campo Servizio di backend, seleziona BACKEND_SERVICE_IPV6.
Il tipo di backend deve essere Gruppo di endpoint di rete a livello di zona o Gruppo di istanze.
Nell'elenco Criterio di selezione degli indirizzi IP, seleziona IP_ADDRESS_SELECTION_POLICY.
Fai clic su Fine.
gcloud
Aggiorna la policy di selezione degli indirizzi IP per il servizio di backend:
globale
Per il bilanciatore del carico delle applicazioni esterno globale, utilizza il comando:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \ --global
tra regioni
Per il bilanciatore del carico delle applicazioni interno tra regioni, utilizza il comando:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \ --global
regionale
Per il bilanciatore del carico delle applicazioni esterno regionale, utilizza il comando:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \ --region=REGION
Per il bilanciatore del carico delle applicazioni interno regionale, utilizza il comando:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \ --region=REGION
Testa il bilanciatore del carico
Devi verificare che tutte le risorse richieste siano aggiornate al dual stack. Dopo aver aggiornato tutte le risorse, il traffico deve essere indirizzato automaticamente ai backend. Puoi controllare i log e verificare che la conversione sia completata.
Testa il bilanciatore del carico per verificare che la migrazione sia riuscita e che il traffico in entrata raggiunga i backend come previsto.
Cerca gli indirizzi IP del bilanciatore del carico
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico.
Nella sezione Frontend, vengono visualizzati due indirizzi IP del bilanciatore del carico. In questa procedura, l'indirizzo IPv4 è indicato come IP_ADDRESS_IPV4 e l'indirizzo IPv6 come IP_ADDRESS_IPV6.
Nella sezione Backend, quando il criterio di selezione dell'indirizzo IP è
Prefer IPv6
, vengono visualizzati due stati del controllo di integrità per i backend.
Invia traffico al bilanciatore del carico
In questo esempio, le richieste del comando curl
vengono distribuite in modo casuale ai backend.
Per i bilanciatori del carico esterni
Ripeti i seguenti comandi alcune volte finché non vedrai tutte le VM di backend rispondere:
curl -m1 IP_ADDRESS_IPV4:PORT
curl -m1 IP_ADDRESS_IPV6:PORT
Ad esempio, se l'indirizzo IPv6 è
[fd20:1db0:b882:802:0:46:0:0]:80
, il comando sarà simile al seguente:curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
Per i bilanciatori del carico interni
Crea una VM client di test nella stessa rete VPC e nella stessa regione del bilanciatore del carico. Non è necessario che si trovi nella stessa subnet o nella stessa zona.
gcloud compute instances create client-vm \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=SUBNET
Utilizza SSH per connetterti all'istanza client.
gcloud compute ssh client-vm \ --zone=ZONE
Ripeti i seguenti comandi alcune volte finché non vedrai tutte le VM di backend rispondere:
curl -m1 IP_ADDRESS_IPV4:PORT
curl -m1 IP_ADDRESS_IPV6:PORT
Ad esempio, se l'indirizzo IPv6 è
[fd20:1db0:b882:802:0:46:0:0]:80
, il comando sarà simile al seguente:curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
Controlla i log
Ogni voce del log acquisisce l'indirizzo IPv4 e IPv6 di destinazione per il backend. Poiché supportiamo il dual-stack, è importante osservare l'indirizzo IP utilizzato dal backend.
Puoi verificare che il traffico venga inviato a IPv6 o che venga eseguito il fallback a IPv4 visualizzando i log.
HttpRequest contiene l'indirizzo backend_ip
associato al backend. Esaminando i log e confrontando l'indirizzo IPv4 e IPv6 di destinazione del backend_ip
, puoi verificare quale indirizzo IP viene utilizzato.