Unità massima di trasmissione

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

Dimensioni MTU valide della rete VPC

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

Comunicazione tra VM Google Cloud all'interno di reti VPC

Quando le VM di invio e ricezione utilizzano la stessa rete VPC o reti VPC con peering con MTU identici, è possibile inviare pacchetti IP fino alla dimensione MTU tra le due VM, se le interfacce di entrambe le VM sono configurate per utilizzare il MTU della rete VPC.

Per evitare problemi di mancata corrispondenza dell'MTU, ti consigliamo di utilizzare lo stesso MTU per tutte le reti VPC collegate. Sebbene questa sia la procedura consigliata, non è necessario avere MTU identici tra le reti VPC collegate. Per informazioni dettagliate su come i protocolli gestiscono le situazioni in cui esiste una mancata corrispondenza dell'MTU tra le reti VPC, consulta MTU non corrispondenti, limitazione MSS, rilevamento MTU del percorso.

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

  • Un indirizzo IPv4 interno regionale in un intervallo di indirizzi IPv4 primario o secondario della subnet, inclusi gli intervalli di indirizzi IPv4 privati e gli intervalli di indirizzi IPv4 pubblici utilizzati privatamente, utilizzati da queste risorse di destinazione:
    • L'indirizzo IPv4 interno principale dell'interfaccia di rete (NIC) di una VM di destinazione.
    • Un indirizzo IPv4 interno in un intervallo IP alias della NIC di una VM di destinazione.
    • Un indirizzo IPv4 interno di una regola di forwarding interna per il forwarding 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 dall'intervallo di indirizzi IPv6 /96 assegnato alla NIC di una VM a doppio stack di destinazione.
    • Un indirizzo IPv6 dell'intervallo di indirizzi IPv6 /96 di una regola di inoltro interna per il forwarding 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 utilizzando route di subnet o route di subnet di peering all'interno della rete VPC:
    • Un indirizzo IPv6 dall'intervallo di indirizzi IPv6 /96 assegnato alla NIC di una VM a doppio stack di destinazione.
    • Un indirizzo IPv6 dell'intervallo di indirizzi IPv6 /96 di una regola di inoltro esterno per l'inoltro del protocollo o per un bilanciatore del carico di rete passthrough esterno.

I seguenti percorsi VM-to-VM vengono trattati nello stesso modo delle comunicazioni con destinazioni esterne a una rete VPC:

  • Se la destinazione del pacchetto è un indirizzo IPv4 esterno della NIC di una VM Google Cloud di destinazione.
  • 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 inoltro per l'inoltro del protocollo
  • Se la destinazione del pacchetto è un indirizzo IPv6 esterno della NIC di una VM Google Cloud, di un bilanciatore del carico di rete passthrough esterno o di 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 di destinazione non si trovano nella stessa rete VPC della VM mittente né in una rete VPC collegata alla rete VPC della VM mittente tramite il peering di rete VPC.

Comunicazione con destinazioni esterne a una rete VPC

Google Cloud elabora i pacchetti inviati a destinazioni esterne alla rete VPC della VM mittente, come mostrato nella tabella seguente. Le destinazioni esterne alla rete VPC di una VM mittente includono indirizzi IP indirizzabili pubblicamente per le risorse esterne a Google Cloud e indirizzi IP esterni utilizzabili dai clienti all'interno di Google Cloud.

Poiché in genere internet utilizza un MTU di 1500 byte, mantenere la dimensione del pacchetto IP inferiore o uguale a 1500 byte in genere evita la perdita di pacchetti correlata all'MTU.

Situazione Comportamento
Pacchetti TCP SYN e SYN-ACK Se necessario, Google Cloud esegue il capping MSS, modificando il valore MSS per assicurarsi che i pacchetti rientrino nell'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.
Pacchetto IP più grande di 1600 byte Google Cloud elimina il pacchetto e invia un messaggio di frammentazione necessaria (ICMP su IPv4) o di pacchetto troppo grande (ICMPv6) sia quando il bit DF è attivo sia quando è disattivato.

Comunicazione con le API e i servizi Google

Le VM che utilizzano qualsiasi dimensione MTU valida della rete VPC possono inviare pacchetti ad API e servizi Google, ad esempio utilizzando Accesso privato Google e Private Service Connect per le API di Google. I dettagli riportati 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 verso le API e i servizi Google descritto in questa sezione è implementato dai Google Front End (GFE). Questi GFE utilizzano 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 il cui MTU non corrisponde a quello del GFE, la dimensione del segmento viene negoziata utilizzando l'annuncio MSS TCP come descritto in MTU non corrispondenti, limitazione MSS, rilevamento MTU del percorso.

Sorgente del pacchetto Destinazione del pacchetto

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

Un indirizzo IPv4 esterno assegnato alla NIC della VM utilizzando una configurazione di accesso NAT 1:1: in questa situazione, Google Cloud esegue il NAT 1:1 in uscita, convertendo un indirizzo IPv4 interno principale di origine originale in un indirizzo IPv4 esterno di origine specificato nella configurazione di 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 le API e i servizi Google
Indirizzo IPv6 esterno o interno, per le 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 ha sia un MTU del gateway per i pacchetti incapsulati sia un MTU del payload per i pacchetti prima e dopo l'incapsulamento.

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

Comunicazione tramite i collegamenti Cloud Interconnect (VLAN)

Ti consigliamo di utilizzare lo stesso MTU per tutti i collegamenti VLAN connessi alla stessa rete VPC e di impostare lo stesso valore per l'MTU della rete VPC. Per informazioni dettagliate sugli MTU collegamento VLAN di Cloud Interconnect, consulta MTU di Cloud Interconnect.

Supporto dei frame jumbo

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

Prodotto o funzionalità Supporto dei frame jumbo
Compute Engine
Cloud Interconnect
Cloud VPN No
API di Google No

VM e impostazioni MTU

Come best practice, associa l'MTU della NIC di una VM all'MTU della rete VPC a cui è collegata la NIC:

  • Ogni MTU NIC per una VM Linux basata su un'immagine del sistema operativo pubblico viene impostato automaticamente sul rispettivo MTU della rete VPC utilizzando l'opzione DHCP 26.

  • Ogni MTU della NIC per una VM Windows basata su un'immagine del sistema operativo pubblico è configurato con un MTU fisso di 1,460 byte. Se modifichi l'MTU di una rete VPC contenente VM Windows basate su immagini del sistema operativo pubblico, devi modificare l'MTU per la VM Windows.

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

  • Se una VM ha più interfacce di rete, imposta l'MTU di ogni NIC sul valore MTU della rete VPC corrispondente.

  • Se un MTU della NIC deve essere diverso dall'MTU della rete VPC, impostalo su un valore inferiore a quello della rete VPC. La diminuzione forzata dell'MTU della NIC è vantaggiosa per alcuni scenari di reti avanzate.

Modificare la MTU di una rete VPC

Se modifichi il valore MTU di una rete VPC con VM in esecuzione, tieni presente le seguenti considerazioni:

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

  • Se aumenti l'MTU della rete VPC, le VM in esecuzione che utilizzano la rete VPC non ne trarranno vantaggio finché non verranno arrestate e riavviate. Fino a quando ogni VM non viene arrestata e riavviata, la VM continua a utilizzare il valore MTU precedente (inferiore).

Per le istruzioni, vedi Modificare l'impostazione MTU di una rete VPC.

Impostazioni GKE e MTU

L'MTU selezionato per un'interfaccia del pod dipende dall'interfaccia di rete del contenitore (CNI) utilizzata dai nodi del cluster e dall'impostazione MTU VPC sottostante. Per ulteriori informazioni, consulta Pod.

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

CNI MTU GKE Standard
kubenet 1460 Predefinito
kubenet
(GKE versione 1.26.1 e successive)
Ereditato Predefinito
Calico 1460

Attivato utilizzando --enable-network-policy.

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

netd Ereditato Attivata utilizzando una delle seguenti opzioni:
GKE Dataplane V2 Ereditato

Attivato utilizzando --enable-dataplane-v2.

Per maggiori dettagli, consulta Utilizzare GKE Dataplane V2.

MTU non corrispondenti, limitazione MSS, rilevamento MTU del percorso

Questa sezione descrive in che modo i protocolli TCP e non TCP gestiscono le MTU non corrispondenti.

Protocollo TCP

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

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

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

    • L'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.

  • Dimensioni massime del segmento TCP (MSS) effettive del server: la quantità più grande di dati trasmissibili in un segmento TCP inviato da un server a un client è il valore minimo dei seguenti due valori:

    • Il valore del campo MSS nel pacchetto SYN ricevuto dal server dal client durante l'instaurazione della connessione TCP.

    • L'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.

Limitazione MSS TCP

Il capping MSS TCP è un processo in cui un dispositivo di rete tra un client e un server cambia i valori MSS nei pacchetti SYN e SYN-ACK durante l'instradamento dei pacchetti tra il client e il server. Google Cloud utilizza il capping 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 capping MSS. Per ulteriori informazioni, consulta la sezione Incapsulamento e lavorazione dei pacchetti nella documentazione di Cloud VPN e MTU di Cloud Interconnect.

Le reti VPC non eseguono il capping MSS per i 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 particolare attenzione quando sono coinvolti due diversi MTU della rete VPC. È responsabilità di un sistema di invio emettere pacchetti che rientrano nell'MTU della sua interfaccia di rete, nell'MTU dell'interfaccia di rete del sistema di ricezione e nell'MTU di tutte le reti intermedie. Google Cloud non esegue la frammentazione IP per i pacchetti indirizzati dagli hop successivi all'interno di una rete VPC.

Quando un pacchetto IP è troppo grande per essere inviato, ad esempio quando supera l'MTU della rete VPC in cui si trova la NIC della VM di destinazione, Google Cloud lo elimina. Se il pacchetto ha il bit DF impostato, Google Cloud invia anche un messaggio di frammentazione necessaria (ICMP su IPv4) o di pacchetto troppo grande (ICMPv6) al mittente.

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

  • Se l'MTU della rete VPC è inferiore a 1600 byte e il pacchetto inviato supera l'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 Fragmentation Needed o Packet Too Big sono necessari per una VM che invia pacchetti per utilizzare il Path MTU Discovery (PMTUD). Per illustrare il funzionamento di PMTUD, prendi in considerazione il seguente esempio con due VM in reti VPC diverse connesse tramite peering di rete VPC:

  • La VM di invio ha una scheda NIC in una rete VPC il cui MTU è di 8896 byte.
  • La VM di ricezione ha una NIC in una rete VPC il cui MTU è di 1460 byte.
  • La VM di invio emette un pacchetto IP di 8000 byte il cui bit Non frammenta (DF) è impostato. Poiché il pacchetto è troppo grande per essere consegnato alla VM di destinazione, Google Cloud invia un messaggio di frammentazione richiesta o pacchetto troppo grande alla VM di invio. Questo messaggio indica la dimensione massima possibile 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 del pacchetto IP quando invia pacchetti successivi alla VM di ricezione.

PMTUD presenta 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 regole firewall VPC o regole nei criteri firewall di autorizzazione in entrata in modo che ICMP (per IPv4) o ICMPv6 (per IPv6) siano consentiti da origini corrispondenti alle destinazioni dei pacchetti originali. Per semplificare la configurazione del firewall, valuta la possibilità di consentire ICMP e ICMPv6 da tutte le origini.
  • Le regole di inoltro per il bilanciatore del carico di rete passthrough interno e per l'inoltro del protocollo interno devono utilizzare il protocollo L3_DEFAULT in modo da elaborare sia ICMP per PMTUD sia il protocollo utilizzato dal pacchetto originale.

Passaggi successivi

Provalo

Se non conosci Google Cloud, crea un account per valutare le prestazioni di 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