Creare e utilizzare intervalli interni

Questo documento descrive come creare, utilizzare ed eliminare gli intervalli interni.

Gli intervalli interni consentono di gestire uno spazio indirizzi IP unificato nelle reti Virtual Private Cloud (VPC) consentendo di allocare blocchi di indirizzi IP interni e specificare come possono essere utilizzati.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per lavorare con gli intervalli interni, 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.

Prenota intervalli interni

Quando crei un intervallo interno, devi specificare almeno due elementi: gli indirizzi IP da allocare e la rete in cui allocare gli indirizzi. Puoi creare un intervallo interno IPv4 o IPv6 con un blocco CIDR specifico oppure puoi fare in modo che Google Cloud allochi automaticamente un blocco IPv4. Non puoi creare un intervallo interno IPv6 con un blocco di indirizzi allocato automaticamente.

Quando richiedi un blocco CIDR IPv4 allocato automaticamente, fornisci una lunghezza del prefisso e uno o più blocchi CIDR IPv4 di destinazione facoltativi. Se non specifica un blocco CIDR di destinazione, Google Cloud utilizza gli intervalli predefiniti di 10.0.0.0/8 per le reti VPC in modalità personalizzata o 10.128.0.0/9 per le reti VPC in modalità automatica. Google Cloud tiene conto delle allocazioni di indirizzi IP esistenti e alloca all'intervallo interno un blocco CIDR libero delle dimensioni scelte all'interno dei blocchi CIDR di destinazione. Puoi perfezionare ulteriormente questa allocazione fornendo un elenco facoltativo di blocchi CIDR da escludere.Google Cloud alloca un blocco di indirizzi IP all'intervallo interno che non si sovrappone a nessun blocco escluso. L'elenco dei blocchi esclusi non può essere aggiornato dopo la creazione di un intervallo interno.

Per controllare il metodo utilizzato da Google Cloud per selezionare automaticamente un blocco gratuito, puoi specificare una strategia di allocazione (anteprima). Se non specifichi una strategia di allocazione, Google Cloudalloca in modo casuale un intervallo di indirizzi IP libero all'interno dei blocchi CIDR di destinazione (o dell'intervallo predefinito, se non vengono specificati blocchi CIDR di destinazione). Per scegliere una strategia di allocazione, utilizza Google Cloud CLI o invia una richiesta API.

Gli intervalli interni IPv6 ti consentono di impedire l'assegnazione automatica di indirizzi IP a nuove subnet solo IPv6 o dual-stack. Gli intervalli interni IPv6 devono avere il tipo di utilizzo EXTERNAL_TO_VPC e il tipo di peering FOR_SELF. Devi includere un blocco CIDR IPv6 specifico e il campo overlaps deve essere vuoto o non specificato.

Per impedire agli utenti di aggiornare il blocco CIDR o la configurazione di sovrapposizione di un intervallo interno, puoi creare un intervallo interno immutabile. Gli intervalli interni immutabili impediscono modifiche a queste proprietà, ma puoi comunque aggiornare la descrizione. L'immutabilità non può essere modificata dopo la creazione dell'intervallo interno.

Per impostazione predefinita, Google Cloud blocca la creazione di risorse o intervalli interni se condividono indirizzi IP sovrapposti nella stessa rete VPC. Puoi configurare un intervallo interno IPv4 per consentire la sovrapposizione con gli intervalli di indirizzi di subnet esistenti, route nuove ed esistenti o entrambi. Non puoi creare risorse Google Cloud che utilizzano indirizzi IP di un intervallo interno esistente, a meno che tu non associ esplicitamente la risorsa all'intervallo interno (per le subnet) o non configuri la sovrapposizione (per le route).

Console

  1. Nella console Google Cloud , vai alla pagina Intervalli interni.

    Vai a Intervalli interni.

  2. Fai clic su Riserva intervallo interno.

  3. Inserisci un nome.

  4. (Facoltativo) Inserisci una descrizione.

  5. Seleziona una versione IP.

    • Se selezioni IPv4, procedi nel seguente modo:

      1. Specifica se l'intervallo interno è immutabile.
      2. Seleziona un metodo di prenotazione.

        • Se selezioni Automatico:

          1. Seleziona una lunghezza del prefisso.
          2. Fai clic su Aggiungi un intervallo di indirizzi IP di destinazione e poi inserisci un intervallo di indirizzi IP di destinazione. Puoi aggiungere più intervalli target.
          3. (Facoltativo) Fai clic su Aggiungi un intervallo da escludere e poi inserisci un intervallo di indirizzi IP da escludere. Puoi aggiungere più intervalli esclusi.

            Google Cloud alloca un blocco di indirizzi IP all'intervallo interno che non si sovrappone ad alcun intervallo escluso. Questo elenco non può essere aggiornato dopo la creazione dell'intervallo interno.

        • Se selezioni Specifica, inserisci un intervallo IP in notazione CIDR.

      3. Seleziona una rete.

      4. Seleziona un tipo di peering.

      5. Seleziona un tipo di utilizzo.

      6. (Facoltativo) Nella sezione Sovrapposizioni consentite, specifica se l'intervallo interno può sovrapporsi a subnet esistenti, a route nuove ed esistenti o a entrambi.

    • Se selezioni IPv6, procedi nel seguente modo:

      1. Specifica se l'intervallo interno è immutabile.
      2. Seleziona Specifica e poi inserisci un blocco CIDR IPv6 o IPv6 mappato su IPv4.
      3. Seleziona una rete.
      4. Fai clic su Peering, quindi seleziona Per sé.
      5. Fai clic su Utilizzo e poi seleziona Esterno al VPC.
  6. Fai clic su Prenota.

gcloud

  • Per riservare un intervallo interno per un blocco CIDR IPv4 o IPv6 specifico, utilizza il comando gcloud network-connectivity internal-ranges create.

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE
    

    Sostituisci quanto segue:

    • RANGE_NAME: il nome del nuovo intervallo interno
    • CIDR_RANGE: il blocco CIDR IPv4, IPv6 o IPv6 mappato a IPv4 da allocare al nuovo intervallo interno
      • Se specifichi un blocco IPv6, devi eseguire le seguenti operazioni:
        • Imposta il tipo peering su FOR_SELF.
        • Imposta il tipo usage su EXTERNAL_TO_VPC.
    • NETWORK_NAME: il nome della rete in cui creare l'intervallo interno
    • DESCRIPTION: una descrizione facoltativa dell'intervallo interno
    • PEERING_TYPE: il tipo di peering dell'intervallo interno

      Le opzioni sono FOR_SELF, FOR_PEER e NOT_SHARED. FOR_SELF è il valore predefinito.

    • USAGE_TYPE: il tipo di utilizzo dell'intervallo interno

      Le opzioni sono FOR_VPC, EXTERNAL_TO_VPC e FOR_MIGRATION. Il valore predefinito è FOR_VPC.

  • Per prenotare un intervallo interno IPv4 con un blocco CIDR allocato automaticamente, utilizza il seguente comando:

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --network=NETWORK_NAME \
        --prefix-length=PREFIX_LENGTH \
        --target-cidr-range=TARGET_CIDR_RANGE \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --description="DESCRIPTION" \
        --allocation-strategy=ALLOCATION_STRATEGY
        [--first-available-ranges-lookup-size=FIRST_N_LOOKUP_SIZE]
    

    Sostituisci quanto segue:

    • PREFIX_LENGTH: la lunghezza del prefisso degli indirizzi IP allocati
    • TARGET_CIDR_RANGE: il blocco CIDR di destinazione da cui allocare un blocco di indirizzi IPv4

      Puoi inserire più blocchi CIDR in un elenco separato da virgole. Il valore predefinito è 10.0.0.0/8 per le reti VPC in modalità personalizzata o 10.128.0.0/9 per le reti VPC in modalità automatica.

    • ALLOCATION_STRATEGY: la strategia di allocazione che vuoi utilizzare per il blocco CIDR di questo intervallo interno

      Le opzioni sono RANDOM, FIRST_AVAILABLE, RANDOM_FIRST_N_AVAILABLE e FIRST_SMALLEST_FITTING. Il valore predefinito è RANDOM.

    • FIRST_N_LOOKUP_SIZE: per la strategia di allocazione RANDOM_FIRST_N_AVAILABLE, il numero di blocchi CIDR liberi da trovare prima di determinarne uno in modo casuale

      Includi questo flag solo se scegli la strategia di allocazione RANDOM_FIRST_N_AVAILABLE.

  • Se vuoi escludere intervalli di indirizzi IP quando riservi un intervallo IPv4 interno con un blocco CIDR allocato automaticamente, utilizza il seguente comando:

    gcloud alpha network-connectivity internal-ranges create RANGE_NAME \
        --network=NETWORK_NAME \
        --prefix-length=PREFIX_LENGTH \
        --target-cidr-range=TARGET_CIDR_RANGE \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --description="DESCRIPTION" \
        --exclude-cidr-ranges=EXCLUDED_RANGES
    

    Sostituisci EXCLUDED_RANGES con un elenco separato da virgole di uno o più blocchi CIDR IPv4 da escludere. Google Cloud alloca un blocco di indirizzi IP all'intervallo interno che non si sovrappone a nessun blocco escluso. L'elenco non può essere aggiornato dopo la creazione dell'intervallo interno.

  • Per prenotare un intervallo interno IPv4 con sovrapposizione, utilizza il seguente comando:

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --overlaps=OVERLAPS
    

    Sostituisci OVERLAPS con il tipo di sovrapposizione da consentire. Le opzioni sono OVERLAP_EXISTING_SUBNET_RANGE e OVERLAP_ROUTE_RANGE. Puoi includere entrambi i valori in un elenco separato da virgole.

  • Per riservare un intervallo interno immutabile, utilizza il seguente comando:

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --network=NETWORK_NAME \
        --description="DESCRIPTION" \
        --peering=PEERING_TYPE \
        --usage=USAGE_TYPE \
        --immutable
    

API

  • Per prenotare un intervallo interno per un blocco CIDR IPv4 o IPv6 specifico, invia una richiesta POST al metodo projects.locations.internalRanges.create.

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE"
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto padre per l'intervallo interno
    • RANGE_NAME: il nome dell'intervallo interno
    • CIDR_RANGE: il blocco CIDR IPv4, IPv6 o IPv6 mappato su IPv4 da allocare all'intervallo interno
      • Se specifichi un blocco IPv6, devi eseguire le seguenti operazioni:
        • Imposta il tipo peering su FOR_SELF.
        • Imposta il tipo usage su EXTERNAL_TO_VPC.
    • NETWORK_NAME: il nome della rete in cui creare l'intervallo interno
    • DESCRIPTION: una descrizione facoltativa del nuovo intervallo interno
    • PEERING_TYPE: il tipo di peering dell'intervallo interno

      Le opzioni sono FOR_SELF, FOR_PEER e NOT_SHARED. FOR_SELF è il valore predefinito.

    • USAGE_TYPE: il tipo di utilizzo dell'intervallo interno

      Le opzioni sono FOR_VPC, EXTERNAL_TO_VPC e FOR_MIGRATION. Il valore predefinito è FOR_VPC.

  • Per prenotare un intervallo interno IPv4 con un blocco CIDR allocato automaticamente, invia la seguente richiesta:

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "prefixLength": PREFIX_LENGTH,
      "targetCidrRange": "TARGET_CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "allocationOptions": {
        "allocationStrategy": "ALLOCATION_STRATEGY",
        ["firstAvailableRangesLookupSize": FIRST_N_LOOKUP_SIZE]
      }
    }
    

    Sostituisci quanto segue:

    • PREFIX_LENGTH: la lunghezza del prefisso CIDR per il blocco di indirizzi IP dell'intervallo
    • TARGET_CIDR_RANGE: il blocco CIDR di destinazione da cui allocare un blocco di indirizzi IPv4

      Puoi specificare più intervalli CIDR in un array JSON. Il valore predefinito è 10.0.0.0/8 per le reti VPC in modalità personalizzata o 10.128.0.0/9 per le reti VPC in modalità automatica.

    • ALLOCATION_STRATEGY: la strategia di allocazione che vuoi utilizzare per il blocco CIDR di questo intervallo interno

      Le opzioni sono RANDOM, FIRST_AVAILABLE, RANDOM_FIRST_N_AVAILABLE e FIRST_SMALLEST_FITTING. Il valore predefinito è RANDOM.

    • FIRST_N_LOOKUP_SIZE: per la strategia di allocazione RANDOM_FIRST_N_AVAILABLE, il numero di blocchi CIDR liberi da trovare prima di determinarne uno in modo casuale

      Includi questo campo solo se scegli la strategia di allocazione RANDOM_FIRST_N_AVAILABLE.

  • Se vuoi escludere intervalli di indirizzi IP quando prenoti un intervallo IPv4 interno con un blocco CIDR allocato automaticamente, invia la seguente richiesta:

    POST https://networkconnectivity.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "prefixLength": PREFIX_LENGTH,
      "targetCidrRange": "TARGET_CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "excludeCidrRanges": ["EXCLUDED_RANGE_1","EXCLUDED_RANGE_2"]
    }
    

    Sostituisci EXCLUDED_RANGE_1 e EXCLUDED_RANGE_2 con uno o più blocchi CIDR IPv4 da escludere. Google Cloud alloca un blocco di indirizzi IP all'intervallo interno che non si sovrappone a nessun blocco escluso. L'elenco non può essere aggiornato dopo la creazione dell'intervallo interno.

  • Per prenotare un intervallo interno IPv4 con sovrapposizione, invia la seguente richiesta:

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "overlaps": ["OVERLAPS"]
    }
    

    Sostituisci OVERLAPS con il tipo di sovrapposizione da consentire. Le opzioni sono OVERLAP_EXISTING_SUBNET_RANGE e OVERLAP_ROUTE_RANGE. Puoi includere entrambi i valori in un array JSON.

  • Per prenotare un intervallo interno immutabile, invia la seguente richiesta:

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
    {
      "ipCidrRange": "CIDR_RANGE",
      "network": "NETWORK_NAME",
      "description": "DESCRIPTION",
      "peering": "PEERING_TYPE",
      "usage": "USAGE_TYPE",
      "immutable": true
    }
    

Riserva intervalli interni IPv4 per la migrazione delle subnet

Puoi utilizzare un intervallo interno per eseguire la migrazione di un intervallo CIDR da una subnet a un'altra. Per saperne di più, vedi Eseguire la migrazione degli intervalli di subnet IPv4.

gcloud

Utilizza il comando gcloud network-connectivity internal-ranges create.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --peering=FOR_SELF \
    --usage=FOR_MIGRATION \
    --migration-source=SOURCE_SUBNET \
    --migration-target=TARGET_SUBNET

Sostituisci quanto segue:

  • RANGE_NAME: il nome dell'intervallo interno da creare
  • CIDR_RANGE: il blocco CIDR IPv4 della subnet che vuoi migrare
  • NETWORK_NAME: il nome della rete in cui creare l'intervallo interno
  • SOURCE_SUBNET: l'URI della subnet di origine
  • TARGET_SUBNET: l'URI della subnet di destinazione

API

Invia una richiesta POST al metodo projects.locations.internalRanges.create.

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "peering": "FOR_SELF",
  "usage": "FOR_MIGRATION",
  "migration": {
    "source": "SOURCE_SUBNET",
    "target": "TARGET_SUBNET"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto padre per l'intervallo interno
  • RANGE_NAME: il nome del nuovo intervallo interno
  • CIDR_RANGE: il blocco CIDR IPv4 della subnet che vuoi migrare
  • NETWORK_NAME: il nome della rete in cui creare l'intervallo interno
  • SOURCE_SUBNET: l'URI della subnet di origine
  • TARGET_SUBNET: l'URI della subnet di destinazione

Crea subnet con intervalli interni IPv4

Puoi creare una subnet solo IPv4 o a doppio stack e utilizzare un intervallo interno per specificare l'intervallo di indirizzi IPv4 interni primari della subnet. La subnet può essere associata a un intero intervallo interno o solo a una parte dell'intervallo. Anche gli intervalli secondari per le subnet possono essere associati a intervalli interni.

Console

  1. Prenota un intervallo interno IPv4 nella rete in cui vuoi creare una nuova subnet. Imposta il tipo di utilizzo in questo intervallo interno su For VPC e il tipo di peering su For self.

  2. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  3. Fai clic sul nome di una rete VPC per visualizzare la pagina Dettagli rete VPC.

  4. Fai clic su Aggiungi subnet. Nella finestra di dialogo visualizzata:

    1. Fornisci un nome.
    2. Seleziona una regione.
    3. Seleziona la casella di controllo Associa a un intervallo interno.
    4. Per Intervallo interno riservato, effettua una selezione.
    5. (Facoltativo) Per associare la subnet a una parte dell'intervallo interno, inserisci un intervallo IPv4.
    6. Fai clic su Aggiungi.

gcloud

  1. Prenota un intervallo interno IPv4 nella rete in cui vuoi creare una nuova subnet. Imposta il tipo di utilizzo in questo intervallo interno su FOR_VPC e il tipo di peering su FOR_SELF.
  2. Esegui una di queste operazioni:

    • Per creare una subnet associata a un intervallo interno completo, utilizza il comando gcloud compute networks subnets create.

      gcloud compute networks subnets create SUBNET_NAME \
          --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
          --network=NETWORK_NAME \
          --region=REGION
      

      Sostituisci quanto segue:

      • SUBNET_NAME: il nome della subnet
      • PROJECT_ID: l'ID del progetto in cui creare la subnet
      • RANGE_NAME: il nome dell'intervallo interno da associare alla subnet
      • NETWORK_NAME: il nome della rete in cui creare la subnet
      • REGION: la regione in cui creare la subnet
    • Per creare una subnet associata a una parte di un intervallo interno, utilizza il seguente comando:

      gcloud compute networks subnets create SUBNET_NAME \
          --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
          --range=IP_RANGE \
          --network=NETWORK_NAME \
          --region=REGION
      

      Sostituisci IP_RANGE con un intervallo CIDR IPv4 che sia un sottoinsieme dell'intervallo interno.

Ad esempio, i seguenti comandi creano una subnet associata solo alla parte 10.9.1.0/24 di un intervallo interno che riserva il blocco CIDR 10.9.0.0/16.

gcloud network-connectivity internal-ranges create reserved-range-one \
    --ip-cidr-range=10.9.0.0/16 \
    --network=vpc-one
gcloud compute networks subnets create subnet-one \
    --reserved-internal-range=networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-range-one \
    --range=10.9.1.0/24 \
    --network=vpc-one \
    --region=us-central1

API

  1. Prenota un intervallo interno IPv4 nella rete in cui vuoi creare una nuova subnet. Imposta il tipo di utilizzo in questo intervallo interno su FOR_VPC e il tipo di peering su FOR_SELF.
  2. Esegui una di queste operazioni:

    • Per creare una subnet associata a un intero intervallo interno, invia una richiesta POST al metodo subnetworks.insert.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
      {
        "name" : "SUBNET_NAME",
        "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
        "network" : "NETWORK"
      }
      

      Sostituisci quanto segue:

      • PROJECT_ID: l'ID del progetto padre per la nuova subnet
      • REGION: la regione in cui creare la subnet
      • SUBNET_NAME: il nome della nuova subnet
      • PROJECT_ID: l'ID del progetto in cui creare una subnet
      • RANGE_NAME: il nome dell'intervallo interno da utilizzare per la nuova subnet
      • NETWORK: il nome della rete in cui creare la subnet
    • Per creare una subnet associata a una parte di un intervallo interno, effettua la seguente richiesta:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
      {
        "name" : "SUBNET_NAME",
        "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
        "range" : "IP_RANGE",
        "network" : "NETWORK"
      }
      

      Sostituisci IP_RANGE con un intervallo CIDR IPv4 che sia un sottoinsieme dell'intervallo interno.

Ad esempio, le seguenti richieste creano una subnet associata solo alla parte 10.9.1.0/24 di un intervallo interno che contiene il blocco CIDR 10.9.0.0/16.

POST https://networkconnectivity.googleapis.com/v1/projects/sample-project/locations/global/internalRanges?internalRangeId=reserved-for-subnet
{
  "targetCidrRange": "10.9.0.0/16",
  "network": "network-b"
}
POST https://compute.googleapis.com/compute/v1/projects/11223344/regions/us-central1/subnetworks
{
  "name" : "subnet-with-partial-range",
  "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-for-subnet",
  "range" : "10.9.1.0/24",
  "network" : "network-b"
}

Crea cluster GKE con intervalli interni IPv4

Puoi utilizzare gli intervalli interni IPv4 per allocare indirizzi IP per i cluster VPC nativi di Google Kubernetes Engine (GKE).

gcloud

  1. Crea i seguenti intervalli interni IPv4 utilizzando il comando gcloud network-connectivity internal-ranges create.

    gcloud network-connectivity internal-ranges create gke-nodes-1 \
        --prefix-length=NODE_PREFIX_LENGTH \
        --network=NETWORK
    
    • Per i pod GKE:
    gcloud network-connectivity internal-ranges create gke-pods-1 \
        --prefix-length=POD_PREFIX_LENGTH \
        --network=NETWORK
    
    gcloud network-connectivity internal-ranges create gke-services-1 \
        --prefix-length=SERVICE_PREFIX_LENGTH \
        --network=NETWORK
    

    Sostituisci quanto segue:

    • NODE_PREFIX_LENGTH: la lunghezza del prefisso per l'intervallo interno associato ai nodi GKE
    • POD_PREFIX_LENGTH: la lunghezza del prefisso per l'intervallo interno associato ai pod GKE
    • SERVICE_PREFIX_LENGTH: la lunghezza del prefisso per l'intervallo interno associato ai servizi GKE
    • NETWORK: il nome della rete
  2. Crea una subnet con gli intervalli interni che hai creato nel passaggio precedente utilizzando il comando gcloud compute networks subnets create.

    gcloud compute networks subnets create gke-subnet-1 \
        --network=NETWORK \
        --region=REGION \
        --reserved-internal-range="//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1" \
        --secondary-range-with-reserved-internal-range="pods=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1,services=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
    

    Sostituisci quanto segue:

    • REGION: la regione della subnet.
    • PROJECT_ID: l'ID del progetto
  3. Crea il cluster nativo di VPC utilizzando il comando gcloud container clusters create.

    gcloud container clusters create CLUSTER_NAME \
        --network=NETWORK \
        --subnetwork=gke-subnet-1 \
        --zone=ZONE \
        --cluster-secondary-range-name=pods \
        --services-secondary-range-name=services \
        --enable-ip-alias
    

    Sostituisci ZONE con la zona del cluster.

API

  1. Crea i seguenti intervalli interni inviando richieste POST al metodo projects.locations.internalRanges.create.

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-nodes-1
    {
      "network": "NETWORK",
      "prefixLength": NODE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    • Per i pod GKE:
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-pods-1
    {
      "network": "NETWORK",
      "prefixLength": POD_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-services-1
    {
      "network": "NETWORK",
      "prefixLength": SERVICE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto
    • NETWORK: il nome della rete
    • NODE_PREFIX_LENGTH: la lunghezza del prefisso per l'intervallo interno associato ai nodi GKE
    • POD_PREFIX_LENGTH: la lunghezza del prefisso per l'intervallo interno associato ai pod GKE
    • SERVICE_PREFIX_LENGTH: la lunghezza del prefisso per l'intervallo interno associato ai servizi GKE
  2. Crea una subnet con gli intervalli interni che hai creato nel passaggio precedente inviando una richiesta POST al metodo subnetworks.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name": "gke-subnet-1",
      "network": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK",
      "privateIpGoogleAccess": false,
      "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1",
      "secondaryIpRanges": [
        {
          "rangeName": "pods",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1"
        },
        {
          "rangeName": "services",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
        }
      ]
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto
    • REGION: la regione della subnet.
    • NETWORK: la rete della subnet
  3. Crea il cluster nativo di VPC inviando una richiesta POST al metodo clusters.create.

    POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/clusters
    {
      "cluster": {
        "ipAllocationPolicy": {
          "clusterSecondaryRangeName": "pods",
          "createSubnetwork": false,
          "servicesSecondaryRangeName": "services",
          "useIpAliases": true
        },
        "name": "CLUSTER_NAME",
        "network": "NETWORK",
        "nodePools": [
          {
            "config": {
              "oauthScopes": [
                "https://www.googleapis.com/auth/devstorage.read_only",
                "https://www.googleapis.com/auth/logging.write",
                "https://www.googleapis.com/auth/monitoring",
                "https://www.googleapis.com/auth/service.management.readonly",
                "https://www.googleapis.com/auth/servicecontrol",
                "https://www.googleapis.com/auth/trace.append"
              ]
            },
            "initialNodeCount": 3,
            "management": {
              "autoRepair": true,
              "autoUpgrade": true
            },
            "name": "default-pool",
            "upgradeSettings": {
              "maxSurge": 1
            }
          }
        ],
        "subnetwork": "gke-subnet-1"
      },
      "parent": "projects/PROJECT_ID/locations/ZONE"
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto
    • ZONE: la zona del cluster
    • CLUSTER_NAME: il nome del nuovo cluster
    • NETWORK: la rete del cluster

Elenco intervalli interni

Puoi elencare gli intervalli interni per visualizzare tutti gli intervalli interni nel progetto attuale o in una rete VPC specifica. Per elencare i progetti in una rete VPC, utilizza Google Cloud CLI o invia una richiesta API.

Console

gcloud

  • Per visualizzare tutti gli intervalli interni nel progetto corrente, utilizza il comando gcloud network-connectivity internal-ranges list.

    gcloud network-connectivity internal-ranges list
    
  • Per visualizzare tutti gli intervalli interni in una rete VPC, utilizza il comando internal-ranges list e includi un filtro.

    gcloud network-connectivity internal-ranges list \
        --filter=network:NETWORK_NAME \
        --project=PROJECT_ID
    

    Sostituisci quanto segue:

    • NETWORK_NAME: il nome della rete VPC in cui elencare gli intervalli interni
    • PROJECT_ID: l'ID del progetto che contiene la rete VPC

API

  • Per visualizzare tutti gli intervalli interni in un progetto, invia una richiesta GET al metodo projects.locations.internalRanges.list.

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges
    

    Sostituisci PROJECT_ID con l'ID del progetto in cui visualizzare gli intervalli interni.

  • Per visualizzare tutti gli intervalli interni in una rete VPC, invia una richiesta GET al metodo projects.locations.internalRanges.list e includi un filtro.

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?filter=network=\"https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME\"
    

    Sostituisci NETWORK_NAME con il nome della rete VPC in cui elencare gli intervalli interni.

Descrivere gli intervalli interni

Puoi descrivere un intervallo interno per visualizzare i dettagli dell'intervallo scelto, incluse le subnet associate all'intervallo interno.

Console

  1. Nella console Google Cloud , vai alla pagina Intervalli interni.

    Vai a Intervalli interni.

  2. Fai clic sul nome dell'intervallo interno che vuoi descrivere.

gcloud

Utilizza il comando gcloud network-connectivity internal-ranges describe.

gcloud network-connectivity internal-ranges describe RANGE_NAME

Sostituisci RANGE_NAME con il nome dell'intervallo interno da descrivere.

API

Invia una richiesta GET al metodo projects.locations.internalRanges.get.

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto padre per l'intervallo interno
  • RANGE_NAME: il nome dell'intervallo interno da descrivere

Aggiorna gli intervalli interni

Se un intervallo interno è immutabile, puoi aggiornare solo la descrizione. Se un intervallo interno è modificabile, puoi espandere il blocco CIDR dell'intervallo e aggiornarne la proprietà di sovrapposizione e la descrizione.

Per espandere un intervallo interno, puoi aggiornare il blocco CIDR dell'intervallo o diminuirne la lunghezza del prefisso. Il blocco CIDR aggiornato deve contenere il blocco precedente.

Se vuoi restringere l'intervallo allocato o modificare un altro elemento, elimina l'intervallo interno e creane uno nuovo.

Per aggiornare la proprietà di sovrapposizione di un intervallo interno IPv4, invia una richiesta API o utilizza Google Cloud CLI.

Console

  1. Nella console Google Cloud , vai alla pagina Intervalli interni.

    Vai a Intervalli interni.

  2. Fai clic sul nome dell'intervallo interno da aggiornare.

  3. Per espandere il blocco CIDR dell'intervallo, fai clic su Espandi intervallo e poi esegui una delle seguenti operazioni:

    • Per gli intervalli interni IPv4, fai clic su Lunghezza prefisso e poi procedi nel seguente modo:
      1. Nel campo Lunghezza prefisso, seleziona una lunghezza del prefisso inferiore a quella del prefisso precedente.
      2. Fai clic su Espandi.
    • Per gli intervalli interni IPv4 o IPv6, fai clic su Intervallo IP e poi procedi nel seguente modo:
      1. Inserisci un blocco CIDR IPv4, IPv6 o IPv6 mappato su IPv4. Il nuovo blocco deve contenere quello precedente.
      2. Fai clic su Espandi.
  4. Per aggiornare la descrizione dell'intervallo:

    1. Fai clic su Modifica descrizione.
    2. Inserisci una nuova descrizione.
    3. Fai clic su Salva.

gcloud

  • Per aggiornare un intervallo interno, utilizza il comando gcloud network-connectivity internal-ranges update. Ometti i flag per le proprietà che non vuoi modificare.

    gcloud network-connectivity internal-ranges update RANGE_NAME \
        --ip-cidr-range=CIDR_RANGE \
        --overlaps=OVERLAPS \
        --description=DESCRIPTION
    

    Sostituisci quanto segue:

    • RANGE_NAME: il nome dell'intervallo interno
    • CIDR_RANGE: il blocco CIDR IPv4, IPv6, IPv6 mappato a IPv4 espanso, che deve contenere il blocco precedente
    • OVERLAPS: il tipo di sovrapposizione da consentire (solo intervalli IPv4)

      Le opzioni sono OVERLAP_EXISTING_SUBNET_RANGE e OVERLAP_ROUTE_RANGE. Puoi includere entrambi i valori in un elenco separato da virgole. Per disattivare la sovrapposizione, includi il flag, ma non specificare un valore (--overlaps=).

    • DESCRIPTION: la descrizione aggiornata

  • Per espandere un intervallo interno diminuendo la lunghezza del prefisso, utilizza il seguente comando:

    gcloud network-connectivity internal-ranges update RANGE_NAME \
        --prefix-length=PREFIX_LENGTH
    

    Sostituisci PREFIX_LENGTH con la lunghezza del prefisso aggiornata, che deve essere inferiore alla lunghezza del prefisso precedente.

API

  • Per espandere un intervallo interno aggiornandone l'intervallo CIDR, effettua una richiesta PATCH al metodo projects.locations.internalRanges.patch.

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=ipCidrRange
    {
      "ipCidrRange": "CIDR_RANGE"
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto padre per l'intervallo interno
    • RANGE_NAME: il nome dell'intervallo interno
    • CIDR_RANGE: il blocco CIDR IPv4, IPv6 o IPv6 mappato su IPv4 espanso, che deve contenere il blocco precedente
  • Per espandere un intervallo interno diminuendo la lunghezza del prefisso, effettua la seguente richiesta:

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=prefixLength
    {
      "prefixLength": PREFIX_LENGTH
    }
    

    Sostituisci PREFIX_LENGTH con la lunghezza del prefisso aggiornata, che deve essere inferiore alla lunghezza del prefisso precedente.

  • Per aggiornare la proprietà di sovrapposizione di un intervallo interno IPv4, invia la seguente richiesta:

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=overlaps
    {
      "overlaps": ["OVERLAPS"]
    }
    

    Sostituisci OVERLAPS con il tipo di sovrapposizione da consentire. Le opzioni sono OVERLAP_EXISTING_SUBNET_RANGE e OVERLAP_ROUTE_RANGE. Puoi includere entrambi i valori in un array JSON. Per disattivare la sovrapposizione, includi il campo ma non specificare un valore ("overlaps": []).

  • Per aggiornare la descrizione di un intervallo interno, effettua la seguente richiesta:

    PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=description
    {
      "description": "DESCRIPTION"
    }
    

    Sostituisci DESCRIPTION con la descrizione aggiornata.

Elimina intervalli interni

Puoi eliminare un intervallo interno se non è associato a una risorsa come una subnet. Google CloudPer eliminare un intervallo interno associato a una risorsa Google Cloud , elimina prima la risorsa associata.

Console

  1. Nella console Google Cloud , vai alla pagina Intervalli interni.

    Vai a Intervalli interni.

  2. Fai clic sul nome dell'intervallo interno che vuoi eliminare.

  3. Fai clic su Elimina.

  4. Per confermare, fai clic su Elimina.

gcloud

Utilizza il comando gcloud network-connectivity internal-ranges delete.

gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE

Sostituisci RANGE_TO_DELETE con il nome dell'intervallo interno da eliminare.

API

Invia una richiesta DELETE al metodo projects.locations.internalRanges.delete.

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto padre per l'intervallo interno
  • RANGE_NAME: il nome dell'intervallo interno