Crear y usar rangos internos

En este documento, se describe cómo crear, usar y borrar rangos internos.

Los rangos internos te ayudan a administrar 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.

Antes de comenzar

Roles requeridos

Para obtener los permisos que necesitas para trabajar con rangos internos, pídele a tu administrador que te otorgue el rol de IAM de administrador de Compute Network (roles/compute.networkAdmin) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Reserva rangos internos

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

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

  • En el caso de las redes de VPC en modo personalizado, los rangos predeterminados son 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16.
  • En el caso de las redes de VPC en modo automático, los rangos 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 existentes y asigna al rango interno un bloque CIDR libre del tamaño elegido dentro de los bloques CIDR de destino. Puedes definir mejor esta asignación proporcionando una lista opcional de bloques CIDR para excluir.Google Cloud asigna un bloque de direcciones IP al rango interno que no se superpone con ningún bloque excluido. La lista de bloques excluidos no se puede actualizar después de crear un rango 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 especificas una estrategia de asignación, Google Cloudasigna de forma aleatoria un rango de direcciones IP libres dentro de los bloques CIDR de destino (o el rango predeterminado, si no se especifican bloques CIDR de destino).

Los rangos internos de IPv6 te permiten evitar la asignación automática de direcciones IP a las subredes nuevas solo IPv6 o de pila doble. Los rangos internos de IPv6 deben tener el tipo de uso EXTERNAL_TO_VPC y el tipo de intercambio de tráfico 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 rango interno, puedes crear un rango interno inmutable. Los rangos internos inmutables impiden que se modifiquen estas propiedades, pero puedes actualizar la descripción. La inmutabilidad no se puede modificar después de crear el rango interno.

De forma predeterminada, Google Cloud bloquea la creación de rangos o recursos internos si comparten direcciones IP superpuestas en la misma red de VPC. Puedes configurar un rango interno de IPv4 para permitir la superposición con los rangos de direcciones de subredes existentes, rutas nuevas y existentes, o ambas. No puedes crear recursos Google Cloud que usen direcciones IP de un rango interno existente, a menos que asocies de forma explícita el recurso con el rango interno (para subredes) o configures la superposición (para rutas).

Console

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

    Ir a Rangos internos

  2. Haz clic en Reservar rango interno.

  3. Ingresa un nombre.

  4. Opcional: Ingresa una descripción.

  5. Selecciona una versión de IP.

    • Si seleccionas IPv4, haz lo siguiente:

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

        • Si seleccionas Automático, haz lo siguiente:

          1. Selecciona un algoritmo de asignación.
          2. Selecciona una longitud de prefijo.
          3. Ingresa un rango de direcciones IP de destino. Puedes agregar varios rangos objetivo.
          4. Opcional: Haz clic en Agregar un rango para excluir y, luego, ingresa un rango de direcciones IP para excluir. Puedes agregar varios rangos excluidos.

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

        • Si seleccionas Permitirme especificar, ingresa un rango de IP en la notación CIDR.

      3. Selecciona una red.

      4. Selecciona un tipo de intercambio de tráfico.

      5. Selecciona un tipo de uso.

      6. Opcional: En la sección Superposiciones permitidas, especifica si el rango interno puede superponerse con subredes existentes, rutas nuevas y existentes, o ambas.

    • Si seleccionas IPv6, haz lo siguiente:

      1. Especifica si el rango interno es inmutable.
      2. Selecciona Permitirme especificar y, luego, ingresa un bloque CIDR IPv6 o IPv6 asignado a IPv4.
      3. Selecciona una red.
      4. Haz clic en Intercambio de tráfico y, luego, selecciona Para mí.
      5. Haz clic en Uso y, luego, selecciona Externo a la VPC.
  6. Haz clic en Reservar.

gcloud

  • Para reservar un rango interno para un bloque CIDR de 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
    

    Reemplaza lo siguiente:

    • RANGE_NAME: el nombre del rango interno nuevo
    • CIDR_RANGE: Es el bloque CIDR IPv4, IPv6 o IPv6 asignado a IPv4 que se asignará al nuevo rango interno.
      • Si especificas un bloque IPv6, debes hacer lo siguiente:
        • Establece el tipo de peering en FOR_SELF.
        • Establece el tipo de usage en EXTERNAL_TO_VPC.
    • NETWORK_NAME: El nombre de la red en la que se creará el rango interno
    • DESCRIPTION: Una descripción opcional del rango interno
    • PEERING_TYPE: el tipo de intercambio de tráfico del rango interno

      Las opciones son FOR_SELF, FOR_PEER y NOT_SHARED. FOR_SELF es la configuración predeterminada.

    • USAGE_TYPE: el tipo de uso del rango interno

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

  • Para reservar un rango 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]
    

    Reemplaza lo siguiente:

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

      • En el caso de 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 el caso de las redes de VPC de 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 ingresar varios bloques CIDR en una lista separada por comas.

    • ALLOCATION_STRATEGY: Es la estrategia de asignación que deseas usar para el bloque CIDR de este rango 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, es la cantidad de bloques CIDR libres que se deben encontrar antes de determinar uno de forma aleatoria.

      Incluye esta marca solo si eliges la estrategia de asignación RANDOM_FIRST_N_AVAILABLE.

  • Si deseas excluir rangos de direcciones IP cuando reserves un rango 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
    

    Reemplaza EXCLUDED_RANGES por una lista separada por comas de uno o más bloques CIDR de IPv4 que se excluirán. Google Cloud asigna un bloque de direcciones IP al rango interno que no se superpone con ningún bloque excluido. La lista no se puede actualizar después de crear el rango interno.

  • Para reservar un rango 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
    

    Reemplaza OVERLAPS por el tipo de superposición que se permitirá. Las opciones son OVERLAP_EXISTING_SUBNET_RANGE y OVERLAP_ROUTE_RANGE. Puedes incluir ambos valores en una lista separada por comas.

  • Para reservar un rango 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 rango interno para un bloque CIDR de IPv4 o IPv6 específico, realiza una solicitud de 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"
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: ID del proyecto principal para el rango interno
    • RANGE_NAME: el nombre del rango interno
    • CIDR_RANGE: Es el bloque CIDR IPv4, IPv6 o IPv6 asignado a IPv4 que se asignará al rango interno.
      • Si especificas un bloque IPv6, debes hacer lo siguiente:
        • Establece el tipo de peering en FOR_SELF.
        • Establece el tipo de usage en EXTERNAL_TO_VPC.
    • NETWORK_NAME: El nombre de la red en la que se creará el rango interno
    • DESCRIPTION: Una descripción opcional del rango interno nuevo
    • PEERING_TYPE: el tipo de intercambio de tráfico del rango interno

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

    • USAGE_TYPE: el tipo de uso del rango interno

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

  • Para reservar un rango interno de IPv4 con un bloque CIDR asignado automáticamente, realiza 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]
      }
    }
    

    Reemplaza lo siguiente:

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

      • En el caso de 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 el caso de las redes de VPC de 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 de CIDR en un array de JSON.

    • ALLOCATION_STRATEGY: Es la estrategia de asignación que deseas usar para el bloque CIDR de este rango 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, es la cantidad de bloques CIDR libres que se deben encontrar antes de determinar uno de forma aleatoria.

      Incluye este campo solo si eliges la estrategia de asignación RANDOM_FIRST_N_AVAILABLE.

  • Si deseas excluir rangos de direcciones IP cuando reserves un rango interno de IPv4 con un bloque CIDR asignado automáticamente, realiza 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"]
    }
    

    Reemplaza EXCLUDED_RANGE_1 y EXCLUDED_RANGE_2 por uno o más bloques CIDR de IPv4 que se excluirán. Google Cloud asigna un bloque de direcciones IP al rango interno que no se superpone con ningún bloque excluido. La lista no se puede actualizar después de crear el rango interno.

  • Para reservar un rango interno de IPv4 con superposición, realiza 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"]
    }
    

    Reemplaza OVERLAPS por el tipo de superposición que se permitirá. Las opciones son OVERLAP_EXISTING_SUBNET_RANGE y OVERLAP_ROUTE_RANGE. Puedes incluir ambos valores en un array JSON.

  • Para reservar un rango interno inmutable, realiza 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
    }
    

Reserva rangos internos de IPv4 para la migración de subredes

Puedes usar un rango interno para migrar un rango CIDR de una subred a otra. Para obtener más información, consulta Cómo migrar rangos 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

Reemplaza lo siguiente:

  • RANGE_NAME: El nombre del rango interno que se creará
  • CIDR_RANGE: Es el bloque CIDR de IPv4 de la subred que deseas migrar.
  • NETWORK_NAME: el nombre de la red en la que se creará el rango interno
  • SOURCE_SUBNET: Es el URI de la subred de origen.
  • TARGET_SUBNET: Es el URI de la subred de destino.

API

Realiza 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",
  "peering": "FOR_SELF",
  "usage": "FOR_MIGRATION",
  "migration": {
    "source": "SOURCE_SUBNET",
    "target": "TARGET_SUBNET"
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: ID del proyecto principal para el rango interno
  • RANGE_NAME: el nombre del rango interno nuevo
  • CIDR_RANGE: Es el bloque CIDR de IPv4 de la subred que deseas migrar.
  • NETWORK_NAME: el nombre de la red en la que se creará el rango interno
  • SOURCE_SUBNET: Es el URI de la subred de origen.
  • TARGET_SUBNET: Es el URI de la subred de destino.

Crea subredes con rangos internos de IPv4

Puedes crear una subred solo IPv4 o de pila doble, y usar un rango interno para especificar el rango de direcciones IPv4 internas principal de la subred. La subred se puede asociar con un rango interno completo o solo con una parte del rango. Los rangos secundarios de las subredes también se pueden asociar con rangos internos.

Console

  1. Reserva un rango interno de IPv4 en la red en la que quieres crear una subred nueva. Establece el tipo de uso en este rango interno en For VPC y el tipo de vinculación en For self.

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

    Ir a las redes de VPC

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

  4. Haz clic en Agregar subred. En el diálogo que aparece, haz lo siguiente:

    1. Proporciona un nombre.
    2. Selecciona una región.
    3. Selecciona la casilla de verificación Asociar con un rango interno.
    4. En Rango interno reservado, realiza una selección.
    5. Opcional: Para asociar la subred con parte del rango interno, ingresa un rango IPv4.
    6. Haz clic en Agregar.

gcloud

  1. Reserva un rango interno de IPv4 en la red en la que quieres crear una subred nueva. Establece el tipo de uso en este rango interno en FOR_VPC y el tipo de vinculación en FOR_SELF.
  2. Realiza una de las siguientes acciones:

    • Para crear una subred asociada a un rango 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
      

      Reemplaza lo siguiente:

      • SUBNET_NAME: El nombre de la subred
      • PROJECT_ID: ID del proyecto en el que se creará la subred
      • RANGE_NAME: el nombre del rango interno que se asociará a la subred
      • NETWORK_NAME: El nombre de la red en la que se creará la subred
      • REGION: La región en la que se creará la subred
    • Para crear una subred asociada con parte de un rango 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
      

      Reemplaza IP_RANGE por un rango de CIDR IPv4 que sea un subconjunto del rango interno.

Por ejemplo, los siguientes comandos crean una subred asociada solo con la parte 10.9.1.0/24 de un rango 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 rango interno de IPv4 en la red en la que quieres crear una subred nueva. Establece el tipo de uso en este rango interno en FOR_VPC y el tipo de vinculación en FOR_SELF.
  2. Realiza una de las siguientes acciones:

    • Para crear una subred asociada a un rango interno completo, realiza 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"
      }
      

      Reemplaza lo siguiente:

      • PROJECT_ID: Es el ID del proyecto principal de la subred nueva.
      • REGION: La región en la que se creará la subred
      • SUBNET_NAME: El nombre de la subred nueva
      • PROJECT_ID: Es el ID del proyecto en el que se creará una subred.
      • RANGE_NAME: El nombre del rango interno que se usará para la subred nueva.
      • NETWORK: El nombre de la red en la que se creará la subred
    • Para crear una subred asociada con parte de un rango interno, realiza 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"
      }
      

      Reemplaza IP_RANGE por un rango de CIDR IPv4 que sea un subconjunto del rango interno.

Por ejemplo, las siguientes dos solicitudes crean una subred que está asociada solo con la parte 10.9.1.0/24 de un rango 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"
}

Crea clústeres de GKE con rangos internos de IPv4

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

gcloud

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

    gcloud network-connectivity internal-ranges create gke-nodes-1 \
        --prefix-length=NODE_PREFIX_LENGTH \
        --network=NETWORK
    
    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
    

    Reemplaza lo siguiente:

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

    Reemplaza lo siguiente:

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

    Reemplaza ZONE por la zona del clúster.

API

  1. Para crear los siguientes rangos internos, realiza solicitudes POST al método 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"
    }
    
    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"
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto
    • NETWORK: El nombre de la red
    • NODE_PREFIX_LENGTH: la longitud del prefijo del rango interno asociado con los nodos de GKE
    • POD_PREFIX_LENGTH: la longitud del prefijo del rango interno asociado con los pods de GKE
    • SERVICE_PREFIX_LENGTH: la longitud del prefijo del rango interno asociado con los servicios de GKE
  2. Crea una subred con los rangos internos que creaste en el paso anterior mediante 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"
        }
      ]
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto
    • REGION: Es la región de la subred.
    • NETWORK: Es la red de la subred.
  3. Para crear el clúster nativo de la VPC, realiza 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"
    }
    

    Reemplaza lo siguiente:

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

Cómo enumerar rangos internos

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

Console

gcloud

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

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

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

    Reemplaza lo siguiente:

    • NETWORK_NAME: Es el nombre de la red de VPC en la que se enumerarán los rangos internos.
    • PROJECT_ID: Es el ID del proyecto que contiene la red de VPC.

API

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

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

    Reemplaza PROJECT_ID por el ID del proyecto en el que deseas ver los rangos internos.

  • Para ver todos los rangos internos en una red de VPC, realiza una solicitud GET al método projects.locations.internalRanges.list y, luego, 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\"
    

    Reemplaza NETWORK_NAME por el nombre de la red de VPC en la que se enumerarán los rangos internos.

Describe rangos internos

Puedes describir un rango interno para obtener detalles sobre el rango elegido, incluidas las subredes asociadas con el rango interno.

Console

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

    Ir a Rangos internos

  2. Haz clic en el Nombre del rango interno que deseas describir.

gcloud

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

gcloud network-connectivity internal-ranges describe RANGE_NAME

Reemplaza RANGE_NAME por el nombre del rango interno que deseas 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

Reemplaza lo siguiente:

  • PROJECT_ID: ID del proyecto principal para el rango interno
  • RANGE_NAME: El nombre del rango interno que se describirá

Actualiza rangos internos

Si un rango interno es inmutable, solo puedes actualizar la descripción. Si un rango interno es mutable, puedes expandir su bloque CIDR y actualizar su propiedad de superposición y su descripción.

Para expandir un rango interno, puedes actualizar su bloque CIDR o disminuir su longitud de prefijo. El bloque CIDR actualizado debe contener el bloque anterior.

Si deseas reducir el rango asignado o modificar otro elemento, borra el rango interno y crea uno nuevo.

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

Console

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

    Ir a Rangos internos

  2. Haz clic en el nombre del rango interno que deseas actualizar.

  3. Para expandir el bloque CIDR del rango, haz clic en Expandir rango y, luego, realiza una de las siguientes acciones:

    • Para los rangos internos de IPv4, haz clic en Longitud del prefijo y, luego, haz lo siguiente:
      1. En el campo Longitud del prefijo, selecciona una longitud de prefijo que sea menor que la anterior.
      2. Haz clic en Expandir.
    • Para los rangos internos de IPv4 o IPv6, haz clic en Rango de IP y, luego, haz lo siguiente:
      1. Ingresa un bloque CIDR IPv4, IPv6 o IPv6 asignado a IPv4. El bloque nuevo debe contener el anterior.
      2. Haz clic en Expandir.
  4. Para actualizar la descripción del rango, haz lo siguiente:

    1. Haz clic en Editar descripción.
    2. Ingresa una nueva descripción.
    3. Haz clic en Guardar.

gcloud

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

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

    Reemplaza lo siguiente:

    • RANGE_NAME: el nombre del rango interno
    • CIDR_RANGE: Es el bloque CIDR expandido de IPv4, IPv6 o IPv6 asignado a IPv4, que debe contener el bloque anterior.
    • OVERLAPS: Es el tipo de superposición que se permite (solo para rangos de IPv4).

      Las opciones son OVERLAP_EXISTING_SUBNET_RANGE y OVERLAP_ROUTE_RANGE. Puedes incluir ambos valores en una lista separada por comas. Para inhabilitar la superposición, incluye la marca, pero no especifiques un valor (--overlaps=).

    • DESCRIPTION: la descripción actualizada

  • Para expandir un rango interno disminuyendo la longitud de su prefijo, usa el siguiente comando:

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

    Reemplaza PREFIX_LENGTH por la longitud del prefijo actualizada, que debe ser menor que la longitud del prefijo anterior.

API

  • Para expandir un rango interno actualizando su rango de CIDR, realiza 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"
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: ID del proyecto principal para el rango interno
    • RANGE_NAME: el nombre del rango interno
    • CIDR_RANGE: Es el bloque CIDR expandido de IPv4, IPv6 o IPv6 asignado a IPv4, que debe contener el bloque anterior.
  • Para expandir un rango interno disminuyendo la longitud de su prefijo, realiza la siguiente solicitud:

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

    Reemplaza PREFIX_LENGTH por la longitud del prefijo actualizada, que debe ser menor que la longitud del prefijo anterior.

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

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

    Reemplaza OVERLAPS por el tipo de superposición que se permitirá. Las opciones son OVERLAP_EXISTING_SUBNET_RANGE y OVERLAP_ROUTE_RANGE. Puedes incluir ambos valores en un array JSON. Para inhabilitar la superposición, incluye el campo, pero no especifiques un valor ("overlaps": []).

  • Para actualizar la descripción de un rango interno, realiza la siguiente solicitud:

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

    Reemplaza DESCRIPTION por la descripción actualizada.

Borrar rangos internos

Puedes borrar un rango interno si no está asociado con un recurso Google Cloud, como una subred. Para borrar un rango interno asociado con un recurso de Google Cloud , primero borra el recurso asociado.

Console

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

    Ir a Rangos internos

  2. Haz clic en el nombre del rango interno que deseas borrar.

  3. Haz clic en Borrar.

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

gcloud

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

gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE

Reemplaza RANGE_TO_DELETE por el nombre del rango interno que deseas borrar.

API

Realiza una solicitud DELETE al método projects.locations.internalRanges.delete.

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

Reemplaza lo siguiente:

  • PROJECT_ID: ID del proyecto principal para el rango interno
  • RANGE_NAME: el nombre del rango interno