Un bilanciatore del carico di rete passthrough interno è un bilanciatore del carico regionale che consente di eseguire e scalare i servizi dietro un indirizzo IP interno. Puoi utilizzare un bilanciatore del carico di rete passthrough interno come hop successivo a cui i pacchetti vengono inoltrati lungo il percorso verso la destinazione finale. Per farlo, imposta il bilanciatore del carico come hop successivo in una route statica personalizzata.
Prima di esaminare le informazioni in questa pagina, dovresti già acquisire familiarità con i seguenti concetti:
Un hop successivo del bilanciatore del carico di rete passthrough interno è utile nei seguenti casi:
per bilanciare il carico del traffico su più VM che funzionano da VM gateway o router.
Per utilizzare appliance virtuali gateway come hop successivo per una route predefinita. Con questa configurazione, le istanze di macchine virtuali (VM) nella tua rete Virtual Private Cloud (VPC) inviano il traffico a internet attraverso un set di VM gateway virtuali con bilanciamento del carico.
Per inviare il traffico attraverso più bilanciatori del carico in due o più direzioni utilizzando lo stesso set di VM router o gateway con più NIC come backend. Per farlo, puoi creare un bilanciatore del carico e utilizzarlo come hop successivo per una route statica personalizzata in ogni rete VPC. Ogni bilanciatore del carico di rete passthrough interno opera all'interno di una singola rete VPC, distribuendo il traffico alle interfacce di rete delle VM di backend in quella rete.
Architettura
Nel diagramma seguente, un gruppo di istanze VM di VM router funge da backend per due diversi bilanciatori del carico.
Il primo bilanciatore del carico di rete passthrough interno invia pacchetti a nic0
delle VM backend, mentre il secondo bilanciatore del carico di rete passthrough interno invia pacchetti a nic1
sugli stessi backend.
Vantaggi dell'utilizzo del bilanciatore del carico di rete passthrough interno come hop successivo
Quando il bilanciatore del carico è un hop successivo per una route statica, non è necessaria alcuna configurazione speciale all'interno dei sistemi operativi guest delle VM client nella rete VPC in cui è definita la route. Le VM client inviano pacchetti ai backend del bilanciatore del carico tramite il routing di rete VPC, in modalità bump-in-the-wire.
L'utilizzo di un bilanciatore del carico di rete passthrough interno come hop successivo per una route statica offre gli stessi vantaggi di un bilanciatore del carico di rete passthrough interno autonomo. Il controllo di integrità del bilanciatore del carico garantisce che le nuove connessioni vengano instradate a VM di backend integre. Utilizzando un gruppo di istanze gestite come backend, puoi configurare la scalabilità automatica per aumentare o ridurre il set di VM in base alla domanda del servizio.
Specifiche
Di seguito sono riportate le specifiche per l'utilizzo dei bilanciatori del carico di rete passthrough interni come hop successivi.
Route
Puoi creare una route statica personalizzata per passare TCP, UDP e altro traffico di protocollo a un bilanciatore del carico di rete passthrough interno, dove il bilanciatore del carico è l'hop successivo per la route statica. La route può essere un prefisso CIDR esterno (instradabile pubblicamente) o un prefisso CIDR interno, se il prefisso non è in conflitto con una route di subnet. Ad esempio, puoi sostituire la route predefinita (0.0.0.0/0
) con una route che indirizza il traffico alle VM di backend di terze parti per l'elaborazione dei pacchetti.
Opzioni per specificare l'hop successivo
Puoi specificare un hop successivo del bilanciatore del carico di rete passthrough interno in uno dei due modi seguenti:
- Utilizzando il nome e la regione della regola di forwarding
- Utilizzando l'indirizzo IP della regola di forwarding
Per maggiori dettagli sul progetto e sulla rete VPC in cui può risiedere un hop successivo del bilanciatore del carico di rete passthrough interno, consulta Hop e funzionalità successivi.
Puoi scambiare le route statiche con gli hop successivi del bilanciatore del carico di rete passthrough interno utilizzando il peering di rete VPC. Per maggiori dettagli, vedi Opzioni per lo scambio di route statiche.
Affinità sessione IP client
I bilanciatori del carico di rete passthrough interni offrono due opzioni di affinità della sessione simili "indirizzo IP client":
- IP client (
CLIENT_IP
): un hash a due tuple degli indirizzi IP di origine e di destinazione di un pacchetto. Quando un bilanciatore del carico di rete passthrough interno non è l'hop successivo di una route, i pacchetti inviati all'indirizzo IP della regola di forwarding del bilanciatore del carico condividono un indirizzo IP di destinazione comune, ovvero l'indirizzo IP della regola di forwarding. In questa situazione, uno degli indirizzi utilizzati dall'hash a due tuple rimane costante. Pertanto, se il numero di backend configurati e integri non cambia e i pacchetti hanno indirizzi IP di origine identici, questa opzione di affinità sessione a due tuple seleziona lo stesso backend. - IP client, nessuna destinazione (
CLIENT_IP_NO_DESTINATION
): un hash a una tupla dell'indirizzo IP di origine di un pacchetto. Quando utilizzi un bilanciatore del carico di rete passthrough interno come hop successivo, l'indirizzo IP di destinazione spesso varia perché gli indirizzi IP di destinazione sono quelli specificati dall'attributo di destinazione della route. In questo caso, l'affinità sessione IP client (CLIENT_IP
) con hash a due tuple non può selezionare lo stesso backend anche se il numero di backend configurati e integri non cambia e i pacchetti hanno indirizzi IP di origine identici. Un'eccezione a questa regola è quando si configura un solo backend.) Se vuoi che i pacchetti con indirizzi IP di origine identici vengano instradati allo stesso backend, devi utilizzare l'opzione di affinità sessione IP client, nessuna destinazione (CLIENT_IP_NO_DESTINATION
).
Intervallo di destinazione
La destinazione di una route statica personalizzata
non può essere uguale o più specifica di una route
subnet. Tieni presente che più specifica significa che
la subnet mask è più lunga. Questa regola si applica a tutte le route statiche personalizzate, anche quando l'hop successivo è un bilanciatore del carico di rete passthrough interno. Ad esempio, supponiamo che la route subnet sia 10.140.0.0/20
. La destinazione di una route statica personalizzata non può
essere la stessa (10.140.0.0/20
) e non può essere più specifica, come in
10.140.0.0/22
.
Stessa rete VPC e stessa regione
Le route statiche personalizzate che utilizzano bilanciatori del carico di rete passthrough interni come hop successivi sono limitate a quanto segue:
Una singola rete VPC. Il bilanciatore del carico e la route statica personalizzata devono trovarsi nella stessa rete VPC.
Una o tutte le regioni. A meno che non configuri l'accesso globale, la route statica personalizzata è disponibile solo per le risorse che si trovano nella stessa regione del bilanciatore del carico. Questa limitazione regionale viene applicata anche se la route stessa fa parte della tabella di routing per l'intera rete VPC. Se abiliti l'accesso globale, la route statica personalizzata è disponibile per le risorse in qualsiasi regione.
Pubblicizzazione della route statica personalizzata
Per pubblicizzare il prefisso (destinazione) per la route statica personalizzata, puoi utilizzare un pubblicità di route personalizzata del router Cloud. L'ambito dell'annuncio di route dipende dall'impostazione di accesso globale del bilanciatore del carico, come segue:
Quando l'accesso globale è disabilitato, il bilanciatore del carico di rete passthrough interno è disponibile solo per le VM, i tunnel Cloud VPN e i collegamenti Cloud Interconnect (VLAN) che si trovano nella stessa regione del bilanciatore del carico. Di conseguenza, un annuncio di route personalizzato per il prefisso di una route statica personalizzata ha senso solo se il router Cloud e il bilanciatore del carico si trovano nella stessa regione.
Quando l'accesso globale è abilitato, il bilanciatore del carico di rete passthrough interno è disponibile per le VM, i tunnel Cloud VPN e i collegamenti Cloud Interconnect (VLAN) che si trovano in qualsiasi regione. Con il routing dinamico globale, i sistemi on-premise possono usare la route statica personalizzata da qualsiasi regione connessa.
La tabella seguente riassume l'accessibilità del bilanciatore del carico.
Accesso globale | Modalità di routing dinamico della rete VPC | Accesso al bilanciatore del carico |
---|---|---|
Disabilitata | Regionale | Accessibile dai router nella stessa regione |
Disabilitata | Globale | Accessibile dai router nella stessa regione |
Abilitata | Regionale | Accessibile da tutti i router in qualsiasi regione |
Abilitata | Globale | Accessibile da tutti i router in qualsiasi regione |
Per ulteriori informazioni, vedi Bilanciatori del carico di rete passthrough interni e reti connesse.
Ordine delle operazioni
Devi creare un bilanciatore del carico di rete passthrough interno prima di poter creare una route statica personalizzata che la utilizzi come hop successivo. Il bilanciatore del carico deve esistere prima di poter creare la route. Se provi a creare una route che fa riferimento a un bilanciatore del carico inesistente, Google Cloud restituisce un errore.
Puoi specificare un hop successivo del bilanciatore del carico di rete passthrough interno utilizzando il nome della regola di forwarding e la regione del bilanciatore del carico oppure utilizzando l'indirizzo IP interno associato alla regola di forwarding.
Dopo aver creato una route con un hop successivo che fa riferimento a un bilanciatore del carico di rete passthrough interno, non puoi eliminare il bilanciatore del carico a meno che non elimini prima la route. Nello specifico, non puoi eliminare una regola di forwarding interno finché nessuna route statica personalizzata non utilizza il bilanciatore del carico come hop successivo.
Requisiti di backend
Devi configurare tutte le VM di backend del bilanciatore del carico di rete passthrough interno per consentire l'IP forwarding (
--can-ip-forward = True
). Per ulteriori informazioni, consulta Considerazioni sul routing basato su istanza o basato su bilanciatore del carico.Non puoi utilizzare un bilanciatore del carico di rete passthrough interno i cui backend sono nodi Google Kubernetes Engine (GKE) come hop successivo per una route statica personalizzata. Il software sui nodi può instradare il traffico ai pod solo se la destinazione corrisponde a un indirizzo IP gestito dal cluster, non a una destinazione arbitraria.
Elaborazione del traffico TCP, UDP e di altro tipo
Quando viene eseguito il deployment di un bilanciatore del carico di rete passthrough interno come hop successivo, Google Cloud inoltra tutto il traffico su tutte le porte alle VM di backend, indipendentemente da quanto segue:
- Il protocollo e la configurazione delle porte della regola di forwarding
- La configurazione del protocollo del servizio di backend
Il bilanciatore del carico di rete passthrough interno, che è l'hop successivo della route, supporta perfettamente l'inoltro di tutto il traffico per i protocolli supportati dalle reti VPC di Google Cloud (come TCP, UDP e ICMP).
Ulteriori considerazioni
Regole di forwarding supportate. Google Cloud supporta solo le regole di forwarding del bilanciatore del carico di rete passthrough interno dell'hop successivo. Google Cloud non supporta le regole di forwarding dell'hop successivo utilizzate da altri bilanciatori del carico, il forwarding del protocollo o come endpoint Private Service Connect.
Metodi di specifica e rete e progetto della regola di forwarding. Puoi specificare una regola di forwarding per l'hop successivo utilizzando uno dei tre metodi seguenti. Il metodo di specifica utilizzato determina se la rete della regola di forwarding deve corrispondere alla rete della route e in quale progetto può trovarsi la regola di forwarding:
In base al nome della regola di forwarding (
--next-hop-ilb
) e alla regione (--next-hop-ilb-region
): quando specifichi una regola di forwarding dell'hop successivo per nome e regione, la rete della regola di forwarding deve corrispondere alla rete VPC della route. La regola di forwarding deve trovarsi nello stesso progetto che contiene la rete della regola di forwarding (un progetto autonomo o un progetto host del VPC condiviso).Tramite il link alle risorse della regola di forwarding: il link alle risorse di una regola di forwarding utilizza il formato
/projects/
PROJECT_ID/regions/
REGION/forwardingRules/
FORWARDING_RULE_NAME, dove PROJECT_ID è l'ID del progetto che contiene la regola di forwarding, REGION è la regione della regola di forwarding e FORWARDING_RULE_NAME è il nome della regola. Quando specifichi una regola di forwarding dell'hop successivo tramite il relativo link delle risorse, la rete della regola di forwarding deve corrispondere alla rete VPC della route. La regola di forwarding può trovarsi o nel progetto che contiene la rete della regola di forwarding (un progetto autonomo o un progetto host del VPC condiviso) o in un progetto di servizio del VPC condiviso.Tramite un indirizzo IPv4 della regola di forwarding: quando specifichi una regola di inoltro dell'hop successivo tramite il relativo indirizzo IPv4, la rete della regola di forwarding può essere la rete VPC della route o una rete VPC in peering. La regola di forwarding può trovarsi nel progetto che contiene la rete della regola di forwarding (un progetto autonomo o un progetto host del VPC condiviso) o in un progetto di servizio del VPC condiviso.
Effetto dell'accesso globale. Le route statiche personalizzate che utilizzano gli hop successivi del bilanciatore del carico di rete passthrough interno sono programmate in tutte le regioni. La possibilità di utilizzare l'hop successivo dipende dall'impostazione di accesso globale del bilanciatore del carico. Con l'accesso globale abilitato, l'hop successivo del bilanciatore del carico è accessibile in tutte le regioni della rete VPC. Se l'accesso globale è disabilitato, l'hop successivo del bilanciatore del carico è accessibile solo nella stessa regione del bilanciatore del carico. Se l'accesso globale è disabilitato, i pacchetti inviati da un'altra regione a una route utilizzando l'hop successivo del bilanciatore del carico di rete passthrough interno vengono eliminati.
Quando tutti i backend sono in stato non integro. Quando tutti i backend di un bilanciatore del carico di rete passthrough interno non superano i controlli di integrità, le route che utilizzano l'hop successivo del bilanciatore del carico sono ancora attive. I pacchetti elaborati dalla route vengono inviati a uno dei backend del bilanciatore del carico dell'hop successivo in base alla distribuzione del traffico.
Le regole di forwarding che utilizzano un indirizzo IP interno comune (
--purpose=SHARED_LOADBALANCER_VIP
) non sono supportate. I bilanciatori del carico di rete passthrough interni dell'hop successivo e le regole di forwarding del bilanciatore del carico di rete passthrough interno con un indirizzo IP comune sono funzionalità che si escludono a vicenda. Un bilanciatore del carico di rete passthrough interno dell'hop successivo deve utilizzare un indirizzo IP univoco per la regola di forwarding del bilanciatore del carico, in modo che venga fatto riferimento in modo inequivocabile a un solo servizio di backend (un bilanciatore del carico). È possibile che le regole di forwarding che utilizzano un indirizzo IP interno comune facciano riferimento a diversi servizi di backend (bilanciatori del carico di rete passthrough interni diversi).Più route con le stesse destinazioni e priorità, ma diversi bilanciatori del carico di rete passthrough interni per l'hop successivo. Google Cloud non distribuisce mai il traffico tra due o più bilanciatori del carico di rete passthrough interni per l'hop successivo utilizzando ECMP. Google Cloud seleziona invece solo un bilanciatore del carico di rete passthrough interno dell'hop successivo utilizzando un algoritmo interno deterministico. Per evitare questa ambiguità, puoi utilizzare tag di rete univoci per ogni route.
Google Cloud seleziona un singolo hop successivo quando le route statiche con diversi hop successivi del bilanciatore del carico di rete passthrough interno hanno la stessa priorità e destinazione. Più route con le stesse destinazioni, priorità e bilanciatori del carico di rete passthrough interni per l'hop successivo. Senza un tag di rete, Google Cloud non consente di creare più route statiche con la stessa combinazione di destinazione, priorità e hop successivo del bilanciatore del carico di rete passthrough interno. Con i tag di rete, puoi creare più route statiche con la stessa combinazione di destinazione, priorità e hop successivo del bilanciatore del carico di rete passthrough interno.
Casi d'uso
Puoi utilizzare un bilanciatore del carico di rete passthrough interno come hop successivo in più deployment e topologie.
Per ogni esempio, tieni presente le seguenti linee guida:
Ogni interfaccia della VM deve trovarsi in una rete VPC separata.
Non puoi utilizzare bilanciatori del carico o VM di backend per instradare il traffico tra subnet nella stessa rete VPC perché le route delle subnet non possono essere sostituite.
Il bilanciatore del carico di rete passthrough interno è un bilanciatore del carico passthrough software-defined. I pacchetti vengono consegnati alle VM di backend senza modifiche alle informazioni di origine o di destinazione (indirizzi o indirizzi e porte).
Routing, filtro dei pacchetti, proxying e traduzione degli indirizzi sono responsabilità delle VM delle appliance virtuali che fungono da backend per il bilanciatore del carico di rete passthrough interno.
Utilizzo di un bilanciatore del carico di rete passthrough interno come hop successivo verso un gateway NAT
Questo caso d'uso bilancia il carico del traffico dalle VM interne a più istanze di gateway NAT che instradano il traffico a internet.
Hub e spoke: scambio delle route dell'hop successivo tramite peering di rete VPC
Oltre a scambiare le route di subnet, puoi configurare il peering di rete VPC per esportare e importare route statiche e dinamiche personalizzate. Le route statiche personalizzate che hanno un hop successivo del gateway internet predefinito sono escluse. Sono incluse route statiche personalizzate che utilizzano bilanciatori del carico di rete passthrough interni per l'hop successivo.
Puoi configurare una topologia hub e spoke con le appliance virtuali firewall dell'hop successivo situate nella rete VPC hub
procedendo nel seguente modo:
- Nella rete VPC
hub
, crea un bilanciatore del carico di rete passthrough interno con appliance virtuali firewall come backend. - Nella rete VPC
hub
, crea una route statica personalizzata e imposta l'hop successivo come il bilanciatore del carico di rete passthrough interno. - Connetti la rete VPC
hub
a ciascuna delle reti VPCspoke
utilizzando il peering di rete VPC. - Per ogni peering, configura la rete
hub
per esportare le relative route personalizzate e configura la retespoke
corrispondente per importare route personalizzate. La route con l'hop successivo del bilanciatore del carico è una delle route esportate dalla retehub
.
In base all'ordine di routing, il bilanciatore del carico dell'appliance firewall
dell'hop successivo nella rete VPC hub
è
disponibile nelle reti spoke:
- ai client nella stessa regione del bilanciatore del carico, se l'accesso globale è disabilitato
- ai client in tutte le regioni, se l'accesso globale è abilitato, in base all'ordine di routing.
Bilanciamento del carico su più NIC
Nel caso d'uso riportato di seguito, le VM di backend sono istanze di appliance virtuali (ad esempio VM di ispezione dei pacchetti, di routing o di gateway) con NIC in più reti VPC. Le istanze di appliance virtuali possono essere soluzioni commerciali di terze parti o soluzioni create da te. Le appliance virtuali sono VM di Compute Engine con più NIC.
Questo esempio mostra un singolo insieme di appliance virtuali di backend in un gruppo di istanze VM gestite.
Nella rete VPC denominata testing
, il bilanciatore del carico di rete passthrough interno ha una regola di forwarding denominata fr-ilb1
. Nell'esempio, questo bilanciatore del carico
distribuisce il traffico nell'interfaccia nic0
.
Nella rete VPC denominata production
, un altro bilanciatore del carico di rete passthrough interno ha una regola di forwarding denominata fr-ilb2
. Questo bilanciatore del carico
distribuisce il traffico su un'interfaccia diversa, nic1
in questo esempio.
Per una configurazione dettagliata della configurazione, vedi Bilanciamento del carico in più NIC di backend.
Hash simmetrico
L'esempio precedente non utilizza SNAT (Network Address Translation) di origine. La tecnologia SNAT non è necessaria perché Google Cloud utilizza l'hashing simmetrico. Ciò significa che quando i pacchetti appartengono allo stesso flusso, Google Cloud calcola lo stesso hash. In altre parole, l'hash non cambia quando l'indirizzo IP di origine indirizzo:porta viene scambiato con l'indirizzo IP di destinazione: indirizzo: porta.
Note
L'hashing simmetrico viene abilitato automaticamente quando crei la regola di forwarding del bilanciatore del carico di rete passthrough interno a partire dal 22 giugno 2021.
Per abilitare l'hashing simmetrico sui bilanciatori del carico di rete passthrough interni esistenti, devi ricreare la regola di forwarding e la route dell'hop successivo, come descritto in Abilitare l'hashing simmetrico.
L'hashing simmetrico è supportato solo con i bilanciatori del carico di rete passthrough interni.
L'hashing simmetrico è supportato con i seguenti tipi di affinità sessione per i protocolli TCP e UDP:
- IP client (2 tuple)
- IP client e protocollo (3 tuple)
- IP client, protocollo e porta (5 tuple)
Facoltativamente, puoi utilizzare SNAT se per qualche motivo il tuo caso d'uso lo richiede.
Passaggi successivi
- Per configurare un bilanciatore del carico di rete passthrough interno come hop successivo, consulta Configurare un bilanciatore del carico di rete passthrough interno per appliance di terze parti o Eseguire il deployment di una rete hub e spoke utilizzando un bilanciatore del carico come hop successivo.
- Per configurare e testare un bilanciatore del carico di rete passthrough interno, consulta Configurare un bilanciatore del carico di rete passthrough interno con backend di gruppi di istanze VM.
- Per risolvere i problemi relativi all'hop successivo con il bilanciatore del carico di rete passthrough interno, vedi Risolvere i problemi dei bilanciatori del carico di rete passthrough interni.