Crear y usar intervalos internos

En este documento se describe cómo crear, usar y eliminar intervalos internos.

Los intervalos internos te ayudan a gestionar un espacio de direcciones IP unificado en las redes de nube privada virtual (VPC), ya que te permiten asignar bloques de direcciones IP internas y especificar cómo se pueden usar esos bloques.

Antes de empezar

Roles obligatorios

Para obtener los permisos que necesitas para trabajar con intervalos internos, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de red de Compute (roles/compute.networkAdmin) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Reservar intervalos internos

Al crear un intervalo interno, debe especificar al menos dos elementos: las direcciones IP que se van a asignar y la red en la que se van a asignar. Puedes crear un intervalo interno IPv4 o IPv6 con un bloque CIDR específico, o bien puedes hacer que Google Cloud se asigne un bloque IPv4 automáticamente. No puedes crear un intervalo interno IPv6 con un bloque de direcciones asignado automáticamente.

Cuando solicitas un bloque CIDR IPv4 asignado automáticamente, proporcionas una longitud de prefijo y uno o varios bloques CIDR IPv4 de destino opcionales. Si no especificas un bloque CIDR de destino, Google Cloud usa los siguientes intervalos de destino predeterminados:

  • En las redes de VPC en modo personalizado, los intervalos predeterminados son 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16.
  • En las redes de VPC de modo automático, los intervalos predeterminados son 10.0.0.0/9, 172.16.0.0/12 y 192.168.0.0/16.

Google Cloud tiene en cuenta las asignaciones de direcciones IP actuales y asigna al intervalo interno un bloque CIDR libre del tamaño elegido de los bloques CIDR de destino. Puede acotar aún más esta asignación proporcionando una lista opcional de bloques CIDR que se deben excluir.Google Cloud asigna un bloque de direcciones IP al intervalo interno que no se solapa con ningún bloque excluido. La lista de bloques excluidos no se puede actualizar después de crear un intervalo interno.

Para controlar el método que usa Google Cloud para seleccionar automáticamente un bloque libre, puedes especificar una estrategia de asignación. Si no especifica una estrategia de asignación, Google Cloudasigna aleatoriamente un intervalo de direcciones IP libres de los bloques CIDR de destino (o del intervalo predeterminado, si no se especifica ningún bloque CIDR de destino).

Los intervalos internos de IPv6 te permiten evitar la asignación automática de direcciones IP a subredes nuevas de solo IPv6 o de pila dual. Los intervalos internos de IPv6 deben tener el tipo de uso EXTERNAL_TO_VPC y el tipo de peer FOR_SELF. Debes incluir un bloque CIDR IPv6 específico y el campo overlaps debe estar vacío o sin especificar.

Para evitar que los usuarios actualicen el bloque CIDR o la configuración de superposición de un intervalo interno, puedes crear un intervalo interno inmutable. Los intervalos internos inmutables impiden que se modifiquen estas propiedades, pero puedes actualizar la descripción. La inmutabilidad no se puede cambiar después de crear el intervalo interno.

De forma predeterminada, Google Cloud impide la creación de intervalos o recursos internos si comparten direcciones IP superpuestas en la misma red de VPC. Puede configurar un intervalo interno de IPv4 para permitir que se solape con los intervalos de direcciones de las subredes, las rutas nuevas y las rutas que ya tenga, o con ambos. No puedes crear recursos que usen direcciones IP de un intervalo interno que ya exista, a menos que asocies explícitamente el recurso al intervalo interno (en el caso de las subredes) o configures una superposición (en el caso de las rutas). Google Cloud

Consola

  1. En la Google Cloud consola, ve a la página Intervalos internos.

    Ir a Intervalos internos

  2. Haz clic en Reservar intervalo interno.

  3. Escribe un nombre.

  4. Opcional: Escribe una descripción.

  5. Selecciona una versión de IP.

    • Si seleccionas IPv4, haz lo siguiente:

      1. Especifica si el intervalo interno es inmutable.
      2. Selecciona un método de reserva.

        • Si selecciona Automático, siga estos pasos:

          1. Seleccione un algoritmo de asignación.
          2. Selecciona la longitud del prefijo.
          3. Introduce un intervalo de direcciones IP de destino. Puedes añadir varios intervalos de destino.
          4. Opcional: Haz clic en Añadir un intervalo para excluir y, a continuación, introduce un intervalo de direcciones IP que quieras excluir. Puedes añadir varios intervalos excluidos.

            Google Cloud Asigna un bloque de direcciones IP al intervalo interno que no se solapa con ningún intervalo excluido. Esta lista no se puede actualizar después de crear el intervalo interno.

        • Si selecciona Permitirme especificar, introduzca un intervalo de IP en notación CIDR.

      3. Selecciona una red.

      4. Selecciona un tipo de emparejamiento.

      5. Selecciona un tipo de uso.

      6. Opcional: En la sección Solapamientos permitidos, especifica si el intervalo interno puede solaparse con subredes, rutas nuevas o rutas ya creadas, o ambas.

    • Si seleccionas IPv6, haz lo siguiente:

      1. Especifica si el intervalo interno es inmutable.
      2. Selecciona Quiero especificarlo y, a continuación, introduce un bloque CIDR IPv6 o IPv6 asignado a IPv4.
      3. Selecciona una red.
      4. Haz clic en Emparejamiento y, a continuación, selecciona Para mí.
      5. Haga clic en Uso y, a continuación, seleccione Externo a la VPC.
  6. Haz clic en Reservar.

gcloud

  • Para reservar un intervalo interno para un bloque CIDR IPv4 o IPv6 específico, usa el 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
    

    Haz los cambios siguientes:

    • RANGE_NAME: el nombre del nuevo intervalo interno
    • CIDR_RANGE: el bloque CIDR IPv4, IPv6 o IPv4 asignado a IPv6 que se asignará al nuevo intervalo interno
      • Si especificas un bloque IPv6, debes hacer lo siguiente:
        • Define el tipo peering como FOR_SELF.
        • Define el tipo usage como EXTERNAL_TO_VPC.
    • NETWORK_NAME: el nombre de la red en la que se va a crear el intervalo interno
    • DESCRIPTION: descripción opcional del intervalo interno.
    • PEERING_TYPE: el tipo de emparejamiento del intervalo interno

      Las opciones son FOR_SELF, FOR_PEER y NOT_SHARED. FOR_SELF es el valor predeterminado.

    • USAGE_TYPE: el tipo de uso del intervalo interno

      Las opciones son FOR_VPC, EXTERNAL_TO_VPC y FOR_MIGRATION. El valor predeterminado es FOR_VPC.

  • Para reservar un intervalo interno de IPv4 con un bloque CIDR asignado automáticamente, usa el siguiente 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]
    

    Haz los cambios siguientes:

    • PREFIX_LENGTH: longitud del prefijo de las direcciones IP asignadas
    • TARGET_CIDR_RANGE: el bloque CIDR de destino desde el que se asignará un bloque de direcciones IPv4.

      • En las redes de VPC en modo personalizado, los bloques CIDR predeterminados son 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16.
      • En las redes de VPC en modo automático, los bloques CIDR predeterminados son 10.0.0.0/9, 172.16.0.0/12 y 192.168.0.0/16.

      Puedes introducir varios bloques CIDR en una lista separada por comas.

    • ALLOCATION_STRATEGY: la estrategia de asignación que quieras usar para el bloque CIDR de este intervalo interno.

      Las opciones son RANDOM, FIRST_AVAILABLE, RANDOM_FIRST_N_AVAILABLE y FIRST_SMALLEST_FITTING. El valor predeterminado es RANDOM.

    • FIRST_N_LOOKUP_SIZE: para la estrategia de asignación RANDOM_FIRST_N_AVAILABLE, el número de bloques CIDR libres que se deben buscar antes de determinar uno aleatoriamente.

      Incluya esta marca solo si elige la estrategia de asignación RANDOM_FIRST_N_AVAILABLE.

  • Si quieres excluir intervalos de direcciones IP al reservar un intervalo interno de IPv4 con un bloque CIDR asignado automáticamente, usa el siguiente 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
    

    Sustituye EXCLUDED_RANGES por una lista separada por comas de uno o varios bloques CIDR IPv4 que quieras excluir. Google Cloud asigna un bloque de direcciones IP al intervalo interno que no se solapa con ningún bloque excluido. La lista no se puede actualizar después de crear el intervalo interno.

  • Para reservar un intervalo interno de IPv4 con superposición, usa el siguiente 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
    

    Sustituye OVERLAPS por el tipo de superposición que quieras permitir. Las opciones son OVERLAP_EXISTING_SUBNET_RANGE y OVERLAP_ROUTE_RANGE. Puede incluir ambos valores en una lista separada por comas.

  • Para reservar un intervalo interno inmutable, usa el siguiente 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

  • Para reservar un intervalo interno para un bloque CIDR IPv4 o IPv6 específico, haz una solicitud POST al método 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"
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: ID del proyecto principal del intervalo interno
    • RANGE_NAME: el nombre del intervalo interno
    • CIDR_RANGE: el bloque CIDR IPv4, IPv6 o IPv6 asignado a IPv4 que se va a asignar al intervalo interno
      • Si especificas un bloque IPv6, debes hacer lo siguiente:
        • Define el tipo peering como FOR_SELF.
        • Define el tipo usage como EXTERNAL_TO_VPC.
    • NETWORK_NAME: el nombre de la red en la que se va a crear el intervalo interno
    • DESCRIPTION: descripción opcional del nuevo intervalo interno.
    • PEERING_TYPE: el tipo de emparejamiento del intervalo interno

      Las opciones son FOR_SELF, FOR_PEER y NOT_SHARED. FOR_SELF es el valor predeterminado.

    • USAGE_TYPE: el tipo de uso del intervalo interno

      Las opciones son FOR_VPC, EXTERNAL_TO_VPC y FOR_MIGRATION. El valor predeterminado es FOR_VPC.

  • Para reservar un intervalo interno de IPv4 con un bloque CIDR asignado automáticamente, haz la siguiente solicitud:

    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]
      }
    }
    

    Haz los cambios siguientes:

    • PREFIX_LENGTH: longitud del prefijo CIDR del bloque de direcciones IP del intervalo
    • TARGET_CIDR_RANGE: el bloque CIDR de destino desde el que se asignará un bloque de direcciones IPv4.

      • En las redes de VPC en modo personalizado, los bloques CIDR predeterminados son 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16.
      • En las redes de VPC en modo automático, los bloques CIDR predeterminados son 10.0.0.0/9, 172.16.0.0/12 y 192.168.0.0/16.

      Puedes especificar varios bloques CIDR en una matriz JSON.

    • ALLOCATION_STRATEGY: la estrategia de asignación que quieras usar para el bloque CIDR de este intervalo interno.

      Las opciones son RANDOM, FIRST_AVAILABLE, RANDOM_FIRST_N_AVAILABLE y FIRST_SMALLEST_FITTING. El valor predeterminado es RANDOM.

    • FIRST_N_LOOKUP_SIZE: para la estrategia de asignación RANDOM_FIRST_N_AVAILABLE, el número de bloques CIDR libres que se deben buscar antes de determinar uno aleatoriamente.

      Incluya este campo solo si elige la estrategia de asignación RANDOM_FIRST_N_AVAILABLE.

  • Si quieres excluir intervalos de direcciones IP al reservar un intervalo interno IPv4 con un bloque CIDR asignado automáticamente, haz la siguiente solicitud:

    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"]
    }
    

    Sustituye EXCLUDED_RANGE_1 y EXCLUDED_RANGE_2 por uno o varios bloques CIDR IPv4 que quieras excluir. Google Cloud asigna un bloque de direcciones IP al intervalo interno que no se solapa con ningún bloque excluido. La lista no se puede actualizar después de crear el intervalo interno.

  • Para reservar un intervalo interno de IPv4 con superposición, haz la siguiente solicitud:

    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"]
    }
    

    Sustituye OVERLAPS por el tipo de superposición que quieras permitir. Las opciones son OVERLAP_EXISTING_SUBNET_RANGE y OVERLAP_ROUTE_RANGE. Puede incluir ambos valores en una matriz JSON.

  • Para reservar un intervalo interno inmutable, haz la siguiente solicitud:

    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
    }
    

Reservar intervalos internos IPv4 para la migración de subredes

Puedes usar un intervalo interno para migrar un intervalo CIDR de una subred a otra. Para obtener más información, consulta Migrar intervalos de subredes IPv4.

gcloud

Usa el 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

Haz los cambios siguientes:

  • RANGE_NAME: nombre del intervalo interno que se va a crear.
  • CIDR_RANGE: el bloque CIDR IPv4 de la subred que quieras migrar
  • NETWORK_NAME: el nombre de la red en la que se va a crear el intervalo interno
  • SOURCE_SUBNET: el URI de la subred de origen
  • TARGET_SUBNET: el URI de la subred de destino

API

Envía una solicitud POST al projects.locations.internalRanges.create método.

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"
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: ID del proyecto principal del intervalo interno
  • RANGE_NAME: el nombre del nuevo intervalo interno
  • CIDR_RANGE: el bloque CIDR IPv4 de la subred que quieras migrar
  • NETWORK_NAME: el nombre de la red en la que se va a crear el intervalo interno
  • SOURCE_SUBNET: el URI de la subred de origen
  • TARGET_SUBNET: el URI de la subred de destino

Crear subredes con intervalos internos IPv4

Puede crear una subred solo IPv4 o de doble pila y usar un intervalo interno para especificar el intervalo de direcciones IPv4 internas principal de la subred. La subred se puede asociar a todo un intervalo interno o solo a una parte del intervalo. Los intervalos secundarios de las subredes también se pueden asociar a intervalos internos.

Consola

  1. Reserva un intervalo interno de IPv4 en la red en la que quieras crear una subred. Asigna el valor For VPC al tipo de uso de este intervalo interno y el valor For self al tipo de peering.

  2. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  3. Haz clic en el nombre de una red de VPC para ver su página Detalles de la red de VPC.

  4. Haz clic en Añadir subred. En el cuadro de diálogo que aparece, haz lo siguiente:

    1. Proporciona un nombre.
    2. Selecciona una región.
    3. Seleccione la casilla Asociar a un intervalo interno.
    4. En Intervalo interno reservado, haz una selección.
    5. Opcional: Para asociar la subred con parte del intervalo interno, introduce un intervalo IPv4.
    6. Haz clic en Añadir.

gcloud

  1. Reserva un intervalo interno de IPv4 en la red en la que quieras crear una subred. Asigna el valor FOR_VPC al tipo de uso de este intervalo interno y el valor FOR_SELF al tipo de peering.
  2. Elige una de estas opciones:

    • Para crear una subred asociada a un intervalo interno completo, usa el 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
      

      Haz los cambios siguientes:

      • SUBNET_NAME: el nombre de la subred
      • PROJECT_ID: ID del proyecto en el que se va a crear la subred.
      • RANGE_NAME: el nombre del intervalo interno que se va a asociar a la subred
      • NETWORK_NAME: el nombre de la red en la que se va a crear la subred
      • REGION: la región en la que se va a crear la subred
    • Para crear una subred asociada a una parte de un intervalo interno, usa el siguiente 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
      

      Sustituye IP_RANGE por un intervalo CIDR de IPv4 que sea un subconjunto del intervalo interno.

Por ejemplo, los siguientes comandos crean una subred asociada solo a la parte 10.9.1.0/24 de un intervalo interno que reserva el bloque 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. Reserva un intervalo interno de IPv4 en la red en la que quieras crear una subred. Asigna el valor FOR_VPC al tipo de uso de este intervalo interno y el valor FOR_SELF al tipo de peering.
  2. Elige una de estas opciones:

    • Para crear una subred asociada a un intervalo interno completo, haz una solicitud POST al método 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"
      }
      

      Haz los cambios siguientes:

      • PROJECT_ID: ID del proyecto principal de la nueva subred.
      • REGION: la región en la que se va a crear la subred
      • SUBNET_NAME: nombre de la nueva subred.
      • PROJECT_ID: ID del proyecto en el que se va a crear una subred.
      • RANGE_NAME: el nombre del intervalo interno que se va a usar en la nueva subred
      • NETWORK: el nombre de la red en la que se va a crear la subred
    • Para crear una subred asociada a una parte de un intervalo interno, haz la siguiente solicitud:

      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"
      }
      

      Sustituye IP_RANGE por un intervalo CIDR de IPv4 que sea un subconjunto del intervalo interno.

Por ejemplo, las siguientes solicitudes crean una subred asociada solo a la parte 10.9.1.0/24 de un intervalo interno que contiene el bloque 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"
}

Crear clústeres de GKE con intervalos internos IPv4

Puedes usar intervalos internos de IPv4 para asignar direcciones IP a los clústeres nativos de VPC de Google Kubernetes Engine (GKE).

gcloud

  1. Crea los siguientes intervalos internos de IPv4 con el comando gcloud network-connectivity internal-ranges create.

    • En el caso de los nodos de GKE:
    gcloud network-connectivity internal-ranges create gke-nodes-1 \
        --prefix-length=NODE_PREFIX_LENGTH \
        --network=NETWORK
    
    • En el caso de los pods de 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
    

    Haz los cambios siguientes:

    • NODE_PREFIX_LENGTH: longitud del prefijo del intervalo interno asociado a los nodos de GKE.
    • POD_PREFIX_LENGTH: longitud del prefijo del intervalo interno asociado a los pods de GKE
    • SERVICE_PREFIX_LENGTH: longitud del prefijo del intervalo interno asociado a los servicios de GKE.
    • NETWORK: el nombre de la red
  2. Crea una subred con los intervalos internos que has creado en el paso anterior mediante el 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"
    

    Haz los cambios siguientes:

    • REGION: la región de la subred
    • PROJECT_ID: el ID del proyecto
  3. Crea el clúster nativo de VPC con el 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
    

    Sustituye ZONE por la zona del clúster.

API

  1. Crea los siguientes intervalos internos haciendo POST solicitudes al método projects.locations.internalRanges.create.

    • En el caso de los nodos de GKE:
    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"
    }
    
    • En el caso de los pods de 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"
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto
    • NETWORK: el nombre de la red
    • NODE_PREFIX_LENGTH: longitud del prefijo del intervalo interno asociado a los nodos de GKE.
    • POD_PREFIX_LENGTH: longitud del prefijo del intervalo interno asociado a los pods de GKE
    • SERVICE_PREFIX_LENGTH: longitud del prefijo del intervalo interno asociado a los servicios de GKE.
  2. Crea una subred con los intervalos internos que has creado en el paso anterior haciendo una solicitud POST al método 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"
        }
      ]
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto
    • REGION: la región de la subred
    • NETWORK: la red de la subred
  3. Crea el clúster nativo de VPC haciendo una solicitud POST al método 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"
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto
    • ZONE: la zona del clúster
    • CLUSTER_NAME: el nombre del nuevo clúster
    • NETWORK: la red del clúster

Mostrar intervalos internos

Puedes enumerar los intervalos internos para ver todos los intervalos internos de tu proyecto actual o de una red de VPC específica. Para enumerar los proyectos de una red de VPC, usa la CLI de Google Cloud o envía una solicitud a la API.

Consola

gcloud

  • Para ver todos los intervalos internos de tu proyecto actual, usa el comando gcloud network-connectivity internal-ranges list.

    gcloud network-connectivity internal-ranges list
    
  • Para ver todos los intervalos internos de una red de VPC, usa el comando internal-ranges list e incluye un filtro.

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

    Haz los cambios siguientes:

    • NETWORK_NAME: nombre de la red de VPC en la que se van a enumerar los intervalos internos.
    • PROJECT_ID: el ID del proyecto que contiene la red de VPC

API

  • Para ver todos los intervalos internos de un proyecto, haz una solicitud GET al método projects.locations.internalRanges.list.

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

    Sustituye PROJECT_ID por el ID del proyecto en el que quieras ver los intervalos internos.

  • Para ver todos los intervalos internos de una red de VPC, haz una solicitud GET al método projects.locations.internalRanges.list e incluye 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\"
    

    Sustituye NETWORK_NAME por el nombre de la red VPC para enumerar los intervalos internos.

Describe los intervalos internos

Puede describir un intervalo interno para ver los detalles del intervalo elegido, incluidas las subredes asociadas al intervalo interno.

Consola

  1. En la Google Cloud consola, ve a la página Intervalos internos.

    Ir a Intervalos internos

  2. Haz clic en el Nombre del intervalo interno que quieras describir.

gcloud

Usa el comando gcloud network-connectivity internal-ranges describe.

gcloud network-connectivity internal-ranges describe RANGE_NAME

Sustituye RANGE_NAME por el nombre del intervalo interno que quieras describir.

API

Realiza una solicitud GET al método projects.locations.internalRanges.get.

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

Haz los cambios siguientes:

  • PROJECT_ID: ID del proyecto principal del intervalo interno.
  • RANGE_NAME: el nombre del intervalo interno que se va a describir.

Actualizar intervalos internos

Si un intervalo interno es inmutable, solo puedes actualizar la descripción. Si un intervalo interno es mutable, puedes ampliar el bloque CIDR del intervalo y actualizar su propiedad de superposición y su descripción.

Para ampliar un intervalo interno, puedes actualizar el bloque CIDR del intervalo o reducir su longitud de prefijo. El bloque CIDR actualizado debe contener el bloque anterior.

Si quieres acotar el intervalo asignado o modificar otro elemento, elimina el intervalo interno y crea uno nuevo.

Para actualizar la propiedad de superposición de un intervalo interno IPv4, envía una solicitud a la API o usa la CLI de Google Cloud.

Consola

  1. En la Google Cloud consola, ve a la página Intervalos internos.

    Ir a Intervalos internos

  2. Haz clic en el nombre del intervalo interno que quieras actualizar.

  3. Para ampliar el bloque CIDR del intervalo, haga clic en Ampliar intervalo y, a continuación, haga una de las siguientes acciones:

    • En el caso de los intervalos internos de IPv4, haga clic en Longitud del prefijo y, a continuación, siga estos pasos:
      1. En el campo Longitud del prefijo, selecciona una longitud de prefijo que sea inferior a la del prefijo anterior.
      2. Haz clic en Ampliar.
    • Para los intervalos internos de IPv4 o IPv6, haz clic en Intervalo de IP y, a continuación, haz lo siguiente:
      1. Introduce un bloque CIDR IPv4, IPv6 o IPv6 asignado a IPv4. El nuevo bloque debe contener el anterior.
      2. Haz clic en Ampliar.
  4. Para actualizar la descripción del intervalo, sigue estos pasos:

    1. Haz clic en Editar descripción.
    2. Escribe otra descripción.
    3. Haz clic en Guardar.

gcloud

  • Para actualizar un intervalo interno, usa el gcloud network-connectivity internal-ranges update comando. Omite las marcas de las propiedades que no quieras modificar.

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

    Haz los cambios siguientes:

    • RANGE_NAME: el nombre del intervalo interno
    • CIDR_RANGE: el bloque CIDR de IPv4, IPv6 e IPv6 asignado a IPv4 ampliado, que debe contener el bloque anterior
    • OVERLAPS: el tipo de superposición que se permite (solo intervalos de IPv4)

      Las opciones son OVERLAP_EXISTING_SUBNET_RANGE y OVERLAP_ROUTE_RANGE. Puede incluir ambos valores en una lista separada por comas. Para inhabilitar la superposición, incluya la marca, pero no especifique ningún valor (--overlaps=).

    • DESCRIPTION: la descripción actualizada

  • Para ampliar un intervalo interno reduciendo la longitud de su prefijo, usa el siguiente comando:

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

    Sustituye PREFIX_LENGTH por la longitud del prefijo actualizado, que debe ser inferior a la longitud del prefijo anterior.

API

  • Para ampliar un intervalo interno actualizando su intervalo CIDR, haz una solicitud PATCH al método projects.locations.internalRanges.patch.

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

    Haz los cambios siguientes:

    • PROJECT_ID: ID del proyecto principal del intervalo interno.
    • RANGE_NAME: el nombre del intervalo interno
    • CIDR_RANGE: el bloque CIDR IPv4, IPv6 o IPv6 asignado a IPv4 ampliado, que debe contener el bloque anterior
  • Para ampliar un intervalo interno reduciendo la longitud de su prefijo, haz la siguiente solicitud:

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

    Sustituye PREFIX_LENGTH por la longitud del prefijo actualizado, que debe ser inferior a la longitud del prefijo anterior.

  • Para actualizar la propiedad de superposición de un intervalo interno IPv4, haz la siguiente solicitud:

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

    Sustituye OVERLAPS por el tipo de superposición que quieras permitir. Las opciones son OVERLAP_EXISTING_SUBNET_RANGE y OVERLAP_ROUTE_RANGE. Puede incluir ambos valores en una matriz JSON. Para inhabilitar la superposición, incluya el campo, pero no especifique ningún valor ("overlaps": []).

  • Para actualizar la descripción de un intervalo interno, haz la siguiente solicitud:

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

    Sustituye DESCRIPTION por la descripción actualizada.

Eliminar intervalos internos

Puedes eliminar un intervalo interno si no está asociado a un Google Cloud recurso, como una subred. Para eliminar un intervalo interno asociado a un recurso Google Cloud , primero debes eliminar el recurso asociado.

Consola

  1. En la Google Cloud consola, ve a la página Intervalos internos.

    Ir a Intervalos internos

  2. Haz clic en el nombre del intervalo interno que quieras eliminar.

  3. Haz clic en Eliminar.

  4. Para confirmar la acción, haz clic en Eliminar.

gcloud

Usa el comando gcloud network-connectivity internal-ranges delete.

gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE

Sustituye RANGE_TO_DELETE por el nombre del intervalo interno que quieras eliminar.

API

Envía una solicitud DELETE al projects.locations.internalRanges.delete método.

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

Haz los cambios siguientes:

  • PROJECT_ID: ID del proyecto principal del intervalo interno
  • RANGE_NAME: el nombre del intervalo interno