Usa route basate su criteri
Le route basate su criteri consentono di selezionare un hop successivo in base a più di un indirizzo IP di destinazione di un pacchetto. Questa pagina descrive come creare, elencare, descrivere ed eliminare le route basate su policy.
Prima di iniziare
- Per utilizzare gli esempi di riga di comando in questa guida, installa o esegui l'aggiornamento all'ultima versione di Google Cloud CLI.
- Devi abilitare l'API Network Connectivity nel tuo progetto.
- Hai bisogno di un bilanciatore del carico di rete passthrough interno. Ti consigliamo di abilitare l'accesso globale in modo che il bilanciatore del carico di rete passthrough interno non elimini i pacchetti provenienti da regioni diverse da quella in cui è definito.
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per utilizzare le route basate su criteri,
chiedi all'amministratore di concederti il
ruolo IAM Compute Network Admin (roles/compute.networkAdmin
) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea route basate su policy
Quando crei una route basata su policy, devi specificare quanto segue:
- Ambito della route: le risorse a cui può essere applicata la route.
- Criteri di classificazione: gli intervalli di indirizzi IP di origine, gli intervalli di indirizzi IP di destinazione e i protocolli che determinano a quali pacchetti si applica la route. La route basata su criteri si applica ai pacchetti che corrispondono a tutti i criteri di classificazione specificati.
Hop successivo: un bilanciatore del carico di rete passthrough interno dell'hop successivo o un hop successivo che ignora altre route basate su policy.
Console
Nella Google Cloud console, vai a Route.
Fai clic su Gestione route.
Fai clic su Crea percorso.
Inserisci un nome per l'itinerario.
(Facoltativo) Inserisci una descrizione.
Fai clic su Rete, quindi seleziona la rete a cui vuoi aggiungere la route basata su policy.
Fai clic su Tipo di route, quindi seleziona Route basata su policy.
Seleziona una versione IP.
Nella sezione Ambito route, esegui una delle seguenti operazioni:
Per applicare la route a tutte le istanze di macchine virtuali (VM), a tutti i collegamenti VLAN per Cloud Interconnect e a tutti i tunnel Cloud VPN nella rete Virtual Private Cloud, seleziona Questa route si applica a tutte le istanze VM, a tutti i collegamenti VLAN e a tutti i tunnel VPN.
Google consiglia cautela quando crei itinerari di questo tipo. La route viene applicata a tutti i pacchetti in uscita che corrispondono ai criteri di classificazione, che possono includere il traffico in uscita dal backend del bilanciatore del carico di rete passthrough interno.
Per applicare la route solo a determinate istanze VM, seleziona Questa route si applica solo alle istanze VM, quindi inserisci i tag di rete delle VM a cui deve essere applicata questa route. Puoi inserire più tag di rete in un elenco separato da virgole.
Per applicare la route a tutti i collegamenti VLAN per Cloud Interconnect nella rete VPC della route, seleziona Questa route si applica solo ai collegamenti VLAN.
Per applicare la route ai collegamenti VLAN per Cloud Interconnect in una regione specifica, seleziona Questa route si applica solo ai collegamenti VLAN e poi seleziona la regione dei collegamenti VLAN. Non è possibile creare una route basata su policy che si applichi a un collegamento VLAN specifico.
Nella sezione Criteri di classificazione, segui questi passaggi:
- Inserisci un intervallo IP di origine.
- Inserisci un intervallo IP di destinazione.
- Fai clic su Protocollo, quindi seleziona i protocolli a cui si applica questa route.
Inserisci una priorità.
Nella sezione Hop successivo, fai clic su Hop successivo e poi segui questi passaggi:
Per specificare un bilanciatore del carico di rete passthrough interno dell'hop successivo, seleziona Specifica una regola di forwarding del bilanciatore del carico di rete passthrough interno e poi procedi nel seguente modo:
- Per selezionare una regola di forwarding da un elenco di regole di inoltro esistenti:
- Seleziona Utilizzato dalla regola di forwarding di un bilanciatore del carico interno nel progetto attuale.
- Fai clic su Indirizzo IP della regola di forwarding e poi seleziona un indirizzo IP associato a un bilanciatore del carico interno nel progetto selezionato.
Per inserire un indirizzo IP:
- Seleziona Non utilizzati.
Nel campo Indirizzo IP della regola di forwarding, inserisci un indirizzo IP senza una lunghezza del prefisso. L'indirizzo IP deve provenire da una delle seguenti fonti:
- Gli intervalli di indirizzi IP della rete VPC in cui stai creando questa route basata su policy.
- Gli intervalli di indirizzi IP di una rete VPC connessa alla rete VPC della route tramite il peering di rete VPC.
Puoi specificare un indirizzo IP già associato a una regola di forwarding del bilanciatore del carico di rete passthrough interno oppure puoi specificare un indirizzo IP non utilizzato e creare la regola di forwarding dopo aver creato questa route basata su criteri.
- Per selezionare una regola di forwarding da un elenco di regole di inoltro esistenti:
Per creare una route basata su policy che ignori altre route basate su policy, seleziona Salta altre route basate su policy.
Fai clic su Crea.
gcloud
Utilizza il comando policy-based-routes create
.
Per applicare la route a tutte le istanze VM, a tutti i collegamenti VLAN per Cloud Interconnect e a tutti i tunnel Cloud VPN nella rete Virtual Private Cloud, utilizza il seguente comando.
Google consiglia cautela quando crei itinerari di questo tipo. La route viene applicata a tutti i pacchetti in uscita che corrispondono ai criteri di classificazione, che possono includere il traffico in uscita dal backend del bilanciatore del carico di rete passthrough interno.
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=SOURCE_RANGE \ --destination-range=DESTINATION_RANGE \ --ip-protocol=PROTOCOL \ --protocol-version=IP_VERSION \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-ilb-ip=NEXT_HOP \ --description=DESCRIPTION \ --priority=PRIORITY
Sostituisci quanto segue:
ROUTE_NAME
: il nome della route basata su criteri.SOURCE_RANGE
: l'intervallo CIDR IP di origine.DESTINATION_RANGE
: l'intervallo CIDR IP di destinazione.PROTOCOL
: il protocollo del traffico da inoltrare. Le opzioni sonoALL
,TCP
oUDP
. Il valore predefinito èALL
.IP_VERSION
: un singolo protocollo internet a cui si applica questa route. SpecificaIPv4
oIPv6
. Il valore predefinito èIPv4
.PROJECT_ID
: l'ID del progetto.NETWORK
: il nome della rete a cui applicare la route basata su criteri.NEXT_HOP
: un singolo indirizzo IP, senza lunghezza del prefisso, per il bilanciatore del carico di rete passthrough interno dell'hop successivo della route. Specifica un indirizzo IPv4 come hop successivo per il traffico IPv4 oppure specifica un indirizzo IPv6 per il traffico IPv6. Il bilanciatore del carico deve trovarsi nella stessa rete VPC della route basata su policy o in una rete VPC connessa alla rete VPC della route tramite il peering di rete VPC.Se la route si applica al traffico IPv6, devi configurare il bilanciatore del carico con subnet che hanno intervalli di indirizzi IPv6.
DESCRIPTION
: una descrizione facoltativa dell'itinerario.PRIORITY
: la priorità della route basata su criteri rispetto ad altre route basate su criteri.
Per applicare la route solo a determinate istanze VM, utilizza il seguente comando:
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=SOURCE_RANGE \ --destination-range=DESTINATION_RANGE \ --ip-protocol=PROTOCOL \ --protocol-version=IP_VERSION \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-ilb-ip=NEXT_HOP \ --description=DESCRIPTION \ --priority=PRIORITY \ --tags=NETWORK_TAGS
Sostituisci
NETWORK_TAGS
con uno o più tag di rete delle VM a cui applicare la route. Puoi includere più tag di rete in un elenco separato da virgole.Per applicare la route solo ai collegamenti VLAN per Cloud Interconnect, utilizza il seguente comando. Puoi applicare la route ai collegamenti VLAN per Cloud Interconnect in una regione specifica o a tutti i collegamenti VLAN per Cloud Interconnect in una rete VPC.
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=SOURCE_RANGE \ --destination-range=DESTINATION_RANGE \ --ip-protocol=PROTOCOL \ --protocol-version=IP_VERSION \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-ilb-ip=NEXT_HOP \ --description=DESCRIPTION \ --priority=PRIORITY \ --interconnect-attachment-region=INTERCONNECT_REGION
Sostituisci
INTERCONNECT_REGION
con la regione dei collegamenti VLAN a cui Cloud Interconnect deve applicare la route. Per applicare la route basata su criteri a tutti i collegamenti VLAN per Cloud Interconnect nella rete VPC della route, utilizzaall
.Per specificare un hop successivo che ignora altre route basate su criteri per VM specifiche identificate dai tag di rete, utilizza il seguente comando:
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=SOURCE_RANGE \ --destination-range=DESTINATION_RANGE \ --ip-protocol=PROTOCOL \ --protocol-version=IP_VERSION \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-other-routes=DEFAULT_ROUTING \ --description=DESCRIPTION \ --priority=PRIORITY \ --tags=NETWORK_TAGS
API
Invia una richiesta POST
al
metodo policyBasedRoutes.create
:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=ROUTE_NAME
Per applicare la route a tutte le istanze VM, a tutti i collegamenti VLAN per Cloud Interconnect e a tutti i tunnel Cloud VPN nella rete Virtual Private Cloud , includi il seguente corpo della richiesta.
Google consiglia cautela quando crei itinerari di questo tipo. La route viene applicata a tutti i pacchetti in uscita che corrispondono ai criteri di classificazione, che possono includere il traffico in uscita dal backend del bilanciatore del carico di rete passthrough interno.
{ "filter": { "srcRange": "SOURCE_RANGE", "destRange": "DESTINATION_RANGE", "ipProtocol": "PROTOCOL", "protocolVersion": "IP_VERSION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "NEXT_HOP", "description": "DESCRIPTION", "priority": "PRIORITY" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto.ROUTE_NAME
: il nome della route basata su criteri.SOURCE_RANGE
: l'intervallo CIDR IP di origine.DESTINATION_RANGE
: l'intervallo CIDR IP di destinazione.PROTOCOL
: il protocollo del traffico da inoltrare. Le opzioni sonoALL
,TCP
oUDP
. Il valore predefinito èALL
.IP_VERSION
: una singola versione del protocollo internet a cui si applica la route. SpecificaIPv4
oIPv6
. Il valore predefinito èIPv4
.NETWORK
: il nome della rete a cui applicare la route basata su criteri. La route si applica al traffico in uscita dalle istanze in questa rete che soddisfano gli altri criteri di classificazione.NEXT_HOP
: un singolo indirizzo IP, senza lunghezza del prefisso, per il bilanciatore del carico di rete passthrough interno dell'hop successivo della route. Specifica un indirizzo IPv4 come hop successivo per il traffico IPv4 oppure specifica un indirizzo IPv6 per il traffico IPv6. Il bilanciatore del carico deve trovarsi nella stessa rete VPC della route basata su policy o in una rete VPC connessa alla rete VPC della route tramite il peering di rete VPC.Se la route si applica al traffico IPv6, devi configurare il bilanciatore del carico con subnet che hanno intervalli di indirizzi IPv6.
DESCRIPTION
: una descrizione facoltativa dell'itinerario.PRIORITY
: la priorità della route basata su criteri rispetto ad altre route basate su criteri.
Per applicare la route solo a determinate istanze VM, includi il seguente corpo della richiesta:
{ "filter": { "srcRange": "SOURCE_RANGE", "destRange": "DESTINATION_RANGE", "ipProtocol": "PROTOCOL", "protocolVersion": "IP_VERSION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "NEXT_HOP", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
Sostituisci
NETWORK_TAGS
con uno o più tag di rete. La route basata su criteri si applica al traffico in uscita dalle istanze che hanno almeno uno di questi tag. Puoi includere più tag nel seguente modulo:"tag1","tag2","tag3"
.Per applicare la route solo ai collegamenti VLAN per Cloud Interconnect, includi il seguente corpo della richiesta. Non è possibile creare una route basata su policy che si applichi a un collegamento VLAN specifico.
{ "filter": { "srcRange": "SOURCE_RANGE", "destRange": "DESTINATION_RANGE", "ipProtocol": "PROTOCOL", "protocolVersion": "IP_VERSION" }, "interconnectAttachment": { "region": "INTERCONNECT_REGION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "NEXT_HOP", "description": "DESCRIPTION", "priority": "PRIORITY" }
Sostituisci
INTERCONNECT_REGION
con la regione dei collegamenti VLAN per Cloud Interconnect a cui applicare questa route. Per applicare la route basata su criteri a tutti i collegamenti VLAN per Cloud Interconnect nella rete VPC della route, utilizzaall
.Per specificare un hop successivo che ignora altre route basate su criteri per VM specifiche identificate dai tag di rete, utilizza il seguente comando:
{ "filter": { "srcRange": "SOURCE_RANGE", "destRange": "DESTINATION_RANGE", "ipProtocol": "PROTOCOL", "protocolVersion": "IP_VERSION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopOtherRoutes": "DEFAULT_ROUTING", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
Verifica la connettività per una route basata su policy
Connectivity Tests è uno strumento di diagnostica che ti consente di verificare la connettività tra gli endpoint della tua rete. Analizza la tua configurazione e, in alcuni casi, esegue la verifica in fase di esecuzione. Connectivity Tests supporta le route basate su criteri. Per eseguire Connectivity Tests con le route basate su policy, consulta Crea ed esegui test con Connectivity Tests.
Elenca le route basate su policy
Puoi elencare le route basate su criteri per visualizzare tutte le route basate su criteri in un progetto o in una rete e una regione.
Console
Nella Google Cloud console, vai a Route.
Per visualizzare tutte le route basate su criteri in una rete VPC e in una regione:
- Fai clic su Route operative.
- Fai clic su Rete, quindi seleziona una rete.
- Fai clic su Regione, quindi seleziona una regione.
- Fai clic su Visualizza.
Per visualizzare tutte le route basate su criteri in un progetto:
- Fai clic su Gestione route.
gcloud
Utilizza il comando policy-based-routes list
.
gcloud network-connectivity policy-based-routes list
API
Invia una richiesta GET
al
metodo policyBasedRoutes.list
.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes
Sostituisci PROJECT_ID
con l'ID del progetto in cui elencare le route basate su criteri.
Descrivere le route basate su policy
Puoi descrivere una route basata su policy per visualizzare i dettagli.
Console
Nella Google Cloud console, vai a Route.
Fai clic su Route operative.
Fai clic su Rete, quindi seleziona una rete.
Fai clic su Regione, quindi seleziona una regione.
Fai clic su Visualizza.
Fai clic sul nome di una route basata su criteri per visualizzarne i dettagli.
gcloud
Per descrivere una route basata su policy, utilizza il
comando policy-based-routes describe
.
gcloud network-connectivity policy-based-routes describe NAME
Sostituisci NAME
con il nome della route da descrivere.
API
Invia una richiesta GET
al
metodo policyBasedRoutes.get
.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto.ROUTE_NAME
: il nome della route basata su criteri da descrivere.
Elimina route basate su policy
Puoi eliminare una route basata su policy per rimuoverla da una rete VPC.
Console
Nella Google Cloud console, vai a Route.
Fai clic su Route operative.
Fai clic su Rete, quindi seleziona una rete.
Fai clic su Regione, quindi seleziona una regione.
Fai clic su Visualizza.
Fai clic sul nome di una route basata su policy.
Fai clic su Elimina, quindi fai di nuovo clic su Elimina per confermare.
gcloud
Per eliminare una route basata su policy, utilizza il
comando policy-based-routes delete
.
gcloud network-connectivity policy-based-routes delete NAME
Sostituisci NAME
con il nome della route da eliminare.
API
Invia una richiesta DELETE
al
metodo policyBasedRoutes.delete
.
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto.ROUTE_NAME
: il nome della route basata su criteri da eliminare.
Compatibilità
Per utilizzare le route basate su criteri nei seguenti modi è necessaria una configurazione speciale.
Utilizzare route basate su policy con GKE
Se crei route basati su criteri nelle reti VPC che hanno cluster Google Kubernetes Engine (GKE), tieni presente quanto segue:
- Non creare route basate su policy le cui destinazioni includono nodi del cluster o indirizzi IP dei pod.
- Non creare route basate su policy le cui destinazioni includono endpoint privati del control plane del cluster.
- Alcuni cluster Google Kubernetes Engine (GKE) pubblici hanno endpoint privati del control plane Private Service Connect. Per questi cluster, per impostazione predefinita, GKE crea l'endpoint privato del control plane Private Service Connect nell'intervallo di indirizzi IPv4 principale della subnet del cluster. Per scegliere un intervallo di subnet personalizzato (di una subnet nella stessa regione) per l'endpoint privato del control plane Private Service Connect, consulta Creare un cluster e selezionare l'intervallo IP del control plane.
- Quando crei un cluster GKE privato, specifichi un intervallo di indirizzi IP per l'endpoint privato del control plane (
--master-ipv4-cidr
). Assicurati di non creare una route basata su criteri la cui destinazione includa questo intervallo. Per maggiori informazioni, consulta Endpoint nei cluster privati.
Route basate su policy e Private Service Connect per i servizi pubblicati
Le route basate su criteri non possono instradare il traffico verso endpoint Private Service Connect per i servizi pubblicati o backend Private Service Connect per i servizi pubblicati. Quando utilizzi route basati su criteri e Private Service Connect per i servizi pubblicati:
- Utilizza i tag di rete in modo che le route basate su criteri vengano applicate a VM specifiche.
- Evita di creare route basate su policy con intervalli di indirizzi IP di origine o di destinazione di
0.0.0.0/0
. - Se devi creare una route basata su policy con un intervallo di destinazione che include l'indirizzo IP di un endpoint o un backend Private Service Connect, crea una route basata su policy con priorità più elevata che ignori le altre route basate su policy. Configura la destinazione della route basata su policy con priorità più elevata con un intervallo di indirizzi IP più specifico che includa l'indirizzo IP dell'endpoint o del backend Private Service Connect.
Route basate su criteri e accesso alle API e ai servizi Google
Google Cloud non supporta l'instradamento del traffico verso API e servizi Google tramite altre istanze VM o hop successivi personalizzati, inclusi i backend VM dei bilanciatori del carico di rete passthrough interni dell'hop successivo nelle route basate su policy.
Se utilizzi uno dei seguenti metodi per accedere alle API e ai servizi Google, consulta le best practice elencate nella sezione seguente:
- Utilizzo dell'accesso privato Google per accedere alle API e ai servizi Google
- Accesso alle API e ai servizi Google da VM con indirizzi IP esterni
- Utilizzo degli endpoint Private Service Connect per le API di Google
- Utilizzo dei backend di Private Service Connect per le API di Google
Best practice
Consigliamo le seguenti best practice per i modi precedenti di accedere alle API e ai servizi Google:
- Utilizza i tag di rete in modo che le route basate su criteri si applichino a VM specifiche.
- Evita di creare route basate su policy con intervalli di origine o destinazione di
0.0.0.0/0
. - Se crei route basati su criteri che includono intervalli di destinazione utilizzati da API e servizi Google, endpoint Private Service Connect per le API di Google o backend Private Service Connect per le API, crea route basati su criteri con priorità più elevata che ignorano altri route basati su criteri.
Imposta le destinazioni di queste route basate su policy con priorità più elevata in modo che corrispondano agli indirizzi IP per le API e i servizi Google, agli endpoint Private Service Connect o ai backend Private Service Connect che utilizzi. Gli intervalli di indirizzi IP utilizzati dalle API e dai servizi Google includono quanto segue:
- Gli indirizzi IP per i domini predefiniti utilizzati dalle API e dai servizi Google
- Gli indirizzi IP virtuali (VIP) di Private Google Access:
private.googleapis.com
(199.36.153.8/30)restricted.googleapis.com
(199.36.153.4/30)