terminazione IPv6 per bilanciamento del carico HTTP(S) esterno, SSL e proxy TCP

Google Cloud supporta i client IPv6 con bilanciatori del carico del proxy come il bilanciatore del carico HTTP(S) esterno globale, Bilanciamento del carico del proxy SSL e Bilanciamento del carico del proxy TCP. Il bilanciatore del carico accetta connessioni IPv6 dagli utenti e quindi esegue il proxy di tali connessioni ai tuoi backend.

Puoi configurare indirizzi IP esterni IPv4 e IPv6 per i seguenti bilanciatori del carico:

  • bilanciatore del carico HTTP(S) esterno globale
  • bilanciatore del carico HTTP(S) esterno globale (classico)
  • Bilanciatore del carico del proxy SSL
  • Bilanciatore del carico del proxy TCP
Bilanciamento del carico IPv6 globale (fai clic per ingrandire)
Bilanciamento del carico IPv6 globale (fai clic per ingrandire)

La terminazione IPv6 consente di gestire le richieste IPv6 degli utenti e di eseguirne il proxy tramite IPv4 nei backend. Se utilizzi IPv6, puoi:

  • Utilizza un unico indirizzo IPv6 anycast per il deployment in più aree geografiche. Ti serve un solo indirizzo IPv6 del bilanciatore del carico per le istanze dell'applicazione in esecuzione in più aree geografiche. Ciò significa che il server DNS ha un singolo record AAAA e che non è necessario caricare il saldo tra più indirizzi IPv6. Memorizzare nella cache i record AAAA dai client non è un problema perché c'è un solo indirizzo da memorizzare nella cache. Le richieste dell'utente all'indirizzo IPv6 vengono bilanciate automaticamente al bilanciamento dell'integrità più vicino con la capacità disponibile.

  • Bilanciamento del carico HTTP, HTTPS, HTTP/2, TCP e SSL/TLS: traffico sul client IPv6.

  • Riversamento tra aree geografiche con un unico indirizzo del bilanciatore del carico IPv6. Se i backend in un'area geografica sono esauriti o in stato non integro, il bilanciatore del carico globale indirizza automaticamente le richieste dagli utenti all'area geografica più vicina con risorse disponibili. Quando l'area geografica più vicina dispone di risorse, il bilanciamento del carico globale riprende la pubblicazione da questa area geografica. Il bilanciamento del carico globale richiede l'utilizzo del livello premium dei livelli di servizio di rete.

  • Esegui doppio stack. Per gestire i client IPv6 e IPv4, crea due risorse IP del bilanciatore del carico, una per l'IPv6 e l'altra per l'IPv4, e associale alle stesse istanze dell'applicazione IPv4. I client IPv4 si connettono all'indirizzo IPv4, mentre i client IPv6 si connettono all'indirizzo IPv6. Questi vengono quindi bilanciati automaticamente e caricati in base ai backend integri più vicini con capacità disponibile. Forniamo regole di forwarding IPv6 senza addebiti, quindi paghi solo per quelle IPv4.

    Indirizzare il traffico IPv4 e IPv6 verso gli stessi backend (fai clic per ingrandire)
    Indirizzamento del traffico IPv4 e IPv6 agli stessi backend (fai clic per ingrandire)

Terminazione IPv6 e proxy

La configurazione della terminazione IPv6 per i bilanciatori del carico consente ai backend di essere visualizzati come applicazioni IPv6 per i client IPv6, come mostrato nella figura seguente.

Terminazione IPv6 per il bilanciamento del carico (fai clic per ingrandire)
Terminazione IPv6 per il bilanciamento del carico (fai clic per ingrandire)

Quando un utente si connette al bilanciatore del carico tramite IPv6, si verifica quanto segue:

  1. Il bilanciatore del carico, con indirizzo IPv6 e regola di forwarding, attende le connessioni utente.
  2. Un client IPv6 si connette al bilanciatore del carico tramite IPv6.
  3. Il bilanciatore del carico funge da proxy inverso e termina la connessione client IPv6. Invia la richiesta a una connessione IPv4 a un backend.
  4. Sul percorso inverso, il bilanciatore del carico riceve la risposta IPv4 dal backend e quindi la inserisce nella connessione IPv6 al client originale.

Allocazione degli indirizzi IPv6 per le regole di forwarding del bilanciatore del carico

Quando configuri un bilanciatore del carico esterno, devi fornirgli una o più regole di forwarding globali, ciascuna con un indirizzo IP IPv4 o IPv6 instradato pubblicamente (o entrambi). Puoi utilizzare questo indirizzo IP nei record DNS del tuo sito.

Quando crei una regola di forwarding, puoi utilizzare un indirizzo IP statico riservato al progetto o fare in modo che la regola di acquisizione acquisisca automaticamente un indirizzo IP temporaneo durante la creazione della regola. Un indirizzo IP statico è riservato al tuo progetto e puoi conservarlo finché non lo rilasci deliberatamente. Un indirizzo temporaneo appartiene alla regola di forwarding finché esiste una regola di forwarding. Se elimini la regola di forwarding, l'indirizzo temporaneo viene rilasciato di nuovo nel pool Google Cloud.

Se hai bisogno di un indirizzo IPv4 e IPv6 per il bilanciatore del carico, puoi creare due regole di forwarding, associando un indirizzo IPv4 a un indirizzo e un indirizzo IPv6 all'altro. Puoi quindi associare entrambe le regole allo stesso bilanciatore del carico.

Formato dell'indirizzo IPv6

Google Cloud alloca un intervallo di indirizzi IPv6 /64 alle regole di forwarding IPv6. L'interfaccia a riga di comando di Google Cloud elenca gli indirizzi IPv6 con i 64 bit meno significativi impostati su 0, ma il bilanciatore del carico accetta il traffico nell'intero intervallo. Pertanto, potresti vedere altri indirizzi IPv6 del bilanciatore del carico nell'intervallo allocato nelle intestazioni X-Forwarded-For, a seconda dell'indirizzo IP del server IPv6 a cui è collegato il client.

Quando si formatta un indirizzo IPv6, Google Cloud segue i consigli riportati nella RFC 5952,sezione 4.

Intestazione IP client con terminazione IPv6 per bilanciamento del carico HTTP(S)

Quando il bilanciatore del carico collega la connessione IPv6 dal client a una connessione IPv4 al tuo backend, l'indirizzo IP di origine originale viene sostituito con l'indirizzo IP del bilanciatore del carico. Tuttavia, i backend spesso devono conoscere l'indirizzo IP di origine originale per il logging, per le decisioni o per altri scopi. Google Cloud fornisce un'intestazione HTTP propagata ai backend che include l'indirizzo IP del client IPv6 originale.

Le intestazioni HTTP per IPv6 sono simili a quelle per IPv4. Il formato delle richieste è il seguente:

  • X-Forwarded-For: CLIENT_IP_ADDRESS, GLOBAL_FORWARDING_RULE_EXTERNAL_IP_ADDRESSES

L'ultimo elemento mostra l'indirizzo IP del bilanciatore del carico. L'ultimo elemento mostra l'indirizzo IP del client come visto dal bilanciatore del carico. Potrebbero esserci altri elementi nell'intestazione X-Forwarded-For quando il client o i proxy intermedi aggiungono altre intestazioni X-Forwarded-For prima di inviare la richiesta al bilanciatore del carico.

Un'intestazione X-Forwarded-For di esempio potrebbe avere il seguente aspetto:

X-Forwarded-For: 2001:db8:abcd:1::1234, 2607:f8b0:4005:801::200e

2001:db8:abcd:1::1234 è l'indirizzo IPv6 del client. 2607:f8b0:4005:801::200e è l'indirizzo IPv6 del bilanciatore del carico HTTP(S) esterno.

Prezzi

Le regole di forwarding per la terminazione IPv6 sono fornite senza costi aggiuntivi. Non ti viene addebitato alcun costo per gli indirizzi IPv6 temporanei. Agli indirizzi IPv6 riservati vengono addebitate le tariffe esistenti, a prescindere dal fatto che siano in uso o meno. In caso contrario, il prezzo del bilanciamento del carico IPv6 corrisponde a quello del bilanciamento del carico IPv4. Per i dettagli sui prezzi del bilanciamento del carico, consulta la sezione Prezzi della rete.

Limitazioni

  • Il traffico IPv6 non è supportato con bilanciatori del carico HTTP(S) esterni, bilanciatori del carico HTTP(S) interni e bilanciatori del carico TCP/UDP interni.

Passaggi successivi