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 definite VM con più NIC.

Le reti Virtual Private Cloud (VPC) di Google Cloud sono isolate per impostazione predefinita di networking. Le reti hanno un ambito globale e contengono subnet a livello di regione. Istanze VM all'interno di una rete VPC possono comunicare tra loro utilizzando indirizzi IP interni, purché se consentito. Tuttavia, le comunicazioni verso l'indirizzo IP interno non sono consentite tra le reti, a meno che non vengano impostati meccanismi come Peering di rete 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 ciascuna interfaccia deve essere collegata a un VPC diverso in ogni rete. Grazie a più interfacce di rete è possibile creare configurazioni in cui si connette direttamente a più VPC reti.

Ogni istanza può avere fino a otto interfacce, a seconda del tipo di istanza. Per ulteriori informazioni, consulta Numero massimo di interfacce di rete.

Per ogni interfaccia è possibile configurare i seguenti indirizzi IP:

  • Un indirizzo IPv4 interno (obbligatorio)
  • Un indirizzo IPv4 esterno
  • Un indirizzo IPv6, interno o esterno, ma non entrambi

    Per configurare un indirizzo IPv6, devi collegare l'interfaccia a una subnet con un intervallo IPv6 configurato.

In genere, potresti aver bisogno di più interfacce se vuoi configurare di rete come appliance di rete che esegue il bilanciamento del carico, il rilevamento delle intrusioni and Prevention (IDS/IPS), Web Application Firewall (WAF) o WAN l'ottimizzazione 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 la separazione del traffico del piano dati dal traffico del piano di gestione.

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

Casi d'uso

Usa più interfacce di rete quando una singola istanza richiede l'accesso a più di una rete VPC, ma non è opportuno connetterle entrambe direttamente dalle reti.

  • 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 ulteriori dettagli, vedi Esempio 1: appliance virtuali di networking e sicurezza.

  • Isolamento del perimetro (noto anche come isolamento DMZ): una soluzione nelle architetture di rete a più livelli è isolare il pubblico da un servizio interno e i suoi servizi. Utilizza più interfacce di rete per creare con interfacce di rete separate sull'istanza, uno accetta traffico rivolto al pubblico e un altro per la gestione traffico privato con controlli di accesso più restrittivi.

    Tutte le risorse raggiungibili da internet devono essere separate dalla rete interna e dai relativi servizi. Questo limita drasticamente la portata e i danni che una violazione della sicurezza può causare. Ad esempio, puoi collocare una seconda interfaccia di rete su ogni server web che si collega a un server web sulla rete in cui si trova un server delle applicazioni. Il server delle applicazioni può è inoltre ospitato in una rete di backend in cui risiede il server del database. Ogni istanza dual-homed riceve ed elabora le richieste sul frontend, avvia una connessione al backend, quindi invia le richieste al sulla rete di backend.

    Configurando interfacce separate, una rivolta al pubblico e un'altra puoi applicare regole firewall e controlli di accesso separati a ciascuno interfacciarsi separatamente e applicare funzioni di sicurezza da pubblico a privato. Per ulteriori informazioni, vedi Esempio 2: utilizzo di appliance di terze parti in uno scenario di rete VPC condivisa.

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 una configurazione di esempio a livello di applicazione firewall che controlla il traffico da internet a un VPC in ogni rete. Il firewall a livello di applicazione è implementato in Compute Engine delle VM in esecuzione.

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. Ciascuna a una subnet che si trova in un'altra Rete VPC (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 condivisa

Questa configurazione è utile quando vuoi condividere un singolo insieme di di appliance di terze parti per carichi di lavoro o applicazioni a 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 del 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 il VPC del perimetro di rete rete (fai clic per ingrandire).

Esegui il provisioning e la configurazione della VM e delle interfacce di rete, ad esempio 2

Per creare la VM e le interfacce di rete in questo esempio, utilizza quanto segue :

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 all'indirizzo IP esterno.
  • nic2 è collegato a subnet-2, che fa parte di network-2, senza all'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 all'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 organizzazione Google Cloud.

Un VPC condiviso consente di creare istanze associate a un Rete VPC condivisa ospitata in un progetto host centralizzato del VPC condiviso. Per informazioni sulla configurazione di reti VPC condiviso, consulta Provisioning del VPC condiviso.

Per creare istanze con una o più interfacce associate a un VPC condiviso devi disporre del ruolo Utente di rete Compute (roles/compute.networkUser) nell'host del VPC condiviso progetto.

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 del metodo un'istanza è collegata a una subnet in una rete VPC diversa dalla rete VPC dell'istanza che emette il token una query DNS interna, la query ha esito negativo.

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 DHCP e ARP di ciascuna delle interfacce multiple come DHCP e ARP in un'istanza con una singola interfaccia.

In un'istanza con più interfacce che utilizza 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 predefinita IPv6.

In questo esempio, l'interfaccia principale eth0 ottiene la route predefinita (default via 10.138.0.1 dev eth0) ed entrambe le interfacce eth0 e eth1 ricevono 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 interfacce di rete multiple

Quando un'istanza VM ha più interfacce e una rete tag, il tag di rete potrebbe non influire su le interfacce della VM. Il tag di rete di una VM influisce su un'interfaccia se 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 di nic0 è in vpc-net-a. L'interfaccia di nic1 è in vpc-net-b. La VM ha un tag di rete chiamato vpn-ok. Il tag è un attributo dell'istanza, non di uno specifico a riga di comando.
  2. La rete vpc-net-a ha una route statica personalizzata con un tag chiamato vpn-ok.
  3. La rete vpc-net-b ha una route statica personalizzata con un tag chiamato vpn-123.

Questi passaggi numerati corrispondono alla figura 3:

Figura 3. La route statica personalizzata in vpc-net-a influisce nic0 perché ha un tag in comune, mentre la route statica personalizzata vpc-net-b no influisce su nic1 (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, perché 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 nella richiesta nic1.

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 ciò non è opportuno, assicurati che i tag applicati alle route siano univoci per ogni rete VPC.

Bilanciatori del carico e più interfacce di rete

Ad eccezione del bilanciamento del carico TCP/UDP interno, tutti i bilanciatori del carico Google Cloud distribuiscono traffico solo (nic0) di un'istanza di backend.

Regole firewall e più interfacce di rete

Ogni rete VPC ha il proprio set di regole firewall. Se dell'istanza si trova in una particolare rete VPC, a quell'interfaccia si applicano le regole firewall della rete.

Supponiamo, ad esempio, 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 maggiori informazioni, consulta Regole firewall VPC.

Firewall in 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 di 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 di origine per allow regole firewall 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

A questo scopo, procedi nel seguente modo:

  1. Assegna due reti tag in vm1: vm1-network1 e vm1-network2

  2. Crea un traffico in entrata allow regola firewall in network-1 con quanto segue componenti per consentire 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 quanto segue 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 che associate alla VM1. Regola firewall 1, che si trova in network-1, interessa solo nic0 di VM1 perché sono entrambe network-1. La regola del firewall 2 interessa solonic1 della VM1 perché condividono anche una rete (fai clic per ingrandire).

Passaggi successivi