Panoramica del forwarding del protocollo

Il forwarding del protocollo utilizza una regola di forwarding regionale per recapitare i pacchetti di un protocollo specifico a una singola istanza di macchina virtuale (VM). La regola di forwarding può avere un indirizzo IP interno o esterno. Il forwarding del protocollo recapita i pacchetti mantenendo l'indirizzo IP di destinazione della regola di forwarding. La regola di forwarding fa riferimento a un oggetto denominato istanza di destinazione, che a sua volta fa riferimento a una singola istanza VM.

Puoi utilizzare il forwarding del protocollo per:

  • Fornire un indirizzo IP che può essere spostato da un'istanza all'altra modificando la VM a cui fa riferimento l'oggetto istanza di destinazione o modificando l'istanza di destinazione a cui fa riferimento la regola di forwarding.
  • Inoltrare i pacchetti a VM diverse in base al protocollo e alla porta. Due regole di forwarding possono condividere lo stesso indirizzo IP, purché le informazioni su porta e protocollo siano univoche.
  • (Solo forwarding del protocollo esterno) Definire indirizzi IP esterni aggiuntivi per una determinata interfaccia di rete. A differenza di un'interfaccia di rete con una configurazione NAT 1:1 per il relativo indirizzo IPv4 esterno, il forwarding del protocollo conserva l'indirizzo IP di destinazione della regola di forwarding.
  • Inviare pacchetti i cui indirizzi IP di origine corrispondono all'indirizzo IP della regola di forwarding.

Il forwarding del protocollo è diverso da un bilanciatore del carico passthrough in seguito:

  • Nessun bilanciamento del carico. Un'istanza di destinazione distribuisce i pacchetti solo a una singola VM.
  • Nessun controllo di integrità. A differenza di un servizio di backend, un'istanza di destinazione non supporta un controllo di integrità. Devi utilizzare altri mezzi per assicurarti che il software necessario sia in esecuzione e operativo sulla VM a cui fa riferimento l'istanza di destinazione.

Architettura

Il forwarding del protocollo utilizza regole di forwarding esterne regionali o interne regionali e un oggetto istanza di destinazione zonale. L'istanza di destinazione e la VM a cui fa riferimento devono trovarsi in una zona nella regione della regola di forwarding.

  • Forwarding del protocollo esterno. Puoi configurare più regole di forwarding in modo che puntino a una singola istanza di destinazione, il che ti consente di utilizzare più indirizzi IP esterni con un'istanza VM. Puoi utilizzare questa opzione negli scenari in cui potresti voler pubblicare dati da una sola istanza VM, ma tramite indirizzi IP esterni o protocolli e porte diversi. Questa opzione è particolarmente utile per configurare l'hosting virtuale SSL. Il forwarding del protocollo esterno può gestire le connessioni da client IPv6.

    Il forwarding del protocollo esterno supporta i seguenti protocolli: AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP e UDP .

    Il seguente diagramma mostra un esempio di architettura di forwarding del protocollo esterno. Per scoprire come configurarlo, consulta Configurare il forwarding del protocollo esterno.

    Architettura del forwarding del protocollo esterno.
    Architettura di forwarding del protocollo esterno (fai clic per ingrandire).
  • Forwarding del protocollo interno. Il forwarding del protocollo interno utilizza un indirizzo IPv4 interno regionale (dall'intervallo di indirizzi IPv4 principale di una subnet) o un intervallo di indirizzi IPv6 interni regionali (dall'intervallo di indirizzi IPv6 di una subnet).

    Il forwarding del protocollo interno supporta i seguenti protocolli: TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH e GRE .

    Il seguente diagramma mostra un esempio di architettura di forwarding del protocollo interno. Per scoprire come configurarlo, consulta Configurare il forwarding del protocollo interno.

    Architettura di forwarding del protocollo interno.
    Architettura di forwarding del protocollo interno (fai clic per ingrandire).

    Con il forwarding del protocollo interno, puoi modificare la destinazione di una regola di forwarding per passare da un'istanza di destinazione a un servizio di backend di un bilanciatore del carico passthrough. Per maggiori dettagli, consulta Passare da un'istanza di destinazione a un servizio di backend service.

Regole di forwarding

Ogni regola di forwarding corrisponde a un indirizzo IP, un protocollo e, facoltativamente, alle informazioni sulla porta (se specificate e se il protocollo supporta le porte). Quando una regola di forwarding fa riferimento a un'istanza di destinazione, Google Cloud instrada i pacchetti che corrispondono all'indirizzo, al protocollo e alla specifica della porta della regola di forwarding alla VM a cui fa riferimento l'istanza di destinazione.

  • Forwarding del protocollo interno:

    • Supporto dell'indirizzo IPv4. Un indirizzo IPv4 interno regionale dall'intervallo IPv4 principale di una subnet. Puoi specificare un indirizzo IPv4 statico riservato o un indirizzo IPv4 temporaneo personalizzato. Se non viene specificato, Google Cloud assegna automaticamente un indirizzo IPv4 temporaneo.

    • Supporto dell'indirizzo IPv6. La regola di forwarding fa riferimento a un intervallo /96 di indirizzi IP dall'intervallo di indirizzi IPv6 interni /64 della subnet. La subnet deve essere una delle seguenti:

      • Una subnet a doppio stack (IPv4 e IPv6)
      • Una subnet a stack singolo (solo IPv6)

      L'impostazione ipv6-access-type della subnet deve essere impostata su INTERNAL.

      Gli indirizzi IPv6 interni sono disponibili solo nel livello Premium. Puoi specificare un indirizzo IPv6 statico riservato o un indirizzo IPv6 temporaneo personalizzato. Se non viene specificato, Google Cloud assegna automaticamente un indirizzo IPv6 temporaneo.

      Per specificare un indirizzo IPv6 temporaneo personalizzato, devi utilizzare gcloud CLI o l'API. La Google Cloud console non supporta la specifica di indirizzi IPv6 temporanei personalizzati per le regole di forwarding.

    • Opzioni del protocollo. TCP(impostazione predefinita), UDP e L3_DEFAULT.

      • L'opzione del protocollo della regola di forwarding L3_DEFAULT inoltra tutto il traffico TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH e GRE. Per i protocolli TCP, UDP e SCTP, L3_DEFAULT inoltra anche tutte le porte.
    • Opzioni di specifica della porta. Un elenco di massimo cinque porte contigue o non contigue o tutte le porte.

  • Forwarding del protocollo esterno:

    • Supporto dell'indirizzo IPv4. La regola di forwarding fa riferimento a un singolo indirizzo IPv4 esterno regionale. Gli indirizzi IPv4 esterni regionali provengono da un pool univoco per ogni Google Cloud regione. Puoi specificare un indirizzo IPv4 statico riservato. Se non viene specificato, Google Cloud assegna automaticamente un indirizzo IPv4.

    • Supporto dell'indirizzo IPv6. La regola di forwarding fa riferimento a un intervallo /96 di indirizzi IP dalla seconda metà (/65) dell'intervallo di indirizzi IPv6 esterni /64 della subnet, come descritto in Specifiche IPv6 esterne. La subnet deve essere una delle seguenti:

      • Una subnet a doppio stack (IPv4 e IPv6)
      • Una subnet a stack singolo (solo IPv6)

      L'impostazione ipv6-access-type della subnet deve essere impostata su EXTERNAL.

      Gli indirizzi IPv6 esterni sono disponibili solo nel livello Premium. Puoi specificare un indirizzo IPv6 statico riservato o un indirizzo IPv6 temporaneo personalizzato. Se non viene specificato, Google Cloud assegna automaticamente un indirizzo IPv6 temporaneo.

      Per specificare un indirizzo IPv6 temporaneo personalizzato, devi utilizzare gcloud CLI o l'API. La Google Cloud console non supporta la specifica di indirizzi IPv6 temporanei personalizzati per le regole di forwarding.

    • Opzioni del protocollo. AH, ESP, ICMP, SCTP, TCP (impostazione predefinita), UDP e L3_DEFAULT :

      • L'opzione del protocollo della regola di forwarding L3_DEFAULT inoltra tutto il traffico AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP e UDP. Per i protocolli TCP, UDP e SCTP, L3_DEFAULT inoltra anche tutte le porte.
      • Le regole di forwarding IPv6 non supportano l'impostazione del protocollo ICMP perché il protocollo ICMP supporta solo gli indirizzi IPv4. Per pubblicare il traffico ICMPv6 e GRE, imposta il protocollo della regola di forwarding su L3_DEFAULT.
    • Opzioni di specifica della porta. Un intervallo di porte contiguo o tutte le porte.

Tieni presente i seguenti punti quando utilizzi le regole di forwarding:

  • Per il forwarding del protocollo, una regola di forwarding può fare riferimento a una sola istanza di destinazione.

  • Per i bilanciatori del carico di rete passthrough interni e i bilanciatori del carico di rete passthrough esterni regionali basati su servizi di backend, una regola di forwarding può fare riferimento a un solo servizio di backend.

  • Puoi passare dal forwarding del protocollo interno a un bilanciatore del carico di rete passthrough interno senza eliminare e ricreare la regola di forwarding. Per passare dal forwarding del protocollo esterno a un bilanciatore del carico di rete passthrough esterno regionale basato su servizio di backend, devi eliminare e ricreare la regola di forwarding. Per maggiori dettagli, consulta Passare da un'istanza di destinazione a un servizio di backend.

  • Le informazioni sulla porta possono essere specificate solo per i protocolli che hanno un concetto di porta: TCP, UDP o SCTP.

  • Se prevedi pacchetti UDP frammentati, esegui una delle seguenti operazioni per assicurarti che tutti i frammenti (inclusi quelli senza informazioni sulla porta) vengano recapitati all'istanza:

    • Utilizza una singola regola di forwarding L3_DEFAULT oppure
    • Utilizza una singola regola di forwarding UDP configurata per inoltrare tutte le porte.

Istanze di destinazione

Un'istanza di destinazione è una risorsa di zona che fa riferimento a un'istanza VM nella stessa zona. La regola di forwarding che fa riferimento all'istanza di destinazione deve trovarsi nella regione contenente la zona dell'istanza di destinazione. Poiché a un'istanza di destinazione non viene applicata una policy Cloud NAT, può essere utilizzata per il traffico IPsec che non può attraversare NAT.

Supporto multi-NIC

Il forwarding del protocollo che utilizza le istanze di destinazione supporta le istanze VM con interfacce di rete non-nic0 (vNIC o interfacce di rete dinamiche) utilizzando il flag --network quando crei l'istanza di destinazione:

  • Se ometti il flag --network quando crei un'istanza di destinazione, Google Cloud i pacchetti vengono recapitati all'inter2/}faccia nic0 della VM a cui fa riferimento.
  • Se includi il flag --network quando crei un'istanza di destinazione, Google Cloud i pacchetti vengono recapitati alla NIC della VM a cui fa riferimento che si trova in la rete VPC specificata dal flag --network.
    • La VM a cui fa riferimento deve avere una NIC nella rete VPC specificata dal flag --network.
    • Per recapitare i pacchetti alle interfacce non nic0, ogni interfaccia di rete di un'istanza deve trovarsi in una rete VPC separata. L'utilizzo del forwarding del protocollo per recapitare i pacchetti a più interfacce di rete che si trovano nella stessa rete VPC network non è supportato.
  • Il forwarding del protocollo interno e il forwarding del protocollo esterno IPv6 hanno il seguente requisito aggiuntivo perché le relative regole di forwarding utilizzano le subnet: quando configuri una regola di forwarding in modo che faccia riferimento a un'istanza di destinazione, la regola di forwarding deve utilizzare una subnet della rete VPC dell'istanza di destinazione. La regola di forwarding e l'istanza di destinazione non possono utilizzare reti VPC diverse, anche se queste reti sono connesse in qualche modo.

Supporto IPv6 per le istanze VM

Se vuoi che il deployment del forwarding del protocollo supporti il traffico IPv6, l'istanza VM deve essere configurata in una subnet a doppio stack o a stack singolo solo IPv6 che si trova nella stessa regione della regola di forwarding IPv6.

Tieni presente che, sebbene le istanze solo IPv6 possano essere create sia in subnet a doppio stack sia in subnet solo IPv6, le VM a doppio stack non possono essere create in subnet solo IPv6.

L'istanza VM può essere creata in una subnet con ipv6-access-type impostato su EXTERNAL o INTERNAL. La VM eredita l'impostazione ipv6-access-type ( EXTERNAL o INTERNAL) dalla subnet.

Per le istruzioni, consulta Crea un'istanza che utilizza indirizzi IPv6 addresses. Se vuoi utilizzare una VM esistente, puoi aggiornarla a doppio stack utilizzando il gcloud compute instances network-interfaces update comando. L'aggiornamento delle VM esistenti a solo IPv6 non è supportato.

Indirizzi IP per i pacchetti di richiesta e di risposta

Quando un'istanza di destinazione riceve un pacchetto da un client, gli indirizzi IP di origine e di destinazione del pacchetto di richiesta sono quelli mostrati in questa tabella.

Tabella 1. Indirizzi IP di origine e di destinazione per i pacchetti di richiesta
Tipo di forwarding del protocollo Indirizzo IP di origine Indirizzo IP di destinazione
Forwarding del protocollo esterno L'indirizzo IP esterno associato a una Google Cloud VM o un indirizzo IP esterno di un client su internet. L'indirizzo IP della regola di forwarding.
Forwarding del protocollo interno L'indirizzo IP interno di un client; per Google Cloud i client, l' indirizzo IPv4 interno principale o l'indirizzo IPv6 o un indirizzo IPv4 da un intervallo di IP alias dell'interfaccia di rete di una VM. L'indirizzo IP della regola di forwarding.

Il software in esecuzione sulle VM dell'istanza di destinazione deve essere configurato per eseguire le seguenti operazioni:

  • Ascoltare (eseguire il binding) l'indirizzo IP della regola di forwarding o qualsiasi indirizzo IP (0.0.0.0 o ::).
  • Se il protocollo della regola di forwarding supporta le porte, ascolta (esegui il binding) una porta inclusa nella regola di forwarding.

I pacchetti di risposta vengono inviati direttamente dall'istanza di destinazione al client. Gli indirizzi IP di origine e di destinazione del pacchetto di risposta dipendono dal protocollo:

  • TCP è orientato alla connessione. Le istanze di destinazione devono rispondere con pacchetti che hanno indirizzi IP di origine che corrispondono all'indirizzo IP della regola di forwarding. In questo modo, il client può associare i pacchetti di risposta alla connessione TCP appropriata.
  • AH, ESP, GRE, ICMP, ICMPv6 e UDP sono senza connessione. Le istanze di destinazione possono inviare pacchetti di risposta con indirizzi IP di origine che corrispondono all'indirizzo IP della regola di forwarding o a qualsiasi indirizzo IP assegnato alla NIC della VM nella stessa rete VPC della regola di forwarding. In pratica, la maggior parte dei client si aspetta che la risposta provenga dallo stesso indirizzo IP a cui ha inviato i pacchetti.

La seguente tabella riassume le origini e le destinazioni dei pacchetti di risposta:

Tabella 2. Indirizzi IP di origine e di destinazione per i pacchetti di risposta
Tipo di traffico Indirizzo IP di origine Indirizzo IP di destinazione
TCP L'indirizzo IP della regola di forwarding. L'indirizzo IP di origine del pacchetto di richiesta.
AH, ESP, GRE, ICMP, ICMPv6 e UDP Per la maggior parte dei casi d'uso, l'indirizzo IP della regola di forwarding.1 L'indirizzo IP di origine del pacchetto di richiesta.

1 Con il forwarding del protocollo interno, è possibile impostare l' origine del pacchetto di risposta sull'indirizzo IPv4 interno principale o sull'indirizzo IPv6 della NIC della VM o su un intervallo di indirizzi IP alias. Se una VM ha il forwarding IP abilitato, può utilizzare un indirizzo IP di origine arbitrario per i pacchetti che invia alle destinazioni instradate all'interno di una rete VPC. L'utilizzo dell'indirizzo IP della regola di forwarding come origine è uno scenario avanzato perché il client riceve un pacchetto di risposta da un indirizzo IP interno che non corrisponde all'indirizzo IP a cui ha inviato un pacchetto di richiesta.

Connettività internet in uscita dalle istanze di destinazione

Le istanze VM a cui fanno riferimento le istanze di destinazione possono avviare connessioni a internet utilizzando l'indirizzo IP della regola di forwarding associata come indirizzo IP di origine della connessione in uscita.

In genere, un'istanza VM utilizza sempre il proprio indirizzo IP esterno o Cloud NAT per avviare le connessioni. Utilizzi l'indirizzo IP della regola di forwarding per avviare le connessioni dalle istanze di destinazione solo in scenari speciali, ad esempio quando devi fare in modo che le istanze VM originino e ricevano connessioni allo stesso indirizzo IP esterno.

I pacchetti in uscita inviati dalle VM dell'istanza di destinazione direttamente a internet non hanno restrizioni sui protocolli e sulle porte del traffico. Anche se un pacchetto in uscita utilizza l'indirizzo IP della regola di forwarding come origine, il protocollo e la porta di origine del pacchetto non devono corrispondere al protocollo e alla specifica della porta della regola di forwarding. Tuttavia, i pacchetti di risposta in entrata devono corrispondere all'indirizzo IP, al protocollo e alla porta di destinazione della regola di forwarding. Per ulteriori informazioni, consulta Percorsi per i bilanciatori del carico di rete passthrough esterni regionali e il forwarding del protocollo esterno esterno.

Questo percorso di connettività internet da una VM dell'istanza di destinazione è il comportamento predefinito previsto dalle regole firewall implicite di Google Cloud's . Tuttavia, se hai dubbi sulla sicurezza di lasciare aperto questo percorso, puoi utilizzare regole firewall in uscita mirate per bloccare il traffico in uscita non richiesto verso internet.

Limitazioni

Riferimento API e gcloud

Per le regole di forwarding, consulta quanto segue:

Per le istanze di destinazione, consulta quanto segue:

Prezzi

Per informazioni sui prezzi, consulta Prezzi di rete: Cloud Load Balancing.

Quote e limiti

Per le quote sulle regole di forwarding per il forwarding del protocollo, consulta Quote e limiti: regole di forwarding.

Passaggi successivi