Configurazione di intervalli IP alias
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questo documento contiene le istruzioni per configurare gli indirizzi IP e gli intervalli IP alias utilizzando la console Google Cloud e Google Cloud CLI. Prima di eseguire questi comandi, consulta la sezione Intervalli IP degli alias.
Limitazioni
Subnet
- I limiti per rete descrivono il numero massimo di intervalli secondari che puoi definire per ogni subnet.
- Non puoi aggiungere e rimuovere intervalli secondari contemporaneamente. L'aggiunta e la rimozione devono essere eseguite come passaggi separati.
- L'espansione CIDR non è supportata per gli intervalli secondari.
Istanza VM
- Gli intervalli IP alias sono supportati su tutte le interfacce di rete delle macchine virtuali (VM). Il routing viene configurato automaticamente per gli intervalli IP alias sull'interfaccia di rete principale, ma non sulle interfacce secondarie. Se hai più interfacce di rete, devi configurare il routing basato su criteri per le interfacce aggiuntive. Per un esempio di come eseguire questa operazione, consulta il seguente tutorial: Configurare il routing per un'interfaccia di rete aggiuntiva.
- Gli intervalli IP degli alias possono essere aggiunti o eliminati, ma non possono essere aggiornati.
- Se rimuovi un intervallo IP di alias da una VM e lo assegni a un'altra VM, il completamento del trasferimento potrebbe richiedere fino a un minuto.
- I tag di origine del firewall non sono supportati per gli indirizzi IP alias. Ciò significa che quando configuri i tag di origine nelle regole firewall, questi tag corrispondono all'indirizzo IP principale della VM, ma non agli indirizzi IP degli alias. Utilizza gli intervalli di origine per consentire o negare il traffico in entrata dagli indirizzi IP alias.
- Il DNS interno risolve il nome di una VM nel suo indirizzo IP principale. I nomi aggiuntivi per gli IP alias non vengono configurati automaticamente, ma possono essere aggiunti manualmente.
Rete VPC
- L'aggiunta o la rimozione di un numero elevato di intervalli IP di alias contemporaneamente può richiedere molto tempo. Ad esempio, l'aggiunta o l'eliminazione di 7000 intervalli IP alias potrebbe richiedere fino a 10 minuti.
- Le reti Virtual Private Cloud (VPC) in modalità automatica non possono essere eliminate se sono presenti intervalli di subnet secondari.
- In una route statica, l'indirizzo IP dell'hop successivo deve essere l'indirizzo IP principale della VM. Gli indirizzi IP alias non sono supportati come indirizzi IP di hop successivo.
- Gli indirizzi IPv6 non sono supportati.
- Gli intervalli IP degli alias sono supportati solo nelle reti VPC, non nelle reti legacy. Per determinare il tipo di rete, elenca le tue reti. Le reti VPC hanno una modalità
custom
oauto
. Le reti legacy hanno una modalitàlegacy
.
Comandi subnet
Gli intervalli IP degli alias VM devono essere assegnati da un intervallo di proprietà della subnet in cui si trova la VM. Tutte le subnet hanno un intervallo principale, ovvero l'intervallo standard di indirizzi IP interni che definisce la subnet. Una subnet può anche avere uno o più intervalli IP secondari di indirizzi IP interni. Puoi assegnare intervalli IP alias dagli intervalli principali o secondari della subnet.
Devi assegnare a ogni intervallo secondario un nome univoco per la subnet. Quando assegni un intervallo IP alias a una VM, il nome dell'intervallo secondario indica da quale intervallo di subnet assegnare gli IP alias.Google Cloud
Tutti gli intervalli, sia principali che secondari, devono essere univoci in tutte le subnet della rete VPC e in tutte le reti collegate utilizzando il peering di reti VPC, Cloud VPN o Cloud Interconnect.
Questa sezione spiega come creare una subnet con un intervallo secondario, aggiungere un intervallo secondario a una subnet esistente o rimuovere un intervallo secondario da una subnet. Dopo aver assegnato alla sottorete l'intervallo che vuoi utilizzare, consulta la sezione Lavorare con le istanze VM per informazioni sull'assegnazione di un intervallo a una VM.
Crea una subnet con uno o più intervalli CIDR secondari
Questo comando presuppone che tu abbia già una rete VPC. Se non ne hai uno, crealo.
Questo comando è lo stesso se crei una subnet per l'interfaccia principale della VM o per una delle interfacce secondarie.
L'utilizzo di un intervallo secondario per l'allocazione di indirizzi IP alias ti consente di separare lo spazio IP per i servizi ospitati nella VM, il che ti aiuta a creare regole firewall che consentono l'accesso solo ai servizi in esecuzione sulla VM e bloccano l'accesso all'indirizzo IP principale della VM.
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic sul nome di una rete esistente.
Fai clic su Aggiungi subnet.
Inserisci un nome per la nuova subnet.
Specifica la regione.
Inserisci un intervallo di indirizzi IP in notazione CIDR, ad esempio
10.65.61.0/24
.Fai clic su Crea intervallo IP secondario.
Inserisci un nome per l'intervallo di subnet.
Inserisci un intervallo IP secondario in notazione CIDR, ad esempio
10.9.0.0/24
.Per aggiungere intervalli IP secondari, fai clic su Aggiungi intervallo IP per ogni intervallo, poi fornisci un nome e un intervallo.
Fai clic su Aggiungi.
gcloud compute networks subnets create s1 \ --networkNETWORK_NAME \ --regionREGION \ --range 10.65.61.0/24 \ --secondary-rangeRANGE_NAME_1 =RANGE_CIDR_1 ,RANGE_NAME_2 =RANGE_CIDR_2 ,...
Sostituisci quanto segue:
NETWORK_NAME
: il nome della rete in cui vuoi creare la subnet.REGION
: la regione in cui stai creando la sottorete.RANGE_NAME_1
=RANGE_CIDR_1
eRANGE_NAME_2
=RANGE_CIDR_2
: i nomi degli intervalli secondari da cui estrarre gli intervalli IP degli alias e l'intervallo IP dell'alias stesso, ad esempiorange1=10.9.0.0/24
.
Per la sintassi completa, consulta la documentazione di gcloud
.
Crea una subnet con uno o più intervalli secondari.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /regions/REGION /subnetworks { "ipCidrRange": "PRIMARY_IP_RANGE ", "network": "NETWORK_URL ", "name": "SUBNET_NAME ", "secondaryIpRanges": [ { "rangeName": "SECONDARY_RANGE_NAME_1 ", "ipCidrRange": "SECONDARY_IP_RANGE_1 " }, { "rangeName": "SECONDARY_RANGE_NAME_2 ", "ipCidrRange": "SECONDARY_IP_RANGE_2 " }, ...] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene la rete VPC in cui deve essere creata la subnet.REGION
: la regione in cui deve essere collocata la subnet.PRIMARY_IP_RANGE
: l'intervallo di indirizzi IP principale per la subnet.NETWORK_URL
: l'URL o la rete VPC in cui deve essere creata la subnet.SUBNET_NAME
: un nome per la subnet.SECONDARY_RANGE_NAME_1
eSECONDARY_RANGE_NAME_2
: i nomi da utilizzare per gli intervalli secondari.SECONDARY_IP_RANGE_1
eSECONDARY_IP_RANGE_2
: gli intervalli di indirizzi IP da utilizzare per gli intervalli secondari.
Per ulteriori informazioni, consulta il
metodo subnetworks.insert
.
Puoi utilizzare la risorsa Terraform per creare una subnet con uno o più intervalli secondari.
Gli argomenti Terraform hanno valori di esempio che puoi modificare.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungere intervalli CIDR secondari a una subnet esistente
Questa procedura presuppone che tu abbia una subnet che vuoi utilizzare, ma che debba aggiungere uno o più intervalli secondari.
Ti consigliamo di utilizzare un intervallo secondario per l'allocazione di indirizzi IP alias per creare regole firewall che consentano l'accesso ai servizi in esecuzione su una VM, ma non all'indirizzo IP principale della VM.
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic sul nome di una sottorete da modificare per visualizzarne la pagina dei dettagli.
Fai clic su Modifica.
Nella sezione Intervalli IP secondari, fai clic su Aggiungi intervallo IP.
Inserisci un nome per Nome intervallo di subnet.
Inserisci un intervallo per Intervallo IP secondario in notazione CIDR, ad esempio
10.9.0.0/24
.Per aggiungere intervalli di indirizzi IP secondari, fai clic su Aggiungi intervallo IP per ogni intervallo, poi fornisci un nome e un intervallo.
Fai clic su Salva.
gcloud compute networks subnets updateSUBNET_NAME \ --regionREGION \ --add-secondary-rangesRANGE_NAME_1 =RANGE_CIDR_1 ,RANGE_NAME_2 =RANGE_CIDR_2 ,...
Sostituisci quanto segue:
SUBNET_NAME
: il nome della subnet a cui vuoi aggiungere gli intervalli secondari.REGION
: la regione in cui stai creando la sottorete.RANGE_NAME_1
=RANGE_CIDR_1
eRANGE_NAME_2
=RANGE_CIDR_2
: i nomi degli intervalli secondari da cui estrarre gli intervalli IP alias e l'intervallo IP alias stesso, ad esempiorange1=10.9.0.0/24
.
Per la sintassi completa, consulta la documentazione di gcloud
.
Aggiungi un intervallo secondario a una subnet esistente.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /regions/REGION /subnetworks/SUBNET_NAME { "secondaryIpRanges": [ { "rangeName": "SECONDARY_RANGE_NAME_1 ", "ipCidrRange": "SECONDARY_IP_RANGE_1 " }, { "rangeName": "SECONDARY_RANGE_NAME_2 ", "ipCidrRange": "SECONDARY_IP_RANGE_2 " }, ...], "fingerprint": "SUBNET_FINGERPRINT " }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene la subnet da modificare.REGION
: la regione in cui si trova la subnet.SUBNET_NAME
: il nome della subnet da modificare.SECONDARY_RANGE_NAME_1
eSECONDARY_RANGE_NAME_2
: i nomi da utilizzare per gli intervalli secondari.SECONDARY_IP_RANGE_1
eSECONDARY_IP_RANGE_2
: gli intervalli di indirizzi IP da utilizzare per gli intervalli secondari.SUBNET_FINGERPRINT
: l'ID impronta della subnet esistente, fornito quando descrivi una subnet.
Per ulteriori informazioni, consulta il
metodo subnetworks.patch
.
Rimuovere un intervallo CIDR secondario da una subnet
Puoi rimuovere gli intervalli secondari esistenti da una subnet. Per visualizzare gli intervalli associati a una subnet, consulta Descrivere una subnet.
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic sul nome di una sottorete da modificare per visualizzarne la pagina dei dettagli.
Fai clic su Modifica.
Nella sezione Intervalli IP secondari, fai clic sulla X accanto all'intervallo secondario da rimuovere.
Fai clic su Salva.
gcloud compute networks subnets updateSUBNET_NAME \ --regionREGION \ --remove-secondary-rangesRANGE_NAME_1 ,RANGE_NAME_2 ,...
Sostituisci quanto segue:
SUBNET_NAME
: il nome della subnet da cui vuoi rimuovere gli intervalli secondari.REGION
: la regione in cui stai creando la sottorete.RANGE_NAME_1
eRANGE_NAME_2
: i nomi degli intervalli secondari da rimuovere dalla subnet di destinazioneSUBNET_NAME
, ad esempiorange1=10.9.0.0/24
.
Per la sintassi completa, consulta la documentazione di gcloud
.
Escludi gli intervalli secondari per rimuoverli. L'esempio seguente rimuove tutti gli intervalli secondari da una subnet esistente:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /regions/REGION /subnetworks/SUBNET_NAME { "fingerprint": "SUBNET_FINGERPRINT ", "secondaryIpRanges": [ ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene la subnet da modificare.REGION
: la regione in cui si trova la subnet.SUBNET_NAME
: il nome della subnet da modificare.SUBNET_FINGERPRINT
: l'ID impronta della subnet esistente, fornito quando descrivi una subnet.
Per ulteriori informazioni, consulta il
metodo subnetworks.patch
.
Lavorare con le istanze VM
Questi comandi mostrano come creare un'istanza con un intervallo IP alias, aggiungere uno o più intervalli IP alias a un'istanza VM esistente o rimuovere uno o più intervalli da un'istanza VM esistente.
Crea una VM con un intervallo IP alias nell'intervallo CIDR principale
Utilizza questa procedura se vuoi assegnare un intervallo IP di alias dall'intervallo primario della subnet. L'intervallo scelto non deve essere già in uso, anche parzialmente, da altre risorse sulla rete VPC.
Utilizza questa procedura se vuoi che l'interfaccia principale e gli indirizzi IP alias dell'istanza si trovino nello stesso intervallo.
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su
Crea istanza.Inserisci un nome per la nuova istanza.
Specifica una zona.
Fai clic su Networking.
Nella sezione Interfacce di rete, espandi l'interfaccia di rete predefinita.
In Intervalli IP alias, fai clic su
Aggiungi intervallo IP.Lascia Intervallo subnet 1 impostato su Principale.
In Intervallo IP alias, inserisci un intervallo IP in notazione CIDR. Questo intervallo deve essere un sottointervallo inutilizzato dell'intervallo principale.
Fai clic su Crea.
gcloud compute instances create vm1 \ --zoneZONE \ --network-interface "subnet=SUBNET_NAME ,aliases=RANGE_CIDR_1 ;RANGE_CIDR_2 ,..."
Sostituisci quanto segue:
ZONE
: la zona che deve contenere l'istanza.SUBNET_NAME
: il nome della subnet che deve contenere l'istanza.RANGE_CIDR_1
eRANGE_CIDR_2
: gli intervalli IP della subnet principale da assegnare all'interfaccia. Gli intervalli possono essere un intervallo specifico (192.168.100.0/24
), un singolo indirizzo IP (192.168.100.1
) o una netmask in formato CIDR (/24
). Se l'intervallo IP è specificato solo dalla netmask, l'allocatore IP sceglie un intervallo disponibile con la netmask specificata e lo alloca all'interfaccia di rete. Per specificare più intervalli, separali con punti e virgola (;
).
Per la sintassi completa, consulta la documentazione di gcloud
.
Crea un'istanza con un indirizzo IP alias dall'intervallo di indirizzi IP principali della subnet dell'istanza.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances { "networkInterfaces": [ { "aliasIpRanges": [ { "ipCidrRange": "CIDR_RANGE " } ] }, ... ], ... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui crei l'istanza.ZONE
: la Google Cloud zona in cui deve essere creata l'istanza.CIDR_RANGE
: l'intervallo IP della sottorete principale da assegnare all'interfaccia. L'intervallo può essere un intervallo specifico (192.168.100.0/24
), un singolo indirizzo IP (192.168.100.1
) o una netmask in formato CIDR (/24
). Se specifichi l'intervallo IP solo in base alla netmask, l'allocatore di indirizzi IP sceglie un intervallo disponibile con la netmask specificata e lo assegna all'interfaccia di rete.
Per ulteriori informazioni, consulta il
metodo instances.insert
.
Creare una VM con un intervallo IP di alias in un intervallo CIDR secondario
Utilizza questa procedura se vuoi assegnare un intervallo IP di alias preso da un intervallo secondario della subnet. Ti consigliamo di mantenere separati gli intervalli IP alias dall'intervallo principale della subnet per creare regole firewall che consentano l'accesso ai servizi in esecuzione su una VM, ma non all'indirizzo IP principale della VM.
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su
Crea istanza.Inserisci un nome per la nuova istanza.
Specifica una zona.
Fai clic su Networking.
Nella sezione Interfacce di rete, espandi l'interfaccia di rete predefinita.
In Intervalli IP alias, fai clic su
Aggiungi intervallo IP.In Intervallo subnet, seleziona l'intervallo IP secondario da utilizzare.
In Intervallo IP alias, inserisci un intervallo IP in notazione CIDR. Questo intervallo deve essere un intervallo inutilizzato dell'intervallo IP secondario.
Fai clic su Crea.
gcloud compute instances create vm3 \ --zoneZONE \ --network-interface subnet=SUBNET_NAME ,aliases=RANGE_NAME :RANGE_CIDR
Sostituisci quanto segue:
ZONE
: la zona che deve contenere l'istanza.SUBNET_NAME
: il nome della subnet che deve contenere l'istanza.RANGE_NAME
: il nome dell'intervallo secondario della subnet da cui ricavare l'intervallo IP dell'alias.RANGE_CIDR
: l'intervallo IP da assegnare all'interfaccia. L'intervallo può essere un intervallo specifico (192.168.100.0/24
), un singolo indirizzo IP (192.168.100.1
) o una maschera di rete in formato CIDR (/24
). Se l'intervallo IP è specificato solo dalla maschera di rete, l'allocatore IP sceglie un intervallo disponibile con la maschera di rete specificata e lo alloca all'interfaccia di rete.
Per la sintassi completa , consulta la documentazione di gcloud
.
Crea un'istanza con un indirizzo IP alias dall'intervallo di indirizzi IP secondario della subnet dell'istanza.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances { "networkInterfaces": [ { "aliasIpRanges": [ { "ipCidrRange": "SECONDARY_CIDR_RANGE ", "subnetworkRangeName": "SECONDARY_RANGE_NAME " } ] }, ... ], ... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui crei l'istanza.ZONE
: la Google Cloud zona in cui crei l'istanza.SECONDARY_CIDR_RANGE: the IP range to assign to the interface. The range can be a specific range (
192.168.100.0/24), a single IP address (
192.168.100.1), or a netmask in CIDR format (
/24`). Se specifichi l'intervallo IP solo in base alla netmask, l'allocatore di indirizzi IP sceglie un intervallo disponibile con la netmask specificata e lo assegna all'interfaccia di rete.SECONDARY_RANGE_NAME
: il nome dell'intervallo secondario della subnet da cui ricavare l'intervallo IP alias.
Per ulteriori informazioni, consulta il
metodo instances.insert
.
Crea una VM con più interfacce e indirizzi IP alias
Questo esempio crea due reti, ciascuna con una subnet, e una VM con interfacce in entrambe le reti. Se hai già due reti VPC, puoi andare al passaggio "Crea una VM con interfacce in entrambe le reti".
Crea la prima rete e la prima subnet:
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
my-network1
.Imposta Modalità di creazione subnet su
Custom
, quindi specifica un nome della subnetmy-subnet1
.Specifica una regione.
Imposta Intervallo di indirizzi IP su
172.16.1.0/24
.Fai clic su Crea intervallo IP secondario.
Imposta Nome intervallo di subnet su
range1
.Imposta Intervallo IP secondario su
10.1.0.0/16
.Fai clic su Fine.
Fai clic su Crea.
Crea la seconda rete e la seconda subnet:
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
my-network2
.Imposta Modalità di creazione subnet su
Custom
, quindi specifica un nome della subnetmy-subnet2
.Per Regione, specifica la stessa regione utilizzata per la prima rete e subnet.
Imposta Intervallo di indirizzi IP su
172.16.2.0/24
.Fai clic su Crea intervallo IP secondario.
Imposta Nome intervallo di subnet su
range2
.Imposta Intervallo IP secondario su
10.2.0.0/16
.Fai clic su Fine.
Fai clic su Crea.
Crea una VM con interfacce in entrambe le reti:
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su
Crea istanza.Imposta la zona sulla regione in cui hai creato le subnet.
Fai clic su Networking.
Fai clic sulla prima interfaccia di rete.
- Imposta Rete su
my-network1
. - Imposta Subnet su
my-subnet1
. - Fai clic su Intervalli IP alias.
- Fai clic su Aggiungi intervallo IP.
- Imposta Intervallo di subnet su
Primary
. - Imposta Intervallo IP alias su
/32
. - Fai clic su Aggiungi intervallo IP.
- Imposta Intervallo di subnet su
range1
. - Imposta Intervallo IP alias su
/24
. - Fai clic su Fine.
- Imposta Rete su
Fai clic su Aggiungi interfaccia di rete.
- Seleziona
my-network2
. - Imposta Subnet su
my-subnet2
. - Fai clic su Intervalli IP alias.
- Fai clic su Aggiungi intervallo IP.
- Imposta Intervallo di subnet su
Primary
. - Imposta Intervallo IP alias su
/32
. - Fai clic su Aggiungi intervallo IP.
- Imposta Intervallo di subnet su
range2
. - Imposta Intervallo IP alias su
/24
. - Fai clic su Fine.
- Seleziona
Fai clic su Crea.
Crea la prima rete:
gcloud compute networks create my-network1 --subnet-mode CUSTOM
Aggiungi una subnet:
gcloud compute networks subnets create my-subnet1 \ --network my-network1 \ --range 172.16.1.0/24 \ --secondary-range range1=10.1.0.0/16
Crea una seconda rete:
gcloud compute networks create my-network2 --subnet-mode CUSTOM
Aggiungi una subnet:
gcloud compute networks subnets create my-subnet2 \ --network my-network2 \ --range 172.16.2.0/24 \ --secondary-range range2=10.2.0.0/16
Crea una VM con interfacce in entrambe le reti. La prima interfaccia di rete elencata, quella in
my-subnet1
, è l'interfaccia principale:gcloud compute instances create multi-nic-alias-vm \ --machine-type f1-micro \ --network-interface "subnet=my-subnet1,aliases=/32;range1:/24" \ --network-interface "subnet=my-subnet2,aliases=/32;range2:/24"
Utilizza il comando display per visualizzare le interfacce e i relativi indirizzi:
gcloud compute instances describe multi-nic-alias-vm
... networkInterfaces: - ... aliasIpRanges: - ipCidrRange: 172.16.1.2/32 - ipCidrRange: 10.1.0.0/24 subnetworkRangeName: range1 name: nic0 network: .../networks/my-network1 networkIP: 172.16.1.3 subnetwork: .../subnetworks/my-subnet1 ... - ... aliasIpRanges: - ipCidrRange: 172.16.2.2/32 - ipCidrRange: 10.2.0.0/24 subnetworkRangeName: range2 name: nic1 network: .../networks/my-network2 networkIP: 172.16.2.3 subnetwork: .../subnetworks/my-subnet2
Crea due reti VPC in modalità personalizzata denominate
my-network1
emy-network2
. Per ulteriori informazioni, consulta Creare una rete VPC in modalità personalizzata con solo subnet IPv4.Aggiungi subnet alle reti VPC. Per ulteriori informazioni, consulta Aggiungere una subnet solo IPv4.
Aggiungi una subnet denominata
my-subnet1
amy-network1
. Specifica172.16.1.0/24
per l'intervallo principale e10.1.0.0/16
per l'intervallo secondario con il nomerange1
.Aggiungi una subnet denominata
my-subnet2
amy-network2
. Specifica172.16.2.0/24
per l'intervallo principale e10.2.0.0/16
per l'intervallo secondario con il nomerange2
.
Crea un'istanza VM con interfacce in entrambe le reti.
POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID /zones/ZONE /instances { "networkInterfaces": [ { "subnetwork": "projects/PROJECT_ID /regions/REGION /subnetworks/my-subnet1", "aliasIpRanges": [ { "ipCidrRange": "/32", }, { "subnetworkRangeName": "range1", "ipCidrRange": "/24" } ] }, { "subnetwork": "projects/PROJECT_ID /regions/REGION /subnetworks/my-subnet2", "aliasIpRanges": [ { "ipCidrRange": "/32", }, { "subnetworkRangeName": "range2", "ipCidrRange": "/24" } ] } ], ... }Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui crei l'istanza.ZONE
: la Google Cloud zona in cui deve essere creata l'istanza.REGION
: la Google Cloud regione in cui si trova la subnet. Le subnet devono trovarsi nella stessa regione dell'istanza.
Per ulteriori informazioni, consulta il metodo
instances.insert
.
Aggiungere intervalli IP alias a un'istanza esistente
Puoi aggiungere un intervallo IP di alias a un'istanza in esecuzione.
I nuovi indirizzi potrebbero non essere disponibili immediatamente, anche al termine della chiamata all'API. I nuovi indirizzi sono disponibili solo dopo che l'OS guest ha aggiunto gli indirizzi e le route.
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome di un'istanza esistente.
Fai clic su Modifica.
In Interfacce di rete, fai clic sull'interfaccia di rete a cui aggiungere un intervallo IP alias (
nic0
per questo esempio).Fai clic su Intervalli IP alias.
Fai clic su Aggiungi intervallo IP.
Seleziona un intervallo di subnet.
Inserisci un intervallo IP alias.
Fai clic su Fine.
Fai clic su Salva.
gcloud compute instances network-interfaces updateINSTANCE_NAME \ --zoneZONE \ [--network-interfaceNETWORK_INTERFACE ; default="nic0"] \ --aliases "RANGE_NAME_1 :RANGE_CIDR_1 ; \RANGE_NAME_2 :RANGE_CIDR_2 ;..."
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanza da modificare.ZONE
: la zona che contiene l'istanza.NETWORK_INTERFACE
: il nome dell'interfaccia di rete a cui aggiungere un intervallo di indirizzi IP di alias.RANGE_NAME_1
eRANGE_NAME_2
: i nomi degli intervalli secondari della subnet da cui ricavare l'intervallo IP alias. Se assegni intervalli dall'intervallo principale della subnet, ometti questo valore.RANGE_CIDR_1
eRANGE_CIDR_2
: gli intervalli IP da assegnare all' interfaccia. Gli intervalli possono essere un intervallo specifico (192.168.100.0/24
), un singolo indirizzo IP (192.168.100.1
) o una maschera di rete in formato CIDR (/24
). Se l'intervallo IP è specificato solo dalla maschera di rete, l'allocatore IP sceglie un intervallo disponibile con la maschera di rete specificata e lo alloca all'interfaccia di rete.
Per la sintassi completa, consulta la documentazione di gcloud
.
Aggiungi intervalli IP alias a un'istanza esistente.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances/INSTANCE_NAME /updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME { "aliasIpRanges": [ { "ipCidrRange": "SECONDARY_IP_RANGE ", "subnetworkRangeName": "SECONDARY_RANGE_NAME " }, existing ranges... ], "fingerprint": "INTERFACE_FINGERPRINT " }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene l'istanza da modificare.ZONE
: la Google Cloud zona in cui creare l'istanza.INSTANCE_NAME
: il nome dell'istanza da modificare.NETWORK_INTERFACE_NAME
: il nome dell'interfaccia di rete dell'istanza da modificare.SECONDARY_IP_RANGE
: l'intervallo IP da assegnare all'interfaccia. L'intervallo può essere un intervallo specifico (192.168.100.0/24
), un singolo indirizzo IP (192.168.100.1
) o una maschera di rete in formato CIDR (/24
). Se specifichi l'intervallo IP solo in base alla maschera di rete, l'allocatore di indirizzi IP sceglie un intervallo disponibile con la maschera di rete specificata e lo assegna all'interfaccia di rete.SECONDARY_RANGE_NAME
: il nome dell'intervallo secondario della subnet da cui ricavare l'intervallo IP alias. Se assegni intervalli dall'intervallo principale della subnet, ometti questo campo.INTERFACE_FINGERPRINT
: l'ID impronta per la rete esistente, fornito quando descrivi un'istanza.
Per ulteriori informazioni, consulta il
metodo instances.updateNetworkInterface
.
Modificare gli intervalli IP alias per un'istanza esistente
Puoi aggiungere altri intervalli IP di alias a un'istanza esistente o rimuovere uno o più intervalli.
Le modifiche all'indirizzo potrebbero non essere visibili immediatamente. La chiamata all'API deve essere completata e il sistema operativo guest deve modificare gli indirizzi e le route.
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome di un'istanza esistente.
Fai clic su Modifica.
In Interfacce di rete, fai clic sull'interfaccia di rete a cui aggiungere un intervallo IP alias (
nic0
per questo esempio).Fai clic su Intervalli IP alias.
Per aggiungere un intervallo IP alias, fai clic su Aggiungi intervallo IP alias.
Per rimuovere un intervallo IP dell'alias, fai clic sulla X accanto all'intervallo IP dell'alias.
Fai clic su Fine.
Fai clic su Salva.
gcloud compute instances network-interfaces updateINSTANCE_NAME \ --zoneZONE \ [--network-interfaceNETWORK_INTERFACE ; default="nic0"] \ --aliases "RANGES_TO_RETAIN ;NEW_RANGE_NAME :NEW_RANGE_CIDR ;..."
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanza da modificare.ZONE
: la zona che contiene l'istanza.NETWORK_INTERFACE
: il nome dell'interfaccia di rete da modificare.RANGES_TO_RETAIN
: le gamme esistenti, in formatoCURRENT_RANGE_NAME
:CURRENT_RANGE_CIDR
, che vuoi conservare. Se aggiungi intervalli a un'istanza che non ne ha, questi valori sono vuoti. Se stai rimuovendo tutti gli intervalli dall'istanza, l'intero campo--aliases
è vuoto.NEW_RANGE_NAME
: il nome dell'intervallo secondario della subnet da cui estrarre i nuovi intervalli IP degli alias. Se assegni intervalli dall'intervallo principale della subnet, ometti questo valore.NEW_RANGE_CIDR
: l'intervallo di indirizzi IP da assegnare all'interfaccia. Questo intervallo può essere un intervallo specifico (192.168.100.0/24
), un singolo indirizzo IP (192.168.100.1
) o una netmask in formato CIDR (/24
). Se l'intervallo di indirizzi IP è specificato solo per la netmask, l'allocatore IP sceglie un intervallo disponibile con la netmask specificata e lo alloca all'interfaccia di rete.
Per aggiungere intervalli, esegui il comando e specifica tutti gli intervalli IP di alias esistenti e nuovi. Le coppie sono separate da punti e virgola, ad esempio:
--aliases
"CURRENT_RANGE_NAME:CURRENT_RANGE_CIDR;NEW_RANGE_NAME:NEW_RANGE_CIDR"
.
Per rimuovere gli intervalli, esegui il comando e specifica solo gli intervalli IP alias che vuoi conservare. Se mantieni intervalli da un intervallo secondario, devi specificare il nome dell'intervallo secondario. Un intervallo CIDR può essere un intervallo specifico (192.168.100.0/24
) o un singolo indirizzo IP (192.168.100.1
), ad esempio:--aliases "RANGE_NAME:RANGE_CIDR;RANGE_CIDR"
.
Per rimuovere tutti gli intervalli, esegui il comando e specifica il flag --aliases
, ma usa le virgolette per fornire un input vuoto, ad esempio:--aliases ""
.
Non puoi aggiungere e rimuovere intervalli nello stesso comando gcloud
. Per rimuovere alcuni intervalli e aggiungerne altri con l'interfaccia a riga di comando gcloud, esegui prima il comando per rimuovere gli intervalli non necessari, quindi eseguilo di nuovo per aggiungere gli intervalli necessari.
Per la sintassi completa, consulta la documentazione di gcloud
.
Per un'interfaccia di rete di un'istanza esistente, aggiungi o rimuovi intervalli di indirizzi IP di alias.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances/INSTANCE_NAME /updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME { "aliasIpRanges": [ include new and existing ranges to add them... exclude existing ranges to remove them... ], "fingerprint": "INTERFACE_FINGERPRINT " }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene l'istanza da modificare.ZONE
: la zona che contiene l'istanza.INSTANCE_NAME
: il nome dell'istanza da modificare.NETWORK_INTERFACE_NAME
: il nome dell'interfaccia di rete dell'istanza da modificare.INTERFACE_FINGERPRINT
: l'ID impronta per l'interfaccia di rete esistente, fornito quando descrivi un'istanza.
Per ulteriori informazioni, consulta il
metodo instances.updateNetworkInterface
.
Risoluzione dei problemi
Questa sezione elenca vari problemi che potresti riscontrare durante la configurazione degli intervalli IP degli alias.
Impossibile creare un'istanza VM con indirizzo IP alias
Verifica che la rete sia una rete VPC. Gli IP alias non sono supportati sulle reti legacy.
gcloud compute networks list --filter="name=
NETWORK_NAME "La rete
MODE
deve essereauto
ocustom
.Se è specificato un nome di intervallo di subnet, verifica quanto segue:
gcloud compute networks subnets describe
SUBNET_NAME --region=REGION - La subnet ha un intervallo secondario con il nome corrispondente.
- L'intervallo IP alias richiesto si trova all'interno di questo intervallo secondario o, se viene utilizzata la netmask, è più piccolo dell'intervallo principale.
Se il nome dell'intervallo di subnet non è specificato, verifica che l'intervallo IP alias richiesto sia all'interno dell'intervallo della subnet principale o, se utilizzi la netmask, sia più piccolo dell'intervallo principale.
Impossibile connettersi all'IP alias
Verifica le regole del firewall.
Elenca tutte le regole del firewall:
gcloud compute firewall-rules list --format=json
Verifica che il traffico verso e da un intervallo IP alias sia consentito.
Se necessario, aggiungi regole firewall per consentire il ping di un intervallo IP alias:
gcloud compute firewall-rules create
FIREWALL_NAME1 \ --networkNETWORK_NAME \ --priority 0 \ --source-rangesALIAS_IP \ --allow icmpgcloud compute firewall-rules create
FIREWALL_NAME2 \ --networkNETWORK_NAME \ --priority 0 \ --direction out \ --destination-rangesALIAS_IP \ --allow icmp
Assicurati che la VM riconosca gli intervalli di alias IP come locali. Su distribuzioni Linux come Debian, in genere è possibile procedere nel seguente modo.
Connettiti all'istanza ed esegui questo comando:
ip route show table local
L'output è simile al seguente:
local
ALIAS_IP_RANGE dev eth0 proto 66 scope hostIn
/etc/default/instance_configs.cfg
, assicurati che l'impostazioneip_aliases
sia impostata sutrue
. Se devi modificare questa impostazione, devi riavviare anche l'agente ospite:systemctl restart google-guest-agent
Se la route locale non è presente, configurala utilizzando questo comando:
ip route add to local
ALIAS_IP_RANGE dev eth0 proto 66
Il servizio con avvio automatico non si associa all'indirizzo IP dell'alias
Nelle distribuzioni Linux supportate, gli indirizzi IP alias vengono impostati automaticamente come indirizzi locali dall'agente ospite preinstallato. Ciò significa che non è necessaria alcuna configurazione a livello di sistema operativo.
Tuttavia, ciò significa anche che il sistema operativo non riconosce gli indirizzi IP alias come indirizzi locali prima dell'esecuzione dell'agente guest. Se sulla VM sono presenti servizi con avvio automatico e vengono avviati prima dell'agente guest, non possono essere associati agli indirizzi IP degli alias.
Ad esempio, un server HTTP Apache potrebbe uscire con il seguente errore:
could not bind to addressALIAS_IP :80
Per risolvere il problema, configura il servizio in modo che venga avviato dopo l'agente ospite. Nelle distribuzioni che utilizzano systemctl
, segui questi passaggi.
Come utente con privilegi, esegui il seguente comando per aggiungere uno snippet drop-in per il servizio che non funziona correttamente. Ad esempio, un server HTTP Apache su Debian sarà
apache2
:systemctl edit
YOUR_SERVICE Nell'editor di testo, aggiungi le seguenti righe. Assicurati di aggiungere le righe sopra la riga
Lines below this comment will be discarded
.[Unit] After=google-guest-agent.service
Il mio intervallo IP secondario non è presente nell'elenco
Gli intervalli IP secondari non sono elencati come subnet regolari. Per verificare che l'intervallo IP secondario della subnet sia stato creato, utilizza il comando gcloud compute networks subnets describe
.
Crea una subnet.
gcloud compute networks subnets create my-subnet \ --region us-central1 \ --network my-network \ --range 10.9.0.0/16 \ --secondary-range secondaryrange1=172.16.0.0/12
L'output è simile al seguente:
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet]. NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
Elenca le tue subnet.
gcloud compute networks subnets list
L'output è simile al seguente:
NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
Visualizza i dettagli di una subnet per vedere gli intervalli secondari.
gcloud compute networks subnets describe my-subnet --region us-central1
L'output è simile al seguente:
... ipCidrRange: 10.9.0.0/16 ... secondaryIpRanges: - ipCidrRange: 172.16.0.0/12 rangeName: secondaryrange1 ...
L'intervallo secondario della subnet specificato non esiste
Quando crei una VM, se viene visualizzato un messaggio di errore che indica che l'intervallo secondario non esiste, verifica quanto segue:
- La subnet ha un intervallo secondario con il nome specificato.
- Stai creando la VM all'interno della subnet con l'intervallo secondario.
Puoi visualizzare questo errore eseguendo i seguenti comandi:
Crea una subnet con un intervallo secondario.
gcloud compute networks subnets create my-subnet \ --region us-central1 \ --network my-network \ --range 10.9.0.0/16 \ --secondary-range secondaryrange1=172.16.0.0/12
L'output è simile al seguente:
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet]. NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
Crea un'istanza in un'altra rete, ad esempio la rete predefinita, anziché nella subnet appena creata.
gcloud compute instances create instance-1 \ --zone us-central1-a \ --network default
L'output è simile al seguente:
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-1]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS instance-1 us-central1-a n1-standard-1 10.128.0.2 47.82.96.9 RUNNING
Prova ad assegnare un intervallo IP alias dalla subnet creata nel passaggio 1. Il comando non va a buon fine perché l'intervallo secondario si trova in una subnet diversa dall'istanza.
gcloud compute instances network-interfaces update instance-1 \ --zone us-central1-a \ --aliases secondaryrange1:172.16.0.10/32
L'output è simile al seguente:
ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges[0].subnetworkRangeName': 'secondaryrange'. The specified subnetwork secondary range does not exist.
Crea un'altra istanza, questa volta con la relativa interfaccia nella subnet creata nel passaggio 1.
gcloud compute instances create instance-2 \ --zone us-central1-a \ --network-interface subnet=my-subnet
L'output è simile al seguente:
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-2]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS instance-2 us-central1-a n1-standard-1 10.9.0.2 38.74.204.89 RUNNING
Aggiungi un intervallo IP alias all'interfaccia. Questa volta il comando ha esito positivo perché l'interfaccia e l'intervallo secondario si trovano nella stessa subnet.
gcloud compute instances network-interfaces update instance-2 \ --zone us-central1-a \ --aliases secondaryrange1:172.16.0.10/32
L'output è simile al seguente:
Updating network interface [nic0] of instance [instance-2]...done.
Impossibile aggiungere e rimuovere intervalli IP secondari nella stessa richiesta
L'aggiunta e la rimozione di intervalli IP secondari della subnet nello stesso comando non è supportata. I comandi della riga di comando gcloud per aggiungere e rimuovere gli intervalli secondari mantengono gli intervalli esistenti che non vengono modificati.
Per aggiungere e rimuovere intervalli, esegui i due comandi separatamente.
gcloud compute networks subnets updateSUBNET_NAME \ --add-secondary-rangesRANGE_NAME_1 =RANGE_CIDR_1 ,RANGE_NAME_2 =RANGE_CIDR_2 ,...
gcloud compute networks subnets updateSUBNET_NAME \ --remove-secondary-rangesRANGE_NAME_1 ,RANGE_NAME_2 ,...
Per ulteriori informazioni su questo comando, usa
gcloud compute networks subnets update --help
.
Impossibile aggiungere e rimuovere contemporaneamente intervalli IP alias
L'aggiunta e la rimozione di intervalli IP di alias VM nella stessa richiesta non sono supportate. L'intervallo esistente deve essere rimosso esplicitamente prima di poter aggiungere il nuovo intervallo.
Il comando gcloud CLI per aggiornare gli intervalli IP degli alias non conserva gli intervalli esistenti, pertanto l'omissione di un intervallo viene trattata come una richiesta di eliminazione dell'intervallo.
Ad esempio, se la VM corrente ha un intervallo di alias 10.9.27.0/24
e il nuovo intervallo richiesto è /24
, il comando per richiedere /24
viene rifiutato perché viene interpretato come rimozione di 10.9.27.0/24
e aggiunta di /24
.
Esempio:
Crea l'intervallo IP alias.
gcloud compute instances create vm --network-interface "subnet=s1,aliases=10.9.27.0/24"
Prova ad aggiungere
/24
senza specificare l'intervallo esistente. Viene visualizzato un errore.gcloud compute instances network-interfaces update vm --aliases "/24" ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource. aliasIpRanges': ''. Cannot simultaneously add and remove alias IP ranges.
Aggiorna la VM in modo che non abbia un intervallo IP di alias.
gcloud compute instances network-interfaces update vm --aliases "" Updating network interface [nic0] of instance [vm]...done.
Aggiungi il nuovo intervallo IP dell'alias.
gcloud compute instances network-interfaces update vm --aliases "/24" Updating network interface [nic0] of instance [vm]...done.
Per ulteriori informazioni su questo comando, usa
gcloud compute instances network-interfaces update --help
.
Tag di origine e account di servizio di origine delle regole firewall
L'account di servizio di origine e i tag di origine del firewall vengono espansi solo agli IP di rete principali delle istanze corrispondenti e non si applicano agli IP alias delle istanze corrispondenti. Pertanto, una regola firewall basata sui tag di origine non influisce sul traffico proveniente da un indirizzo IP dell'alias dell'istanza. Gli indirizzi IP alias possono essere aggiunti alle regole firewall come intervalli di origine o di destinazione.
Problemi con le VM con più interfacce e intervalli IP alias
Consulta la sezione Risolvere i problemi delle VM con più interfacce di rete.
L'attivazione degli alias IP sulle Google Cloud immagini disattiva il bridge cbr0
sui cluster Kubernetes autogestiti
Nelle immagini fornite da Google, l'agente ospite di Google crea route locali per gli intervalli di indirizzi IP degli alias. Per i cluster Kubernetes autogestiti, devi configurare l'agente guest di Google in modo che non crei route locali per gli intervalli IP alias. Questo passaggio non è necessario per i cluster GKE perché GKE disattiva la creazione di route locali per gli intervalli IP alias nelle sue immagini dei nodi.
Sintomi:
I pod Kubernetes perdono l'accesso alla rete se la route locale creata dall'agente ospite rimuove l'intervallo IP alias dall'interfaccia
cbr0
.Un'acquisizione di pacchetti sul dispositivo bridge Linux (
tcpdump -ni cbr arp
) mostra la mancanza di risposte ARP dall'interfacciacbr0
, anche se questa è attiva.L'ispezione della tabella di routing locale (
ip route show table local
) rivela che l'intervallo di indirizzi IP alias è assegnato all'interfaccia di rete principale (ad es.eth0
oens4
) anziché all'interfaccia bridge del contenitore (cbr0
).
Correzione:
Esegui il comando appropriato elencato in Pacchetti installati per l'ambiente guest per determinare se nella VM del nodo è in esecuzione l'agente guest di Google o un pacchetto Compute Engine precedente.
Se nella VM del nodo non è in esecuzione l'agente ospite di Google, installalo o utilizza un'immagine più recente fornita da Google.
Configura l'agente guest di Google in modo da saltare la creazione di route locali per gli intervalli IP degli alias e le regole di inoltro.
Modifica
/etc/default/instance_configs.cfg
impostandoip_forwarding=false
nella sezione[NetworkInterfaces]
. Puoi creare la sezione[NetworkInterfaces]
se non è già presente nel fileinstance_configs.cfg
.Esegui una delle seguenti attività:
Riavvia la VM del nodo.
Riavvia il servizio
google-guest-agent.service
e modifica la tabella delle route locali.Per riavviare il servizio
google-guest-agent.service
, eseguisudo systemctl restart google-guest-agent.service
. Quindi, modifica la tabella delle route locali per rimuovere eventuali voci per gli intervalli di indirizzi IP degli alias, ad esempio:sudo ip route del local
ALIAS_IP_RANGE devDEVICE_IDENTIFIER Sostituisci quanto segue:
ALIAS_IP_RANGE
: l'intervallo di indirizzi IP dell'alias.DEVICE_IDENTIFIER
: l'identificatore dell'interfaccia di rete, ad esempioens4
oeth0
.
Per ulteriori informazioni, consulta la sezione Configurazione nella documentazione dell'agente ospite Google.
Passaggi successivi
- Scopri di più sulle istanze.