Usa route basate su criteri

Le route basate su criteri consentono di selezionare un hop successivo in base a più dell'indirizzo IP di destinazione di un pacchetto. Questa pagina descrive come creare, elencare, descrivere ed eliminare route basate su criteri.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per l'utilizzo delle route basate su criteri, chiedi all'amministratore di concederti il ruolo IAM Amministratore rete Compute (roles/compute.networkAdmin) per il tuo progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea route basate su criteri

Quando crei una route basata su criteri, 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 salta altre route basate su criteri.

Console

  1. Nella console Google Cloud, vai a Route.

    Vai a Routes

  2. Fai clic su Gestione route.

  3. Fai clic su Crea route.

  4. Inserisci un nome per il percorso.

  5. (Facoltativo) Inserisci una descrizione.

  6. Fai clic su Rete, quindi seleziona la rete a cui vuoi aggiungere la route basata su criteri.

  7. Fai clic su Tipo di route e poi seleziona Route basata su criteri.

  8. Nella sezione Ambito della route, esegui una delle seguenti operazioni:

    • Per applicare la route a tutte le istanze di macchine virtuali (VM), ai collegamenti VLAN per Cloud Interconnect e ai tunnel Cloud VPN nella rete Virtual Private Cloud, seleziona Questa route si applica a tutte le istanze VM, ai collegamenti VLAN e ai tunnel VPN.

      Google consiglia di procedere con cautela durante la creazione di route 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 fare in modo che la route si applichi 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 la 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, quindi seleziona la regione dei collegamenti VLAN. Non è possibile creare una route basata su criteri che si applica a un collegamento VLAN specifico.

  9. Nella sezione Criteri di classificazione, procedi nel seguente modo:

    1. Inserisci un Intervallo IP di origine.
    2. Inserisci un intervallo IP di destinazione.
    3. Fai clic su Protocollo, quindi seleziona i protocolli a cui si applica questa route.
  10. Inserisci una Priorità.

  11. Nella sezione Hop successivo, fai clic su Hop successivo, quindi segui questi passaggi:

    • Per specificare un bilanciatore del carico di rete passthrough interno per l'hop successivo, seleziona Specifica una regola di forwarding del bilanciatore del carico di rete passthrough interno, quindi segui questi passaggi:
      • Per selezionare una regola di forwarding da un elenco di regole di forwarding esistenti:
        1. Seleziona Utilizzato dalla regola di forwarding di un bilanciatore del carico interno nel progetto attuale.
        2. Fai clic su Indirizzo IP della regola di forwarding, quindi seleziona un indirizzo IP associato a un bilanciatore del carico interno nel progetto selezionato.
      • Per inserire un indirizzo IP:
        1. Seleziona Non utilizzato.
        2. Nel campo Indirizzo IP della regola di forwarding, inserisci un indirizzo IP. L'indirizzo IP deve provenire dagli intervalli di indirizzi IP della rete in cui stai creando questa route basata su criteri. Puoi specificare un indirizzo IP già associato a una regola di forwarding del bilanciatore del carico di rete passthrough interno oppure specificare un indirizzo IP inutilizzato e creare la regola di forwarding dopo aver creato questa route basata su criteri.
    • Per creare una route basata su criteri che ignori altre route basate su criteri, seleziona Salta altre route basate su criteri.
  12. Fai clic su Crea.

gcloud

Utilizza il comando policy-based-routes create.

  • Per applicare la route a tutte le istanze VM, ai collegamenti VLAN per Cloud Interconnect e ai tunnel Cloud VPN nella rete Virtual Private Cloud, utilizza il comando seguente.

    Google consiglia di procedere con cautela durante la creazione di route 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 \
      --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 sono ALL, TCP o UDP. Il valore predefinito è ALL.
    • PROJECT_ID: l'ID del progetto.
    • NETWORK: il nome della rete a cui applicare la route basata su criteri.
    • NEXT_HOP: l'indirizzo IPv4 del bilanciatore del carico di rete passthrough interno dell'hop successivo della route.
    • DESCRIPTION: una descrizione facoltativa del percorso.
    • 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 \
      --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 comando seguente. Puoi applicare la route a tutti i 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 \
      --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 per Cloud Interconnect a cui applicare la route. Per applicare la route basata su criteri a tutti i collegamenti VLAN per Cloud Interconnect nella rete VPC della route, utilizza all.

  • Per specificare un hop successivo che ignori altre route basate su criteri per VM specifiche identificate dai tag di rete, utilizza il comando seguente:

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
      --source-range=SOURCE_RANGE \
      --destination-range=DESTINATION_RANGE \
      --ip-protocol=PROTOCOL \
      --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, ai collegamenti VLAN per Cloud Interconnect e ai tunnel Cloud VPN nella rete Virtual Private Cloud, includi il corpo della richiesta seguente.

    Google consiglia di procedere con cautela durante la creazione di route 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": "IPv4"
      },
      "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 sono ALL, TCP o UDP. Il valore predefinito è ALL.
    • NETWORK: il nome della rete a cui applicare la route basata su criteri. La route si applica al traffico in uscita dalle istanze di questa rete che soddisfano gli altri criteri di classificazione.
    • NEXT_HOP: l'indirizzo IPv4 del bilanciatore del carico di rete passthrough interno dell'hop successivo della route.
    • DESCRIPTION: una descrizione facoltativa del percorso.
    • 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": "IPv4"
      },
      "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 formato: "tag1","tag2","tag3".

  • Per applicare la route solo ai collegamenti VLAN per Cloud Interconnect, includi il corpo della richiesta seguente. Non è possibile creare una route basata su criteri che si applica a un collegamento VLAN specifico.

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IPv4"
      },
      "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, utilizza all.

  • Per specificare un hop successivo che ignori altre route basate su criteri per VM specifiche identificate dai tag di rete, utilizza il comando seguente:

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IPv4"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopOtherRoutes": "DEFAULT_ROUTING",
      "description": "DESCRIPTION",
      "priority": "PRIORITY",
      "virtualMachine": {
        "tags": [
          "NETWORK_TAGS"
        ]
      }
    }
    

Verificare la connettività per una route basata su criteri

Connectivity Tests è uno strumento di diagnostica che consente di verificare la connettività tra endpoint nella rete. Analizza la configurazione e, in alcuni casi, esegue la verifica in fase di esecuzione. Connectivity Tests supporta route basate su criteri. Per eseguire Connectivity Tests con le route basate su criteri, consulta Creare ed eseguire Connectivity Tests.

Elenca route basate su criteri

Puoi elencare le route basate su criteri per visualizzare tutte le route basate su criteri in un progetto o in una rete e in una regione.

Console

  1. Nella console Google Cloud, vai a Route.

    Vai a Routes

    • Per visualizzare tutte le route basate su criteri in una rete VPC e un'area geografica, segui questi passaggi:

      1. Fai clic su Route effettive.
      2. Fai clic su Rete, quindi seleziona una rete.
      3. Fai clic su Regione e seleziona un'area geografica.
      4. Fai clic su Visualizza.
    • Per visualizzare tutte le route basate su criteri in un progetto:

      1. 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 criteri

Puoi descrivere una route basata su criteri per visualizzarne i dettagli.

Console

  1. Nella console Google Cloud, vai a Route.

    Vai a Routes

  2. Fai clic su Route effettive.

  3. Fai clic su Rete, quindi seleziona una rete.

  4. Fai clic su Regione e seleziona un'area geografica.

  5. Fai clic su Visualizza.

  6. Fai clic sul nome di una route basata su criteri per visualizzarne i dettagli.

gcloud

Per descrivere una route basata su criteri, utilizza il comando policy-based-routes describe.

gcloud network-connectivity policy-based-routes describe NAME

Sostituisci NAME con il nome del percorso 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 criteri

Puoi eliminare una route basata su criteri per rimuoverla da una rete VPC.

Console

  1. Nella console Google Cloud, vai a Route.

    Vai a Routes

  2. Fai clic su Route effettive.

  3. Fai clic su Rete, quindi seleziona una rete.

  4. Fai clic su Regione e seleziona un'area geografica.

  5. Fai clic su Visualizza.

  6. Fai clic sul nome di una route basata su criteri.

  7. Fai clic su Elimina, poi fai di nuovo clic su Elimina per confermare.

gcloud

Per eliminare una route basata su criteri, 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 route basate su criteri nei seguenti modi, è necessaria una configurazione speciale.

Usa route basate su criteri con GKE

Se crei route basate su criteri in reti VPC con cluster Google Kubernetes Engine (GKE), tieni presente quanto segue:

Route basate su criteri e Private Service Connect per i servizi pubblicati

Non è possibile utilizzare route basate su criteri per instradare il traffico dalle VM agli endpoint Private Service Connect per i servizi pubblicati o ai backend di Private Service Connect per i servizi pubblicati. Quando utilizzi route basate su criteri e Private Service Connect per i servizi pubblicati:

  • Usa i tag di rete in modo che le route basate su criteri vengano applicate a VM specifiche.
  • Evita di creare route basate su criteri con intervalli di indirizzi IP di origine o di destinazione pari a 0.0.0.0/0.
  • Se devi creare una route basata su criteri con un intervallo di destinazione che includa l'indirizzo IP di un endpoint o di un backend Private Service Connect, crea una route basata su criteri con priorità più alta che salta altre route basate su criteri. Configura la destinazione della route basata su criteri con priorità più alta 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 il routing 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 in route basate su criteri.

Se utilizzi uno dei seguenti modi per accedere alle API e ai servizi Google, consulta le best practice elencate nella sezione seguente:

best practice

Consigliamo le seguenti best practice per le precedenti modalità di accesso alle API e ai servizi Google:

  • Utilizza i tag di rete in modo che le route basate su criteri vengano applicate a VM specifiche.
  • Evita di creare route basate su criteri con intervalli di origine o di destinazione pari a 0.0.0.0/0.
  • Se crei route basate su criteri che includono intervalli di destinazione utilizzati dalle API e dai servizi Google, endpoint Private Service Connect per API di Google o backend di Private Service Connect per le API, crea route basate su criteri con priorità più elevata che saltano altre route basate su criteri. Imposta le destinazioni di queste route basate su criteri con priorità più alta in modo che corrispondano agli indirizzi IP per le API e i servizi Google, gli endpoint Private Service Connect o i backend di Private Service Connect che utilizzi. Gli intervalli di indirizzi IP utilizzati dalle API e dai servizi Google includono:
    • Gli indirizzi IP per i domini predefiniti utilizzati dalle API e dai servizi Google
    • Gli indirizzi IP virtuali (VIP) con accesso privato Google:
      • private.googleapis.com (199.36.153.8/30)
      • restricted.googleapis.com (199.36.153.4/30)