Unità massima di trasmissione

L'unità massima di trasmissione (MTU) è la dimensione, in byte, del pacchetto IP più grande possibile, comprese intestazioni IP, intestazioni di protocollo di livello 4 e dati di livello 4, che possono essere contenuti in un frame Ethernet.

Dimensioni MTU della rete VPC valide

Le reti Virtual Private Cloud (VPC) utilizzano una MTU predefinita di 1460 byte. Puoi impostare la MTU di una rete VPC su qualsiasi valore compreso tra 1300 byte e 8896 byte (inclusi). Le dimensioni MTU personalizzate più comuni sono 1500 byte (Ethernet standard) o 8896 byte (il massimo possibile). Google consiglia di configurare la MTU per l'interfaccia di rete (NIC) di ogni istanza di macchina virtuale (VM) in modo che corrisponda alla MTU della rete VPC a cui è connessa. Per ulteriori informazioni, consulta Impostazioni di VM e MTU.

Comunicazione tra le VM Google Cloud all'interno delle reti VPC

Quando le VM vengono inviate e ricevute, utilizzano la stessa rete VPC o le reti VPC in peering che hanno MTU identiche, ma è possibile inviare pacchetti IP fino alla dimensione delle MTU tra le due VM, se le interfacce di entrambe le VM sono configurate per utilizzare l'MTU della rete VPC.

Per evitare problemi di mancata corrispondenza delle MTU, Google consiglia di utilizzare la stessa MTU per tutte le reti VPC connesse. Anche se questa è la best practice consigliata, non devi necessariamente avere MTU identiche tra le reti VPC connesse. Per informazioni dettagliate su come i protocolli gestiscono le situazioni in cui c'è una mancata corrispondenza delle MTU tra le reti VPC, consulta MTU non corrispondenti, blocco MSS, rilevamento della MTU del percorso.

Dal punto di vista di una VM di invio, i percorsi alle seguenti destinazioni rappresentano il traffico da VM a VM instradato all'interno di una rete VPC:

  • Un indirizzo IPv4 interno a livello di regione in un intervallo di indirizzi IPv4 secondari IPv4 o di subnet principali, inclusi intervalli di indirizzi IPv4 privati e intervalli di indirizzi IPv4 pubblici utilizzati privatamente, utilizzati da queste risorse di destinazione:
    • L'indirizzo IPv4 interno primario dell'interfaccia di rete (NIC) di una VM ricevente.
    • Un indirizzo IPv4 interno in un intervallo IP alias del NIC di una VM ricevente.
    • Un indirizzo IPv4 interno di una regola di forwarding interno per l'inoltro del protocollo o per un bilanciatore del carico di rete passthrough interno.
  • Intervalli di indirizzi di subnet IPv6 interni utilizzati da queste risorse di destinazione:
    • Un indirizzo IPv6 nell'intervallo di indirizzi IPv6 /96 assegnato a un doppio stack che riceve il NIC della VM.
    • Un indirizzo IPv6 nell'intervallo di indirizzi IPv6 /96 di una regola di forwarding interno per l'inoltro del protocollo o per un bilanciatore del carico di rete passthrough interno.
  • Intervalli di indirizzi di subnet IPv6 esterni utilizzati da queste risorse di destinazione quando i pacchetti vengono instradati tramite route di subnet o route di subnet in peering all'interno della rete VPC:
    • Un indirizzo IPv6 nell'intervallo di indirizzi IPv6 /96 assegnato a un doppio stack che riceve il NIC della VM.
    • Un indirizzo IPv6 nell'intervallo di indirizzi IPv6 /96 di una regola di forwarding esterno per il forwarding del protocollo o per un bilanciatore del carico di rete passthrough esterno.

I seguenti percorsi da VM a VM vengono trattati allo stesso modo di Comunicazione a destinazioni all'esterno di una rete VPC:

  • Se la destinazione del pacchetto è un indirizzo IPv4 esterno di un NIC ricevente della VM Google Cloud.
  • Se la destinazione del pacchetto è un indirizzo IPv4 esterno di un bilanciatore del carico di rete passthrough esterno.
  • Se la destinazione del pacchetto è un indirizzo IPv4 esterno di una regola di forwarding per il forwarding del protocollo
  • Se la destinazione del pacchetto è un indirizzo IPv6 esterno del NIC di una VM Google Cloud, un bilanciatore del carico di rete passthrough esterno o una regola di forwarding per l'inoltro del protocollo esterno e la route applicabile nella rete VPC utilizza un hop successivo del gateway internet predefinito. In questo scenario, le VM riceventi non si trovano nella stessa rete VPC della VM di invio né in una rete VPC connessa alla rete VPC della VM di invio tramite il peering di rete VPC.

Comunicazione con destinazioni esterne a una rete VPC

Google Cloud elabora i pacchetti inviati a destinazioni al di fuori della rete VPC della VM di invio come mostrato nella tabella seguente. Le destinazioni al di fuori della rete VPC di una VM di invio includono indirizzi IP instradabili pubblicamente per risorse esterne a Google Cloud e indirizzi IP esterni utilizzabili dal cliente all'interno di Google Cloud.

Poiché internet utilizza in genere una MTU di 1500 byte, mantenere la dimensione del pacchetto IP a 1500 byte o meno di solito evita la perdita di pacchetti correlata alla MTU.

Situazione Comportamento
Pacchetti SYN e SYN-ACK TCP Google Cloud esegue il blocco MSS se necessario, modificando l'MSS per garantire che i pacchetti rientrino nella MTU.
MTU del pacchetto IP compreso tra 1300 e 1600 byte (inclusi) Google Cloud non apporta modifiche al pacchetto, ad eccezione dei pacchetti SYN e SYN-ACK come discusso nella prima riga.
Un pacchetto IP più grande di 1600 byte Google Cloud elimina il pacchetto e invia un messaggio ICMP (ICMP su IPv4) o Packet Too Big (ICMPv6) sia quando il bit DF è attivo sia quando il bit DF è disattivato.

Comunicazione con le API e i servizi Google

Le VM che utilizzano qualsiasi dimensione MTU della rete VPC valida possono inviare pacchetti alle API e ai servizi Google, compreso l'utilizzo dell'accesso privato Google e di Private Service Connect per le API Google. I dettagli in questa sezione si applicano anche alle risorse on-premise che inviano pacchetti alle API e ai servizi Google utilizzando l'accesso privato Google per gli host on-premise.

Il percorso del traffico alle API e ai servizi Google descritto in questa sezione è implementato da Google Front End (GFE). Questi GFE usano MTU fissi non configurabili. Il traffico da Google Cloud alle API e ai servizi Google utilizza sempre il protocollo TCP: se una VM si connette alle API e ai servizi Google da una rete VPC la cui MTU non corrisponde alla MTU del GFE, la dimensione del segmento viene negoziata utilizzando la pubblicità MSS TCP, come descritto in MTU non corrispondenti, blocco MSS, rilevamento MTU del percorso.

Origine pacchetto Destinazione pacchetto

Qualsiasi indirizzo IPv4 interno: indirizzo IPv4 interno primario o indirizzo IPv4 interno da un intervallo IP alias del NIC della VM

Un indirizzo IPv4 esterno assegnato al NIC della VM utilizzando una configurazione di accesso NAT 1-1: in questa situazione, Google Cloud esegue NAT 1-1 in uscita, convertendo un indirizzo IPv4 interno principale di origine originale in un indirizzo IPv4 esterno di origine specificato nella configurazione dell'accesso.

  • Indirizzi IPv4 delle API e dei servizi Google per i domini predefiniti
  • 199.36.153.4/30 (restricted.googleapis.com)
  • 199.36.153.8/30 (private.googleapis.com)
  • Endpoint Private Service Connect per API e servizi Google
Indirizzo IPv6 esterno o interno, per VM a doppio stack
  • Indirizzi IPv6 delle API e dei servizi Google per i domini predefiniti
  • 2600:2d00:0002:1000::/64 (restricted.googleapis.com)
  • 2600:2d00:0002:2000::/64 (private.googleapis.com)

Comunicazione tramite i tunnel Cloud VPN

Cloud VPN prevede sia una MTU gateway per i pacchetti incapsulati, sia una MTU di payload per i pacchetti prima e dopo l'incapsulamento.

Per valori precisi di MTU del payload e altre informazioni sulla MTU di Cloud VPN, consulta le considerazioni sulle MTU nella documentazione di Cloud VPN.

Comunicazione tramite collegamenti di Cloud Interconnect (VLAN)

Google consiglia di utilizzare la stessa MTU per tutti i collegamenti VLAN collegati alla stessa rete VPC e di impostare la MTU della rete VPC sullo stesso valore. Per maggiori dettagli sulle MTU per i collegamento VLAN di Cloud Interconnect, consulta MTU Cloud Interconnect.

Supporto per Jumbo frame

La seguente tabella riassume il supporto di jumbo frame tra prodotti e funzionalità Google Cloud:

Prodotto o funzionalità Supporto per Jumbo frame
Compute Engine
Cloud Interconnect
Cloud VPN No
Servizi supportati dalle API di Google No

Impostazioni di VM e MTU

Come best practice, associa l'MTU del NIC di una VM alle MTU della rete VPC a cui è connesso il NIC:

  • Ogni MTU del NIC per una VM Linux basata su un'immagine del sistema operativo fornita da Google viene impostata automaticamente sulla rispettiva MTU della rete VPC utilizzando l'opzione 26 DHCP.

  • Ogni MTU del NIC per una VM Windows basata su un'immagine del sistema operativo fornita da Google è configurata con un MTU fisso di 1,460 byte. Se modifichi la MTU di una rete VPC che contiene VM Windows in base a immagini del sistema operativo fornite da Google, devi modificare la MTU della VM Windows.

  • Se utilizzi immagini del sistema operativo guest personalizzate, devi configurare le MTU NIC o verificare che il sistema operativo guest accetti le MTU della rete VPC utilizzando l'opzione 26 DHCP.

  • Se una VM ha più interfacce di rete, imposta ogni MTU del NIC sulla rispettiva MTU della rete VPC.

  • Se una MTU del NIC deve essere diversa dalla MTU della rete VPC, impostala su un valore inferiore a quello della rete VPC. La riduzione forzata della MTU del NIC è vantaggiosa per alcuni scenari di networking avanzati.

Modifica della MTU di una rete VPC

Se modifichi la MTU di una rete VPC con VM in esecuzione, tieni presente quanto segue:

  • Se riduci la MTU della rete VPC, devi interrompere e avviare ogni VM. Il riavvio di una VM dal sistema operativo guest non aggiorna la relativa MTU.

  • Se aumenti la MTU della rete VPC, le VM in esecuzione che utilizzano la rete VPC non sfruttano l'aumento della MTU della rete VPC fino a quando le VM non vengono arrestate e avviate. Fino a quando ogni VM non viene arrestata e riavviata, la VM continua a utilizzare il valore MTU precedente (inferiore).

Per istruzioni, consulta Modificare l'impostazione della MTU di una rete VPC.

Impostazioni di GKE e MTU

La MTU selezionata per l'interfaccia di un pod dipende dall'interfaccia di rete del container (CNI) utilizzata dai nodi del cluster e dall'impostazione MTU del VPC sottostante. Per maggiori informazioni, vedi Pod.

Il valore MTU dell'interfaccia del pod è 1460 o ereditato dall'interfaccia principale del nodo.

CNI MTU GKE Standard
Kubernetes 1460 Predefinita
kubenet
(GKE 1.26.1 e versioni successive)
Ereditato Predefinita
Calico 1460

Attivazione tramite --enable-network-policy.

Per maggiori dettagli, consulta Controllare la comunicazione tra pod e servizi utilizzando i criteri di rete.

netd Ereditato Attivazione tramite uno dei seguenti elementi:
GKE Dataplane V2 Ereditato

Attivazione tramite --enable-dataplane-v2.

Per maggiori dettagli, consulta Utilizzo di GKE Dataplane V2.

MTU non corrispondenti, blocco MSS, rilevamento MTU del percorso

Questa sezione descrive come i protocolli TCP e non TCP gestiscono MTU non corrispondenti.

protocollo TCP

Il protocollo TCP gestisce automaticamente le corrispondenze errate delle MTU. Sia il client che il server calcolano singolarmente i propri valori di dimensione massima del segmento (MSS) TCP effettiva ogni volta che viene aperta una connessione TCP. Client e server non devono essere d'accordo su un valore MSS effettivo identico.

  • Dimensione massima del segmento (MSS) TCP effettiva del client: la più grande quantità di dati trasmissibili in un segmento TCP inviato da un client a un server è la minima dei due valori seguenti:

    • Il valore del campo MSS nel pacchetto SYN-ACK ricevuto dal client dal server durante la creazione della connessione TCP.

    • La MTU dell'interfaccia di rete del client, meno 40 byte. I 40 byte sottratti includono 20 byte per l'intestazione IP e 20 byte per l'intestazione TCP di base.

  • Dimensione massima del segmento TCP (MSS) effettiva del server: la quantità massima di dati trasmissibili in un segmento TCP inviato da un server a un client è la minima dei due valori seguenti:

    • Il valore del campo MSS nel pacchetto SYN ricevuto dal server dal client durante la creazione della connessione TCP.

    • La MTU dell'interfaccia di rete del server, meno 40 byte. I 40 byte sottratti includono 20 byte per l'intestazione IP e 20 byte per l'intestazione TCP di base.

Blocco TCP MSS

Il blocco MSS TCP è un processo in cui un dispositivo di rete tra client e server modifica i valori MSS nei pacchetti SYN e SYN-ACK mentre instrada i pacchetti tra il client e il server. Google Cloud utilizza il blocco MSS ogni volta che invia pacchetti a destinazioni esterne a una rete VPC.

Anche i tunnel Cloud VPN e i collegamenti VLAN di Cloud Interconnect utilizzano il blocco MSS. Per ulteriori informazioni, consulta Incapsulamento ed elaborazione dei pacchetti nella documentazione di Cloud VPN e MTU di Cloud Interconnect.

Le reti VPC non eseguono il blocco MSS dei pacchetti instradati dagli hop successivi all'interno di una rete VPC perché il protocollo TCP stesso è sufficiente.

Protocolli non TCP

Altri protocolli, come UDP, richiedono un'attenzione particolare quando sono coinvolti due diversi MTU di rete VPC. È responsabilità di un sistema di invio emettere i pacchetti che rientrano nella sua MTU dell'interfaccia di rete, la MTU dell'interfaccia di rete del sistema ricevente e la MTU di tutte le reti intermedie. Google Cloud non esegue la frammentazione IP per i pacchetti instradati dagli hop successivi all'interno di una rete VPC.

Quando un pacchetto IP è troppo grande per essere consegnato (ad esempio, se il pacchetto supera la MTU della rete VPC in cui si trova il NIC della VM ricevente), Google Cloud elimina il pacchetto. Se per il pacchetto è impostato il bit DF, Google Cloud invia anche un messaggio ICMP (Frammentation Requested) (ICMP su IPv4) o Packet Too Big (ICMPv6) al mittente.

Google Cloud invia un messaggio "Frammentazione necessaria o pacchetto troppo grande" nelle seguenti circostanze, anche quando un bit di DF disattivato:

  • Se l'MTU della rete VPC è inferiore a 1600 byte e il pacchetto inviato supera la MTU della rete VPC.
  • Se l'MTU della rete VPC è pari o superiore a 1600 byte e il pacchetto inviato supera i 1600 byte.

I messaggi ICMP Fragmentazione necessaria o Pacchetto troppo grande sono necessari affinché una VM che invia pacchetti possa utilizzare il rilevamento MTU del percorso (PMTUD). Per spiegare come funziona PMTUD, considera l'esempio seguente con due VM in reti VPC diverse collegate tramite peering di rete VPC:

  • La VM di invio ha un NIC in una rete VPC la cui MTU è di 8896 byte.
  • La VM ricevente ha un NIC in una rete VPC la cui MTU è 1460 byte.
  • La VM di invio emette un pacchetto IP da 8000 byte di cui è impostato il bit Don't Fragment (DF). Poiché il pacchetto è troppo grande per essere consegnato alla VM ricevente, Google Cloud invia un messaggio Fragmentazione richiesta o Pacchetto troppo grande alla VM mittente. Questo messaggio indica la dimensione massima del pacchetto IP che il mittente può utilizzare quando tenta di ritrasmettere i pacchetti per la connessione.
  • Il sistema operativo della VM di invio utilizza queste informazioni per ridurre le dimensioni dei pacchetti IP durante l'invio di pacchetti successivi alla VM ricevente.

PMTUD ha i seguenti requisiti aggiuntivi perché i pacchetti Fragmentation needed o Packet Too Big generati da PMTUD utilizzano il protocollo ICMP e hanno origini che corrispondono alla destinazione di un pacchetto originale:

  • Devi configurare le regole firewall VPC o le regole nei criteri firewall di autorizzazione in entrata in modo che ICMP (per IPv4) o ICMPv6 (per IPv6) siano consentiti da origini che corrispondono alle destinazioni dei pacchetti originali. Per semplificare la configurazione del firewall, valuta la possibilità di autorizzare ICMP e ICMPv6 da tutte le origini.
  • Le regole di forwarding per il bilanciatore del carico di rete passthrough interno e il forwarding del protocollo interno devono utilizzare il protocollo L3_DEFAULT in modo che elaborino sia l'ICMP per PMTUD sia il protocollo utilizzato dal pacchetto originale.

Passaggi successivi

Provalo

Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni del VPC in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Prova VPC gratuitamente