Interfacce di rete multiple

Questa pagina fornisce una panoramica di più interfacce di rete in un'istanza della macchina virtuale (VM), che include il loro funzionamento e configurazioni di esempio. Per informazioni sulla creazione di configurazioni che utilizzano più interfacce, consulta Creare VM con più interfacce di rete.

Le VM con più controller di interfaccia di rete sono chiamate VM multi-NIC.

Per impostazione predefinita, le reti Virtual Private Cloud (VPC) sono domini di rete privati isolati.Google Cloud Le reti hanno un ambito globale e contengono subnet regionali. Le istanze VM all'interno di una rete VPC possono comunicare tra loro utilizzando indirizzi IP interni, a condizione che le regole firewall lo consentano. Tuttavia, le comunicazioni verso gli indirizzi IP interni non sono consentite tra le reti, a meno che non vengano impostati meccanismi come il peering di reti VPC o Cloud VPN.

Ogni istanza in una rete VPC ha un'interfaccia di rete predefinita. Quando configuri un'interfaccia di rete, seleziona una rete VPC e una subnet all'interno di quella rete VPC a cui connettere l'interfaccia. Puoi creare interfacce di rete aggiuntive collegate alle tue VM, ma ogni interfaccia deve essere collegata a una rete VPC diversa. Più interfacce di rete ti consentono di creare configurazioni in cui un'istanza si connette direttamente a diverse reti VPC.

In genere, potresti richiedere più interfacce se vuoi configurare un'istanza come appliance di rete che esegue il bilanciamento del carico, il rilevamento e la prevenzione delle intrusioni (IDS/IPS), il firewall per applicazioni web (WAF) o l'ottimizzazione della WAN tra le reti. Più interfacce di rete sono utili anche quando le applicazioni in esecuzione in un'istanza richiedono la separazione del traffico, ad esempio il traffico del piano dati dal traffico del piano di gestione.

Ogni interfaccia di una VM è interessata dall'MTU della rete collegata. Per maggiori informazioni sull'MTU dell'interfaccia, consulta Unità massima di trasmissione.

Casi d'uso

Utilizza più interfacce di rete quando una singola istanza deve accedere a più di una rete VPC, ma non vuoi connettere entrambe le reti direttamente.

  • Funzione di rete e sicurezza: più interfacce di rete attivano funzioni di appliance di rete virtualizzate come bilanciatori del carico, server NAT (Network Address Translation) e server proxy configurati con più interfacce di rete. Per maggiori dettagli, vedi Esempio 1: appliance virtuali di Networking e sicurezza.

  • Isolamento del perimetro (noto anche come isolamento della DMZ): una best practice importante nelle architetture di rete a più livelli è isolare i servizi rivolti al pubblico da una rete interna e dai relativi servizi. Utilizza più interfacce di rete per creare configurazioni in cui sono presenti interfacce di rete separate nell'istanza, una delle quali accetta il traffico pubblico e l'altra gestisce il traffico privato di backend con controlli di accesso più restrittivi.

    Tutte le risorse raggiungibili da internet devono essere separate dalla rete interna e dai relativi servizi. Ciò limita drasticamente l'ambito e i danni che una violazione della sicurezza può causare. Ad esempio, puoi inserire una seconda interfaccia di rete su ogni server web che si connette a una rete di livello intermedio in cui risiede un server di applicazioni. Il server delle applicazioni può anche avere due caselle su una rete di backend in cui risiede il server di database. Ogni istanza con due caselle principali riceve ed elabora le richieste sul frontend, avvia una connessione al backend e invia le richieste ai server sulla rete di backend.

    Configurando interfacce separate, una rivolta al pubblico e un'altra al privato, puoi applicare regole e controlli di accesso del firewall separati a ogni interfaccia e applicare funzioni di sicurezza alle comunicazioni dal dominio pubblico a quello privato. Per ulteriori informazioni, consulta Esempio 2: utilizzo di appliance di terze parti in uno scenario di rete VPC condivisa.

Specifiche

  • Puoi configurare un'interfaccia di rete solo quando crei un'istanza.
  • Se crei un'istanza con più interfacce di rete, ogni interfaccia deve essere connessa a una rete VPC diversa. Le reti possono essere reti VPC autonome o reti VPC condiviso.

    Tuttavia, le reti VPC create con un profilo di rete RDMA ti consentono di collegare NIC RDMA alla stessa rete, dove ogni NIC è collegata a una subnet diversa.

  • Un'interfaccia di rete deve connettersi a una subnet con un intervallo di indirizzi IP che non si sovrapponga all'intervallo di indirizzi IP di un'altra interfaccia nella stessa istanza.

  • Se vuoi creare una VM collegata a subnet in più reti VPC, tutte le reti e le subnet devono essere esistenti prima di creare l'istanza. Per ulteriori informazioni sulla creazione di reti e subnet, consulta Creare e gestire reti VPC.

  • Non puoi eliminare un'interfaccia di rete senza eliminare l'istanza a cui è collegata.

  • Ogni istanza deve avere almeno un'interfaccia di rete: nic0. Il numero massimo di interfacce varia a seconda del tipo di macchina dell'istanza.

  • Puoi configurare le interfacce VM solo con indirizzi IPv4, con indirizzi IPv4 e IPv6 (doppio stack) o solo con indirizzi IPv6 (anteprima). Il tipo di impilamento di un'interfaccia determina gli indirizzi IP che può avere e il tipo di subnet a cui può connettersi. Per maggiori informazioni, consulta Tipi di stack.

  • Il server DHCP diGoogle Cloudinvia una route predefinita (RFC 3442, "classless static route") solo all'interfaccia di rete predefinita, nic0. Se è necessaria una route predefinita su un'altra interfaccia di rete, devi configurare il routing dei criteri nell'istanza. Per un esempio di come eseguire questa operazione, consulta il seguente tutorial: Configurare il routing per un'interfaccia aggiuntiva.

  • Tutte le interfacce di rete della VM devono connettersi a subnet nelle reti che si trovano nello stesso progetto della VM o a una rete VPC condivisa con il progetto.

Tipi di stack

Quando crei un'interfaccia di rete, devi specificare un tipo di stack. Il tipo di pila di un'interfaccia determina gli indirizzi IP che può avere e il tipo di subnet a cui può connettersi. Per ulteriori informazioni, consulta la seguente tabella:

Tipo di stack di interfaccia Indirizzi IP Tipi di subnet compatibili
Solo IPv4 (stack singolo)
  • Un indirizzo IPv4 interno (obbligatorio)
  • Un indirizzo IPv4 esterno (facoltativo)
Subnet solo IPv4 e a doppio stack
IPv4 e IPv6 (stack doppio)
  • Un indirizzo IPv4 interno (obbligatorio)
  • Un indirizzo IPv4 esterno (facoltativo)
  • Un intervallo di indirizzi IPv6 /96, interno o esterno, ma non entrambi (obbligatorio)
Subnet a doppio stack
Solo IPv6 (stack singolo) (anteprima)
  • Un intervallo di indirizzi IPv6 /96, interno o esterno, ma non entrambi (obbligatorio)
Subnet solo IPv6 (anteprima) e a doppio stack

Allocazione degli indirizzi IP dell'interfaccia di rete

Per le interfacce con indirizzi IPv4:

  • Devi configurare ogni interfaccia di rete con un indirizzo IPv4 interno principale allocato dall'intervallo di indirizzi IPv4 principale di una subnet. L'indirizzo interno principale assegnato a ciascuna delle interfacce in una singola istanza deve essere diverso.
  • (Facoltativo) Puoi configurare ciascuna delle interfacce di rete con un indirizzo IPv4 esterno univoco. Gli indirizzi esterni possono essere temporanei o riservati.

Per le interfacce con indirizzi IPv6:

  • Devi assegnare un intervallo di indirizzi IPv6 di /96 dall'intervallo di indirizzi IPv6 di una sottorete. Il primo indirizzo IPv6 nell'intervallo (/128) è configurato sull'interfaccia. Per ulteriori informazioni, consulta Assegnazione degli indirizzi IPv6.
  • L'intervallo di indirizzi IPv6 /96 può essere interno o esterno, a seconda del tipo di accesso IPv6 della subnet.

Numero massimo di interfacce di rete

Per la maggior parte dei tipi di macchine, il numero di interfacce di rete virtuali varia in base al numero di vCPU con un minimo di 2 e un massimo di 10.

Utilizza la seguente tabella per determinare quante interfacce di rete possono essere collegate a un'istanza:

Numero di vCPU Numero di vNIC
2 o meno 2
4 fino a 4
6 fino a 6
8 o più fino a 8
10 o più fino a 10

Limitazioni

  • Non puoi aggiungere o rimuovere interfacce di rete da una VM esistente.

  • Non puoi utilizzare la console Google Cloud per creare configurazioni con più NIC per i modelli di istanze o i gruppi di istanze. Utilizza invece l'interfaccia a riga di comando gcloud o l'API.

  • Per capire se puoi modificare il tipo di stack dell'interfaccia di una VM, consulta quanto segue:

    • Puoi modificare il tipo di stack di un'interfaccia esistente da solo IPv4 a doppio stack o da doppio stack a solo IPv4.

    • Le interfacce solo IPv6 (Anteprima) sono supportate solo при creazione di nuove VM. Non puoi modificare il tipo di stack di un'interfaccia IPv4 o a doppio stack esistente in solo IPv6.

    • Inoltre, non puoi modificare il tipo di stack di un'interfaccia solo IPv6 in doppio stack o solo IPv4.

  • Un'interfaccia solo IPv6 (anteprima) può avere un solo intervallo di indirizzi interno o esterno in base al tipo di accesso della subnet connessa. Per creare un'istanza solo IPv6 con un indirizzo IP interno ed esterno, devi configurarla con due interfacce.

  • L'IP forwarding è abilitato a livello di VM e non può essere applicato alle singole interfacce.

  • Non puoi configurare più interfacce di rete per le istanze bare metal di Compute Engine, che hanno un massimo di una vNIC.

  • Il numero massimo di vNIC per la serie di macchine A3 è diverso da quello massimo per la maggior parte dei tipi di macchine. Per ulteriori informazioni, consulta la serie di macchine A3.

Esempi di configurazione

Questa sezione esamina diversi esempi comuni di utilizzo di più interfacce di rete.

Esempio 1: appliance virtuali di networking e sicurezza

Le appliance virtuali di rete e sicurezza, come i web application firewall (WAF), i firewall a livello di applicazione di sicurezza e gli acceleratori WAN, sono in genere configurate con più interfacce virtuali. Ognuna delle più interfacce è configurata con il proprio indirizzo IP interno e, facoltativamente, con il proprio indirizzo IP esterno.

La Figura 1 descrive un esempio di configurazione di un firewall a livello di applicazione che controlla il traffico da internet a una rete VPC. Il firewall a livello di applicazione è implementato nelle VM di Compute Engine.

In questo esempio, la route predefinita della VM dell'appliance è stata configurata per utilizzare nic1.

Figura 1. Un'istanza con un'appliance VM ha tre interfacce di rete. Ogni interfaccia è connessa a una subnet in una rete VPC diversa (fai clic per ingrandire).

Provisioning e configurazione delle istanze per l'esempio 1

Di seguito si presume che subnet0, subnet1 e subnet2 esistano già, con intervalli che non si sovrappongono.

Per creare la VM e le interfacce di rete in questo esempio, utilizza il seguente comando:

gcloud compute instances create vm-appliance \
    --network-interface subnet=subnet0,no-address \
    --network-interface subnet=subnet1 \
    --network-interface subnet=subnet2,no-address \
    --machine-type n1-standard-4

Questo comando crea un'istanza con tre interfacce di rete:

  • nic0 è collegato a subnet0 e non ha un indirizzo IP esterno.
  • nic1 è collegato a subnet1 e ha un indirizzo IP esterno effimero.
  • nic2 è collegato a subnet2 e non ha un indirizzo IP esterno.

Esempio 2: utilizzo di appliance di terze parti in uno scenario di rete VPC condiviso

Questa configurazione è utile quando vuoi condividere un unico insieme di appliance di terze parti centralizzati per carichi di lavoro o applicazioni ospitati in progetti diversi. Nella figura 2 sono presenti quattro applicazioni distinte (App1, App2, App3 e App4) ospitate in progetti di servizi diversi. Devi assicurarti che siano protetti per tutto il traffico in entrata da internet e che il traffico in uscita venga controllato e filtrato in un'appliance di terze parti situata in posizione centrale nel progetto host VPC condiviso.

Figura 2. Un'istanza in un progetto host VPC condiviso ospita un'appliance VM. L'istanza ha un'interfaccia di rete per ciascuno dei quattro progetti di servizio e un'altra interfaccia per la rete VPC del perimetro di rete (fai clic per ingrandire).

Esegui il provisioning e la configurazione della VM e delle interfacce di rete per l'esempio 2

Per creare la VM e le interfacce di rete in questo esempio, utilizza il seguente comando:

gcloud compute instances create VM-appliance \
    --network-interface subnet=subnet-perimeter,address='reserved-address' \
    --network-interface subnet=subnet-1,no-address \
    --network-interface subnet=subnet-2,no-address \
    --network-interface subnet=subnet-3,no-address \
    --network-interface subnet=subnet-4,no-address \
    --machine-type=n1-standard-4

Viene creata un'istanza con cinque interfacce di rete:

  • nic0 è collegato a subnet-perimeter, che fa parte di network-perimeter, con un indirizzo statico reserved-address.
  • nic1 è collegato a subnet-1, che fa parte di network-1, senza un indirizzo IP esterno.
  • nic2 è collegato a subnet-2, che fa parte di network-2, senza un indirizzo IP esterno.
  • nic3 è collegato a subnet-3, che fa parte di network-3, senza un indirizzo IP esterno.
  • nic4 è collegato a subnet-4, che fa parte di network-4, senza un indirizzo IP esterno.

Ulteriori dettagli operativi

Più interfacce di rete in un ambiente VPC condiviso

VPC condiviso ti consente di condividere le reti VPC tra i progetti della tua Google Cloud organizzazione.

La Rete VPC condivisa ti consente di creare istanze associate a una rete VPC condivisa ospitata in un progetto host VPC condiviso centralizzato. Per informazioni sulla configurazione delle reti VPC condivise, consulta Eseguire il provisioning di VPC condiviso.

Per creare istanze con una o più interfacce associate alle reti VPC condivise, devi disporre del ruolo Utente di rete Compute (roles/compute.networkUser) nel progetto host VPC condiviso.

Risoluzione DNS con più interfacce di rete

Quando si esegue una query DNS interna con il nome host dell'istanza, viene risolta nell'interfaccia principale (nic0) dell'istanza. Se l'interfaccia nic0 dell'istanza è collegata a una subnet in una rete VPC diversa dalla rete VPC dell'istanza che esegue la query DNS interna, la query non va a buon fine.

I record DNS di Private Compute Engine non vengono generati per interfaccia.

Comportamento DHCP con più interfacce di rete

In una configurazione predefinita con più interfacce, il sistema operativo è configurato per utilizzare DHCP. Il comportamento di DHCP e ARP di ciascuna delle più interfacce è lo stesso di DHCP e ARP in un'istanza con una singola interfaccia.

In un'istanza con più interfacce che utilizza il protocollo DHCP, ogni interfaccia riceve una route per la subnet in cui si trova. Inoltre, l'istanza riceve una singola route predefinita associata all'interfaccia principale eth0. Se non diversamente configurato manualmente, il traffico che lascia un'istanza per qualsiasi destinazione diversa da una subnet con collegamento diretto lascerà l'istanza utilizzando la route predefinita su eth0.

Il comportamento è lo stesso per le interfacce con indirizzi IPv6. L'interfaccia riceve una route per l'intervallo di subnet IPv6 in cui si trova, nonché una singola route IPv6 predefinita.

In questo esempio, l'interfaccia principale eth0 riceve la route predefinita (default via 10.138.0.1 dev eth0) e entrambe le interfacce eth0 e eth1 ricevono le route per le rispettive subnet.

instance-1:~$ ip route
default via 10.138.0.1 dev eth0
10.137.0.0/20 via 10.137.0.1 dev eth1
10.137.0.1 dev eth1 scope link
10.138.0.0/20 via 10.138.0.1 dev eth0
10.138.0.1 dev eth0 scope link

Per ulteriori informazioni, consulta il seguente tutorial: Configurare il routing per un'interfaccia aggiuntiva.

Route statiche personalizzate e più interfacce di rete

Quando un'istanza VM ha più interfacce e un tag di rete, il tag di rete potrebbe non influire su tutte le interfacce della VM. Il tag di rete di una VM influisce su un'interfaccia se quest'ultima si trova in una rete VPC che contiene una route statica con un tag corrispondente.

Ad esempio:

  1. Una VM ha due interfacce: nic0 e nic1. L'interfaccia nic0 si trova in vpc-net-a. L'interfaccia nic1 si trova in vpc-net-b. La VM ha un tag di rete chiamato vpn-ok. Il tag è un attributo dell'istanza, non di un'interfaccia specifica.
  2. La rete vpc-net-a ha una route statica personalizzata con un tag denominato vpn-ok.
  3. La rete vpc-net-b ha una route statica personalizzata con un tag denominato vpn-123.

Questi passaggi numerati corrispondono alla figura 3:

Figura 3. La route statica personalizzata in vpc-net-a influisce su nic0 perché hanno un tag in comune, mentre la route statica personalizzata in vpc-net-b non influisce sunic1 (fai clic per ingrandire).

Nel caso della rete vpc-net-a, poiché ha una route con un tag in comune con la VM, il tag vpn-ok della VM si applica all'interfaccia nic0 della VM in vpc-net-a. Al contrario, poiché la rete vpc-net-b non ha una route statica con il tag vpn-ok, il tag di rete vpn-ok della VM viene ignorato sull'interfaccia nic1 della VM.

Tag nei percorsi in istanze con più interfacce di rete

Se scegli di utilizzare i tag con le route, tieni presente che i tag vengono applicati a livello di istanza e, pertanto, a tutte le interfacce di un'istanza della macchina virtuale. Se non è auspicabile, assicurati che i tag applicati alle route siano unici per ogni rete VPC.

Bilanciatori del carico e più interfacce di rete

Ad eccezione del bilanciamento del carico TCP/UDP interno, tutti i Google Cloud bilanciatori del carico distribuiscono il traffico solo alla prima nic0interfaccia di un'istanza di backend.

Regole del firewall e più interfacce di rete

Ogni rete VPC ha il proprio insieme di regole firewall. Se l'interfaccia di un'istanza si trova in una determinata rete VPC, a quell'interfaccia si applicano le regole del firewall della rete.

Ad esempio, supponiamo che un'istanza VM abbia due interfacce:

  • nic0 nella rete VPC network-1
  • nic1 nella rete VPC network-2

Le regole firewall che crei per la rete network-1 si applicano a nic0. Le regole firewall che crei per la rete network-2 si applicano a nic1.

Per ulteriori informazioni, consulta Regole firewall VPC.

Firewall nelle istanze con più interfacce di rete

  • Le regole del firewall in entrata possono utilizzare tag di rete o account di servizio per identificare origini, target (destinazioni) o entrambi.

  • Le regole firewall in uscita possono utilizzare tag di rete o account di servizio per identificare le destinazioni (origini).

Per ulteriori informazioni, consulta Filtro delle origini e delle destinazioni per account servizio.

I tag di rete e gli account di servizio identificano le istanze, non interfacce specifiche. Tieni presente che le regole del firewall sono associate a una singola rete VPC e che ogni interfaccia di un'istanza con più NIC deve trovarsi in una subnet che si trova in una rete VPC univoca.

L'esempio seguente mostra come utilizzare in modo efficace i tag source per le regole firewall allow in entrata. L'istanza vm1 ha due interfacce di rete:

  • nic0 in network-1
  • nic1 in network-2

Supponiamo che tu debba consentire il seguente traffico da vm1:

  • Traffico SSH da vm1 a qualsiasi istanza in network-1
  • Traffico HTTP e HTTPS da vm1 a qualsiasi istanza in network-2

Per farlo, puoi procedere nel seguente modo:

  1. Assegna due tag di rete a vm1: vm1-network1 e vm1-network2

  2. Crea una regola firewall allow di ingresso in network-1 con i seguenti componenti per consentire il traffico SSH da vm1 a tutte le VM in network-1:

    • Azione: allow
    • Direzione: ingress
    • Origini: VM con tag vm1-network1
    • Destinazioni: tutte le istanze nella rete VPC
    • Protocolli e porte: tcp:22
  3. Crea una regola firewall di autorizzazione in entrata in network-2 con i seguenti componenti per consentire il traffico HTTP e HTTPS da vm1 a tutte le VM in network-2:

    • Azione: allow
    • Direzione: ingress
    • Origini: VM con tag vm1-network2
    • Destinazioni: tutte le istanze nella rete VPC
    • Protocolli e porte: tcp:80,443

La Figura 4 mostra questo esempio di configurazione del firewall:

Figura 4. La regola firewall 1 e la regola firewall 2 hanno ciascuna un tag di origine associato alla VM1. La regola firewall 1, che si trova in network-1, interessa solo nic0 della VM1 perché si trovano entrambe in network-1. La regola del firewall 2 interessa solonic1 della VM1 perché condividono anche una rete (fai clic per ingrandire).

Passaggi successivi