Configura rangos de alias de IP

En este documento, encontrarás instrucciones para configurar alias de direcciones IP y rangos de alias de IP con Google Cloud Console y la herramienta de línea de comandos de gcloud. Consulta la página Descripción general de alias de IP antes de ejecutar estos comandos.

Limitaciones

Subred

  • Los límites por red describen la cantidad máxima de rangos secundarios que puedes definir para cada subred.
  • No puedes agregar ni quitar rangos secundarios al mismo tiempo. La adición y eliminación deben ser pasos separados.
  • La expansión CIDR no es compatible con los rangos secundarios.

Instancia de VM

  • Los rangos de alias de IP son compatibles con todas las interfaces de red de VM. El enrutamiento se configura de manera automática para los rangos de alias de IP en la interfaz de la red principal, pero no en las interfaces secundarias. Si tienes múltiples interfaces de red, debes configurar el enrutamiento de la política para las interfaces adicionales.
  • A la interfaz virtual de una instancia de VM se le pueden asignar hasta 10 rangos de alias de IP.
  • Los rangos de alias de IP se pueden agregar o quitar, pero no actualizar.
  • Si quitas un rango de alias de IP de una VM y se lo asignas a otra VM, la transferencia podría tomar hasta un minuto en completarse.
  • Las etiquetas de origen de firewall no son compatibles con los alias de direcciones IP. Esto significa que cuando configuras etiquetas de origen en reglas de firewall, las etiquetas de origen coinciden con la dirección IP principal de la VM, pero no con los alias de direcciones IP. Usa rangos de origen para permitir o denegar el tráfico de entrada de alias de direcciones IP.
  • El DNS interno resuelve un nombre de VM a su IP principal. Los nombres adicionales para los alias de IP no se configuran de manera automática, pero se los puede agregar de forma manual.

Red de VPC

  • Una red de VPC puede tener hasta 7,000 rangos de alias de IP en todas las VM.
  • Agregar o quitar una gran cantidad de rangos de alias de IP a la vez puede llevar mucho tiempo. Por ejemplo, puede llevar hasta 10 minutos agregar o quitar 7,000 rangos de alias de IP.
  • Las redes de VPC de modo automático no pueden borrarse si hay rangos secundarios de la subred presentes.
  • En una ruta estática, la dirección IP del salto siguiente debe ser la dirección IP principal de la VM. Los alias de direcciones IP no son compatibles con direcciones IP de salto siguiente.
  • Las direcciones IPv6 no son compatibles.
  • Los rangos de alias de IP solo son compatibles en redes de VPC y no en redes heredadas. Para determinar el tipo de tu red, enumera tus redes. Las redes de VPC tienen un modo custom o auto. Las redes heredadas tienen un modo legacy.

Comandos de la subred

Los rangos de alias de IP de VM deben asignarse desde un rango que pertenezca a la subred en la cual se encuentra la VM. Todas las subredes tienen un rango principal, que es el rango estándar de direcciones IP internas que definen la subred. Una subred también puede tener uno o más rangos de IP secundarios de direcciones IP internas. Puedes asignar rangos de alias de IP ya sea desde los rangos primarios o secundarios de la subred.

Debes dar a cada rango secundario un nombre que sea único para esa subred. Cuando asignes un rango de alias de IP a una VM, el nombre del rango secundario le dice a GCP de qué rango de la subred debe asignar los alias de IP.

Todos los rangos, tanto primarios como secundarios, deben ser únicos en todas las subredes de la red de VPC y en cualquier red conectada mediante intercambio de tráfico entre redes de VPC, VPN o interconexión.

En esta sección, se muestra cómo crear una subred con un rango secundario, agregar un rango secundario a una subred existente o quitar un rango secundario de una subred. Una vez que la subred tenga el rango que deseas usar, consulta los comandos de instancias de VM a fin de obtener instrucciones para asignar un rango a una VM.

Crea una subred con uno o más rangos CIDR secundarios

Para usar este comando, suponemos que ya cuentas con una red de VPC. De no ser así, créala.

Este comando es el mismo ya sea que estés creando una subred para una interfaz principal de VM o una de las interfaces secundarias.

Si usas un rango secundario en la asignación de alias de IP, puedes separar el espacio de IP para servicios alojados en la VM, lo que facilita la creación de reglas de firewall que permitan el acceso solo a los servicios que se ejecutan en la VM y que bloqueen el acceso a la dirección IP primaria de la VM.

Console

  1. Ve a la página de redes de VPC en Google Cloud Console.
    Ir a la página Redes de VPC
  2. Haz clic en el nombre de una red existente.
  3. Haz clic en Agregar subred.
  4. Ingresa un Nombre para la nueva subred.
  5. Especifica la Región.
  6. Ingresa un Rango de direcciones IP en la notación CIDR (Ejemplo: 10.65.61.0/24).
  7. Haz clic en Crear rango de IP secundario.
  8. Ingresa un Nombre de rango de la subred.
  9. Ingresa un Rango de IP secundario en la notación CIDR (Ejemplo: 10.9.0.0/24).
  10. A fin de agregar rangos de IP secundarios adicionales, para cada rango, haz clic en Agregar rango de IP, y, luego, proporciona un nombre y un rango.
  11. Haz clic en Agregar.

gcloud

    gcloud compute networks subnets create s1 \
        --network NETWORK_NAME \
        --region REGION \
        --range 10.65.61.0/24 \
        --secondary-range RANGE_NAME=RANGE_CIDR,RANGE_NAME=RANGE_CIDR,...
    

En el ejemplo anterior, se ilustra lo siguiente:

  • NETWORK_NAME es el nombre de la red en la que deseas crear la subred.
  • REGION es la región en la que creas la subred.
  • [RANGE_NAME]=[RANGE_CIDR] es el nombre del rango secundario desde el cual proviene el rango de alias de IP y el rango de alias de IP en sí. Por ejemplo: range1=10.9.0.0/24.

Consulta la documentación de gcloud para conocer la sintaxis completa.

API

Crea una subred con uno o más rangos secundarios.

    POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "ipCidrRange": "PRIMARY_IP_RANGE",
      "network": "NETWORK_URL",
      "name": "SUBNET_NAME",
      "secondaryIpRanges": [
      {
        "rangeName": "SECONDARY_RANGE_NAME",
        "ipCidrRange": "SECONDARY_IP_RANGE"
      },
      {
        "rangeName": "SECONDARY_RANGE_NAME",
        "ipCidrRange": "SECONDARY_IP_RANGE"
      },
      ...]
    }
    

Reemplaza los marcadores de posición por valores válidos:

  • NETWORK_URL es la URL o la red de VPC en la que se creará la subred.
  • PRIMARY_IP_RANGE es el rango de direcciones IP principal de la subred.
  • PROJECT_ID es el ID del proyecto que contiene la red de VPC en la que se creará la subred.
  • REGION es la región donde se ubicará la subred.
  • SECONDARY_IP_RANGE es un rango de direcciones IP secundario para la subred.
  • SECONDARY_RANGE_NAME es un nombre para el rango de direcciones IP secundario.
  • SUBNET_NAME es un nombre para la subred.

Para obtener más información, consulta el método subnetworks.insert.

Agrega rangos CIDR secundarios a una subred existente

Para este procedimiento, suponemos que tienes una subred que deseas usar, pero que necesitas agregar uno o más rangos secundarios.

Si usas un rango secundario para la asignación de alias de IP, será más fácil crear reglas de firewall que permitan el acceso a los servicios que se están ejecutando en una VM, pero no a las direcciones IP principales de la VM.

Console

  1. Ve a la página de redes de VPC en Google Cloud Console.
    Ir a la página Redes de VPC
  2. Haz clic en el nombre de una subred para modificarla y ver su página de detalles.
  3. Haz clic en Editar.
  4. En la sección Rangos de IP secundarios, haz clic en Agregar rango de IP.
  5. Ingresa un nombre para el Nombre del rango de la subred.
  6. Ingresa un rango para el Rango de IP secundario en la notación CIDR. (Ejemplo: 10.9.0.0/24).
  7. A fin de agregar rangos de IP secundarios adicionales, para cada rango, haz clic en Agregar rango de IP, y, luego, proporciona un nombre y un rango.
  8. Haz clic en Guardar.

gcloud

    gcloud compute networks subnets update SUBNET_NAME \
        --region REGION \
        --add-secondary-ranges RANGE_NAME=RANGE_CIDR,RANGE_NAME=RANGE_CIDR,...
    

En el ejemplo anterior, se ilustra lo siguiente:

  • SUBNET_NAME es el nombre de la subred a la que deseas agregar los rangos secundarios.
  • REGION es la región en la que creas la subred.
  • [RANGE_NAME]=[RANGE_CIDR] es el nombre del rango secundario desde el cual proviene el rango de alias de IP y el rango de alias de IP en sí. Por ejemplo: range1=10.9.0.0/24.

Consulta la documentación de gcloud para conocer la sintaxis completa.

API

Agrega un rango secundario a una subred existente.

    PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
    {
      "secondaryIpRanges": [
      {
        "rangeName": "SECONDARY_RANGE_NAME",
        "ipCidrRange": "SECONDARY_IP_RANGE"
      },
      {
        "rangeName": "SECONDARY_RANGE_NAME",
        "ipCidrRange": "SECONDARY_IP_RANGE"
      },
      ...],
      "fingerprint": "SUBNETWORK_FINGERPRINT"
    }
    

Reemplaza los marcadores de posición por valores válidos:

  • PROJECT_ID es el ID del proyecto que contiene la subred que deseas modificar.
  • REGION es la región donde se encuentra la subred.
  • SECONDARY_IP_RANGE es un rango de direcciones IP secundario para la subred.
  • SECONDARY_RANGE_NAME es un nombre para el rango de direcciones IP secundario.
  • SUBNET_FINGERPRINT es el ID de huella digital de la subred existente, que se proporciona cuando describes una subred.
  • SUBNET_NAME es el nombre de la subred que deseas modificar.

Para obtener más información, consulta el método subnetworks.patch.

Quita un rango CIDR secundario de una subred

Console

  1. Ve a la página de redes de VPC en Google Cloud Console.
    Ir a la página Redes de VPC
  2. Haz clic en el nombre de una subred para modificarla y ver su página de detalles.
  3. Haz clic en Editar.
  4. En la sección Rangos secundarios de IP, haz clic en la X junto al rango secundario para quitarlo.
  5. Haz clic en Guardar.

gcloud

    gcloud compute networks subnets update SUBNET_NAME \
        --region REGION \
        --remove-secondary-ranges RANGE_NAME,RANGE_NAME,...
    

En el ejemplo anterior, se ilustra lo siguiente:

  • SUBNET_NAME es el nombre de la subred de la que deseas quitar los rangos secundarios.
  • REGION es la región en la que creas la subred.
  • RANGE_NAME es el nombre del rango secundario desde el cual proviene el rango de alias de IP y el rango de alias de IP en sí. Por ejemplo: range1=10.9.0.0/24

Consulta la documentación de gcloud para conocer la sintaxis completa.

API

Excluye los rangos secundarios para quitarlos. En el siguiente ejemplo, se quitan todos los rangos secundarios de una subred existente:

    PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
    {
      "fingerprint": "SUBNET_FINGERPRINT",
      "secondaryIpRanges": [
      ]
    }
    

Reemplaza los marcadores de posición por valores válidos:

  • PROJECT_ID es el ID del proyecto que contiene la subred que deseas modificar.
  • REGION es la región donde se encuentra la subred.
  • SUBNET_FINGERPRINT es el ID de huella digital de la subred existente, que se proporciona cuando describes una subred.
  • SUBNET_NAME es el nombre de la subred que deseas modificar.

Para obtener más información, consulta el método subnetworks.patch.

Trabaja con instancias de VM

Con estos comandos, se muestra cómo crear una instancia con un rango de alias de IP, agregar uno o más rangos de alias de IP a una instancia de VM existente, o quitar uno o más rangos de una instancia de VM existente.

Crea una VM con un rango de alias de IP en el rango CIDR principal

Usa este procedimiento si deseas asignar un rango de alias de IP desde el rango principal de la subred. El rango que elijas no debe estar en uso, aunque sea en parte, por ningún otro recurso de la red de VPC.

Usa este procedimiento si deseas que la interfaz principal de la instancia y los alias de direcciones IP estén en el mismo rango.

Console

  1. Ve a la página Instancias de VM en Google Cloud Console.
    Ir a la página Instancias de VM
  2. Haz clic en Crear instancia.
  3. Ingresa un Nombre para la nueva instancia.
  4. Especifica una Zona.
  5. Haz clic en Administración, seguridad, discos, Herramientas de redes, un solo inquilino.
  6. Haz clic en la pestaña Herramientas de redes.
  7. Haz clic en el botón de editar (ícono de lápiz) que se encuentra junto a la interfaz primaria en la sección Interfaces de la red.
  8. Haz clic en Mostrar rangos de alias de IP.
  9. Deja el Rango de la subred como Principal.
  10. Ingresa un Rango de alias de IP en la notación CIDR. Este rango debe ser un subrango que no se use del rango principal.
  11. Haz clic en Crear.

gcloud

    gcloud compute instances create vm1 \
        --zone ZONE \
        --network-interface "subnet=SUBNET_NAME,aliases=RANGE_CIDR;RANGE_CIDR;..."
    

En el ejemplo anterior, se ilustra lo siguiente:

  • ZONE es la zona que contendrá la instancia.
  • SUBNET_NAME es el nombre de la subred que contendrá la instancia.
  • RANGE_CIDR es el rango de IP de la subred principal que se asigna a la interfaz. El rango puede ser un rango específico (192.168.100.0/24), una sola dirección IP (192.168.100.1) o una máscara de red en formato CIDR (/24). Si especificas el rango de IP solo por máscara de red, el asignador de IP elige un rango disponible con la máscara de red especificada y lo asigna a la interfaz de red. Para especificar más de un rango, separa los rangos con punto y coma (;).

Consulta la documentación de gcloud para conocer la sintaxis completa.

API

Crea una instancia con un alias de dirección IP del rango de dirección IP principal de la subred de la instancia.

    POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
      "networkInterfaces": [
        {
          "aliasIpRanges": [
            {
              "ipCidrRange": "CIDR_RANGE"
            }
          ]
        },
        ...
      ],
      ...
    }
    

Reemplaza los marcadores de posición por valores válidos:

  • PROJECT_ID es el ID del proyecto en el que creas la instancia.
  • CIDR_RANGE es el rango de IP de la subred principal que se asigna a la interfaz. El rango puede ser un rango específico (192.168.100.0/24), una sola dirección IP (192.168.100.1) o una máscara de red en formato CIDR (/24). Si especificas el rango de IP solo por máscara de red, el asignador de direcciones IP elige un rango disponible con la máscara de red especificada y lo asigna a la interfaz de red.
  • ZONE es la zona de Google Cloud en la que se creará la instancia.

Para obtener más información, consulta el método instance.insert.

Crea una VM con un rango de alias de IP en un rango CIDR secundario

Usa este procedimiento si deseas asignar un rango de alias de IP desde un rango secundario de la subred. Mantener los rangos de alias de IP separados del rango principal de la subred facilita la creación de reglas de firewall que permiten el acceso a los servicios que se están ejecutando en una VM, pero no a las direcciones IP principales de la VM.

Console

  1. Ve a la página Instancias de VM en Google Cloud Console.
    Ir a la página Instancias de VM
  2. Haz clic en Crear instancia.
  3. Ingresa un Nombre para la nueva instancia.
  4. Especifica una Zona.
  5. Haz clic en Administración, seguridad, discos, Herramientas de redes, un solo inquilino.
  6. Haz clic en la pestaña Herramientas de redes.
  7. Haz clic en el botón de editar (ícono de lápiz) que se encuentra junto a la interfaz primaria en la sección Interfaces de la red.
  8. Haz clic en Mostrar rangos de alias de IP.
  9. Selecciona la Subred que tiene el rango secundario.
  10. En Rango de subred, selecciona el Rango de IP secundario que deseas usar.
  11. Ingresa un Rango de alias de IP en la notación CIDR. Este rango debe ser un rango que no se usa del rango de IP secundario.
  12. Haz clic en Crear.

gcloud

    gcloud compute instances create vm3 \
        --zone ZONE \
        --network-interface subnet=SUBNET_NAME,aliases=RANGE_NAME:RANGE_CIDR
     

En el ejemplo anterior, se ilustra lo siguiente:

  • ZONE es la zona que contendrá la instancia.
  • SUBNET_NAME es el nombre de la subred que contendrá la instancia.
  • RANGE_NAME es el nombre del rango secundario de la subred desde el cual proviene el rango de alias de IP.
  • RANGE_CIDR es el rango de IP que se asigna a la interfaz. El rango puede ser un rango específico (192.168.100.0/24), una sola dirección IP (192.168.100.1) o una máscara de red en formato CIDR (/24). Si especificas el rango de IP solo por máscara de red, el asignador de IP elige un rango disponible con la máscara de red especificada y lo asigna a la interfaz de red.

Consulta la documentación de gcloud para conocer la sintaxis completa.

API

Crea una instancia con un alias de dirección IP del rango de direcciones IP secundarias de la subred de la instancia.

    POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
      "networkInterfaces": [
        {
          "aliasIpRanges": [
            {
              "ipCidrRange": "SECONDARY_CIDR_RANGE",
              "subnetworkRangeName": "SECONDARY_RANGE_NAME"
            }
          ]
        },
        ...
      ],
      ...
    }
    

Reemplaza los marcadores de posición por valores válidos:

  • PROJECT_ID es el ID del proyecto en el que creas la instancia.
  • SECONDARY_CIDR_RANGE es el rango de IP que se asigna a la interfaz. El rango puede ser un rango específico (192.168.100.0/24), una sola dirección IP (192.168.100.1) o una máscara de red en formato CIDR (/24). Si especificas el rango de IP solo por máscara de red, el asignador de direcciones IP elige un rango disponible con la máscara de red especificada y lo asigna a la interfaz de red.
  • SECONDARY_RANGE_NAME es el nombre del rango secundario de subred desde el cual proviene el rango de alias de IP.
  • ZONE es la zona de Google Cloud en la que se creará la instancia.

Para obtener más información, consulta el método instance.insert.

Crea una VM con interfaces múltiples y alias de direcciones IP

En este ejemplo, se crean dos redes, cada una con una subred y una VM con interfaces en ambas redes. Si ya tienes dos redes de VPC, puedes saltar al paso para crear instancias de VM.

Console

Crea la primera red y subred:

  1. Ve a la página de redes de VPC en Google Cloud Console.
    Ir a la página Redes de VPC
  2. Haz clic en Crear red de VPC.
  3. Ingresa un Nombre de my-network1.
  4. Con el Modo de creación de subred configurado como Custom, especifica un Nombre de subred my-subnet1.
  5. Especifica una Región.
  6. Configura el Rango de direcciones IP como 172.16.1.0/24.
  7. Haz clic en Crear rango de IP secundario.
  8. Configura el Nombre del rango de la subred como range1.
  9. Configura el Rango de IP secundario como 10.1.0.0/16.
  10. Haz clic en Listo.
  11. Haz clic en Crear.

Crea la segunda red y subred:

  1. Ve a la página de redes de VPC en Google Cloud Console.
    Ir a la página Redes de VPC
  2. Haz clic en Crear red de VPC.
  3. Ingresa un Nombre de my-network2.
  4. Con el Modo de creación de subred configurado como Custom, especifica un Nombre de subred my-subnet2.
  5. Especifica la misma Región que para la primera red y subred.
  6. Configura el Rango de direcciones IP como 172.16.2.0/24.
  7. Haz clic en Crear rango de IP secundario.
  8. Configura el Nombre del rango de la subred como range2.
  9. Configura el Rango de IP secundario como 10.2.0.0/16.
  10. Haz clic en Listo.
  11. Haz clic en Crear.

Crea una VM con interfaces en ambas redes:

  1. Ve a la página Instancias de VM en Google Cloud Console.
    Ir a la página Instancias de VM
  2. Haz clic en Crear instancia.
  3. Establece la zona de la región en la que creaste las subredes.
  4. Haz clic en Administración, seguridad, discos, Herramientas de redes, un solo inquilino.
  5. Haz clic en Herramientas de redes.
  6. Haz clic en la primera interfaz de la red.
  7. Configura Red como my-network1.
  8. Configura la Subred como my-subnet1.
  9. Haz clic en Mostrar rangos de alias de IP.
  10. Haz clic en Agregar rango de alias de IP.
  11. Configura el Rango de la subred en Primary.
  12. Configura el Rango de alias de IP como /32.
  13. Haz clic en Agregar rango de IP.
  14. Configura el Rango de la subred en range1.
  15. Configura el Rango de alias de IP como /24.
  16. Haz clic en Listo.
  17. Haz clic en Agregar interfaz de la red.
  18. Selecciona my-network2.
  19. Configura la Subred como my-subnet2.
  20. Haz clic en Mostrar rangos de alias de IP.
  21. Haz clic en Agregar rango de alias de IP.
  22. Configura el Rango de la subred en Primary.
  23. Configura el Rango de alias de IP como /32.
  24. Haz clic en Agregar rango de IP.
  25. Configura el Rango de la subred en range2.
  26. Ingresa un Rango de alias de IP de /24.
  27. Haz clic en Listo.
  28. Haz clic en Crear.

gcloud

  1. Crea la primera red:

        gcloud compute networks create my-network1 --subnet-mode CUSTOM
        
  2. Agrega una subred:

        gcloud compute networks subnets create my-subnet1 \
            --network my-network1 \
            --range 172.16.1.0/24 \
            --secondary-range range1=10.1.0.0/16
        
  3. Crea una segunda red:

        gcloud compute networks create my-network2 --subnet-mode CUSTOM
        
  4. Agrega una subred:

        gcloud compute networks subnets create my-subnet2 \
            --network my-network2 \
            --range 172.16.2.0/24 \
            --secondary-range range2=10.2.0.0/16
        
  5. Crea una VM con interfaces en ambas redes. La primera interfaz de red de la lista, la de my-subnet1, es la interfaz principal:

        gcloud compute instances create multi-nic-alias-vm \
            --machine-type f1-micro \
            --network-interface "subnet=my-subnet1,aliases=/32;range1:/24" \
            --network-interface "subnet=my-subnet2,aliases=/32;range2:/24"
        
  6. Usa el comando de visualización para ver las interfaces y sus direcciones:

        gcloud compute instances describe multi-nic-alias-vm
        
        ...
        networkInterfaces:
        - ...
          aliasIpRanges:
          - ipCidrRange: 172.16.1.2/32
          - ipCidrRange: 10.1.0.0/24
            subnetworkRangeName: range1
          name: nic0
          network: .../networks/my-network1
          networkIP: 172.16.1.3
          subnetwork: .../subnetworks/my-subnet1
          ...
        - ...
          aliasIpRanges:
          - ipCidrRange: 172.16.2.2/32
          - ipCidrRange: 10.2.0.0/24
            subnetworkRangeName: range2
          name: nic1
          network: .../networks/my-network2
          networkIP: 172.16.2.3
          subnetwork: .../subnetworks/my-subnet2
          

API

  1. Crea dos redes de VPC de modo personalizado con el nombre my-network1 y my-network2. Para obtener más información, consulta Crea una red de modo personalizado.

  2. Agrega subredes a las redes de VPC. Para obtener más información, consulta Agrega subredes.

    1. Agrega una subred llamada my-subnet1 a my-network1. Especifica 172.16.1.0/24 para el rango principal y 10.1.0.0/16 para el rango secundario con el nombre range1.

    2. Agrega una subred llamada my-subnet2 a my-network2. Especifica 172.16.2.0/24 para el rango principal y 10.2.0.0/16 para el rango secundario con el nombre range2.

  3. Crea una instancia de VM con interfaces en ambas redes.

        POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
        {
          "networkInterfaces": [
            {
              "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/my-subnet1",
              "aliasIpRanges": [
                {
                  "ipCidrRange": "/32",
                },
                {
                  "subnetworkRangeName": "range1",
                  "ipCidrRange": "/24"
                }
              ]
            },
            {
              "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/my-subnet2",
              "aliasIpRanges": [
                {
                  "ipCidrRange": "/32",
                },
                {
                  "subnetworkRangeName": "range2",
                  "ipCidrRange": "/24"
                }
              ]
            }
          ],
          ...
        }
        

    Reemplaza los marcadores de posición por valores válidos:

    • PROJECT_ID es el ID del proyecto en el que creas la instancia.
    • REGION es la región de Google Cloud donde se encuentra la subred. Las subredes deben estar en la misma región que la instancia.
    • ZONE es la zona de Google Cloud en la que se creará la instancia.

    Para obtener más información, consulta el método instance.insert.

Agrega rangos de alias de IP a instancias existentes

Puedes agregar un rango de IP de alias a una instancia en ejecución.

Console

  1. Ve a la página Instancias de VM en Google Cloud Console.
    Ir a la página Instancias de VM
  2. Haz clic en el nombre de una instancia existente.
  3. Haz clic en Editar.
  4. Haz clic en la interfaz de la red nic0 (o la interfaz de la red a la cual agregarás un rango de alias de IP).
  5. Haz clic en Mostrar rangos de alias de IP.
  6. Haz clic en Agregar rango de IP.
  7. Selecciona un Rango de subred.
  8. Ingresa un rango de alias de IP.
  9. Haz clic en Listo.
  10. Haz clic en Guardar.

gcloud

    gcloud compute instances network-interfaces update INSTANCE_NAME \
        --zone ZONE \
        [--network-interface NETWORK_INTERFACE; default="nic0"]
        --aliases "RANGE_NAME:RANGE_CIDR,RANGE_NAME:RANGE_CIDR,..."
    
  • ZONE es la zona que contiene la instancia.
  • NETWORK_INTERFACE es el nombre de la interfaz de red a la que estás agregando un rango de alias de direcciones IP.
  • RANGE_NAME es el nombre del rango secundario de la subred desde el cual proviene el rango de alias de IP. Si vas a asignar rangos desde el rango principal de la subred, omite este valor.
  • RANGE_CIDR es el rango de IP que se asigna a la interfaz. El rango puede ser un rango específico (192.168.100.0/24), una sola dirección IP (192.168.100.1) o una máscara de red en formato CIDR (/24). Si especificas el rango de IP solo por máscara de red, el asignador de IP elige un rango disponible con la máscara de red especificada y lo asigna a la interfaz de red.

Consulta la documentación de gcloud para conocer la sintaxis completa.

API

Agrega rangos de alias de IP a una instancia existente.

    PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/multinic/updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME
    {
      "aliasIpRanges": [
        {
          "ipCidrRange": "SECONDARY_IP_RANGE",
          "subnetworkRangeName": "SECONDARY_RANGE_NAME"
        },
        existing ranges...
      ],
      "fingerprint": "INTERFACE_FINGERPRINT"
    }
    

Reemplaza los marcadores de posición por valores válidos:

  • PROJECT_ID es el ID del proyecto que contiene la instancia que se va a modificar.
  • NETWORK_INTERFACE_NAME es el nombre de la interfaz de red de la instancia que se va a modificar.
  • INTERFACE_FINGERPRINT es el ID de huella digital de la interfaz de red existente, que se proporciona cuando describes una instancia.
  • SECONDARY_CIDR_RANGE es el rango de IP que se asigna a la interfaz. El rango puede ser un rango específico (192.168.100.0/24), una sola dirección IP (192.168.100.1) o una máscara de red en formato CIDR (/24). Si especificas el rango de IP solo por máscara de red, el asignador de direcciones IP elige un rango disponible con la máscara de red especificada y lo asigna a la interfaz de red.
  • SECONDARY_RANGE_NAME es el nombre del rango secundario de subred desde el cual proviene el rango de alias de IP. Si asignas rangos desde el rango principal de la subred, omite este campo.
  • ZONE es la zona de Google Cloud en la que se creará la instancia.

Para obtener más información, consulta el método instance.updateNetworkInterface.

Modifica rangos de alias de IP para una instancia existente

Puedes agregar más rangos de alias de IP a una instancia existente o quitar uno o más rangos.

Console

  1. Ve a la página Instancias de VM en Google Cloud Console.
    Ir a la página Instancias de VM
  2. Haz clic en el nombre de una instancia existente.
  3. Haz clic en Editar.
  4. Haz clic en la interfaz de la red nic0 (o la interfaz de la red que modificarás).
  5. Haz clic en Mostrar rangos de alias de IP.
  6. Para agregar un rango de alias de IP, haz clic en Agregar rango de alias de IP.
  7. Para quitar un rango de alias de IP, haz clic en la X junto al rango de alias de IP.
  8. Haz clic en Listo.
  9. Haz clic en Guardar.

gcloud

    gcloud compute instances network-interfaces update INSTANCE_NAME \
        --zone ZONE \
        [--network-interface NETWORK_INTERFACE; default="nic0"]
        --aliases "RANGES_TO_RETAIN;NEW_RANGE_NAME:NEW_RANGE_CIDR;..."
    
  • ZONE es la zona que contiene la instancia.
  • NETWORK_INTERFACE es el nombre de la interfaz de red que estás modificando.
  • RANGES_TO_RETAIN son los rangos existentes, en formato CURRENT_RANGE_NAME:CURRRENT_RANGE_CIDR, que deseas conservar. Si estás agregando rangos a una instancia que no tiene ninguno, estos valores estarán en blanco. Si quitas todos los rangos de la instancia, el campo --aliases completo quedará en blanco.
  • NEW_RANGE_NAME es el nombre del rango secundario de subred desde el cual provienen los rangos de alias de IP nuevos. Si vas a asignar rangos desde el rango principal de la subred, omite este valor.
  • NEW_RANGE_CIDR es el rango de IP que se asignará a la interfaz. El rango puede ser un rango específico (192.168.100.0/24), una sola dirección IP (192.168.100.1) o una máscara de red en formato CIDR (/24). Si especificas el rango de IP solo por máscara de red, el asignador de IP elige un rango disponible con la máscara de red especificada y lo asigna a la interfaz de red.

Para agregar rangos, ejecuta el comando y especifica todos los rangos de alias de IP nuevos y existentes. Los pares se separan mediante punto y coma. Ejemplo: --aliases "CURRENT_RANGE_NAME:CURRRENT_RANGE_CIDR;NEW_RANGE_NAME:NEW_RANGE_CIDR".

Para quitar rangos, ejecuta el comando y especifica solo los rangos de alias de IP que deseas conservar. Si quieres mantener rangos de un rango secundario, debes especificar el nombre del rango secundario. Un rango CIDR puede ser un rango específico (192.168.100.0/24) o una sola dirección IP (192.168.100.1). Ejemplo: --aliases "RANGE_NAME:RANGE_CIDR;RANGE_CIDR".

A fin de quitar todos los rangos, ejecuta el comando y especifica la marca --aliases, pero usa comillas para proporcionar una entrada en blanco. Ejemplo: --aliases "".

No puedes agregar y quitar rangos en el mismo comando de gcloud. Si deseas quitar algunos rangos y agregar otros con la interfaz de línea de comandos de gcloud, primero ejecuta el comando para quitar los rangos innecesarios y vuelve a ejecutarlo a fin de agregar los rangos necesarios.

Consulta la documentación de gcloud para obtener una sintaxis completa.

API

Para una interfaz de red de una instancia existente, agrega o quita rangos de alias de direcciones IP.

    PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/multinic/updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME
    {
      "aliasIpRanges": [
        include new and existing ranges to add them...
        exclude existing ranges to remove them...
      ],
      "fingerprint": "INTERFACE_FINGERPRINT"
    }
    

Reemplaza los marcadores de posición por valores válidos:

  • PROJECT_ID es el ID del proyecto que contiene la instancia que se va a modificar.
  • NETWORK_INTERFACE_NAME es el nombre de la interfaz de red de la instancia que se va a modificar.
  • INTERFACE_FINGERPRINT es el ID de huella digital de la interfaz de red existente, que se proporciona cuando describes una instancia.

Para obtener más información, consulta el método instance.updateNetworkInterface.

Soluciona problemas

No se puede crear una instancia de VM con una IP de alias

  1. Verifica que la red sea de VPC. Los alias de IP no son compatibles con redes heredadas.

        gcloud compute networks list --filter="name=NETWORK_NAME"
        

    La red MODE debe ser “automática” o “personalizada”.

  2. Si se especifica un nombre de rango de la subred, verifica lo siguiente:

        gcloud compute networks subnets describe SUBNET_NAME --region=REGION
        
    • Que la subred tenga un rango secundario con el nombre correspondiente
    • Que el rango de alias de IP solicitado esté dentro del rango secundario o, en caso de que se use máscara de red, que sea menor que el rango principal
  3. Si el nombre del rango de subredes no está especificado, verifica que el rango de alias de IP solicitado esté dentro del rango de subredes principal o, en caso de que se use máscara de red, que sea menor que el rango principal.

No se puede conectar con el alias de IP

  1. Verifica las reglas de firewall.

    1. Detalla todas las reglas de firewall:

          gcloud compute firewall-rules list --format=json
          
    2. Verifica que el tráfico hacia y desde el alias de IP esté permitido.

    3. De ser necesario, agrega reglas de firewall para permitir que se haga ping al alias de IP:

          gcloud compute firewall-rules create FIREWALL_NAME1 \
            --network NETWORK_NAME --priority 0 --source-ranges ALIAS_IP \
            --allow icmp
          
          gcloud compute firewall-rules create FIREWALL_NAME2 \
            --network NETWORK_NAME --priority 0 --direction out \
            --destination-ranges ALIAS_IP --allow icmp
          
  2. Asegúrate de que la VM reconozca los rangos de alias de IP como locales. En las distribuciones de Linux, como Debian, esto se puede hacer de la siguiente manera:

    1. Conéctate a la instancia y ejecuta este comando:

          ip route show table local
          

      El resultado debería contener lo siguiente:

          local ALIAS_IP_RANGE dev eth0  proto 66  scope host
          
    2. Asegúrate de que ip_alias = true en /etc/default/instance_configs.cfg. Si tienes que cambiar esto, también debes reiniciar el daemon de enrutamiento:

          service google-ip-forwarding-daemon restart
          
    3. Si la ruta local no está presente, configúrala con este comando:

          ip route add to local ALIAS_IP_RANGE dev eth0 proto 66
          

Mi rango de IP secundario no aparece en la lista

Los rangos de IP secundarios no se detallan en las subredes regulares. Para mostrar que se creó el rango de IP secundario de la subred, usa el comando gcloud compute networks subnets describe.

  1. Crea una subred.

        gcloud compute networks subnets create my-subnet \
            --region us-central1 \
            --network my-network \
            --range 10.9.0.0/16 \
            --secondary-range secondaryrange1=172.16.0.0/12
        
        Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet].
        NAME       REGION       NETWORK     RANGE
        my-subnet  us-central1  my-network  10.9.0.0/16
        
  2. Detalla tus subredes.

        gcloud compute networks subnets list
        
        NAME       REGION       NETWORK     RANGE
        my-subnet  us-central1  my-network  10.9.0.0/16
        
  3. Obtén detalles sobre una subred a fin de ver los rangos secundarios.

        gcloud compute networks subnets describe my-subnet --region us-central1
        
        ...
        ipCidrRange: 10.9.0.0/16
        ...
        secondaryIpRanges:
        - ipCidrRange: 172.16.0.0/12
          rangeName: secondaryrange1
        ...
        

No existe el rango secundario de la subred especificada

Si cuando estás creando una VM, recibes un error que dice que el rango secundario no existe, asegúrate de lo siguiente:

  • Que la subred tenga un rango secundario con el nombre especificado
  • Que estés creando tu VM dentro de la subred que tiene el rango secundario

Puedes ver este error si ejecutas los siguientes comandos:

  1. Crea una subred con un rango secundario.

        gcloud compute networks subnets create my-subnet \
            --region us-central1 \
            --network my-network \
            --range 10.9.0.0/16 \
            --secondary-range secondaryrange1=172.16.0.0/12
        
        Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet].
        NAME       REGION       NETWORK     RANGE
        my-subnet  us-central1  my-network  10.9.0.0/16
        
  2. Crea una instancia en otra red, como la red predeterminada, en lugar de en la subred que se creó recién.

        gcloud compute instances create instance-1 \
            --zone us-central1-a \
            --network default
        
        Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-1].
        NAME        ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
        instance-1  us-central1-a  n1-standard-1               10.128.0.2     47.82.96.9  RUNNING
        
  3. Intenta asignar un rango de alias de IP desde la subred creada en el paso 1. El comando arrojará un error, ya que el rango secundario se encuentra en una subred diferente que la instancia.

        gcloud compute instances network-interfaces update instance-1 \
            --zone us-central1-a \
            --aliases secondaryrange1:172.16.0.10/32
        
        ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges[0].subnetworkRangeName': 'secondaryrange'. The specified subnetwork secondary range does not exist.
        
  4. Crea otra instancia, con su interfaz en la subred creada en el paso 1.

        gcloud compute instances create instance-2 \
            --zone us-central1-a \
            --network-interface subnet=my-subnet
        
        Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-2].
        NAME        ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
        instance-2  us-central1-a  n1-standard-1               10.9.0.2     38.74.204.89  RUNNING
        
  5. Agrega un rango de alias de IP a la interfaz. Esta vez, el comando funciona de manera correcta, ya que la interfaz y el rango secundario están en la misma subred.

        gcloud compute instances network-interfaces update instance-2 \
            --zone us-central1-a \
            --aliases secondaryrange1:172.16.0.10/32
        
        Updating network interface [nic0] of instance [instance-2]...done.
        

No se pueden agregar ni quitar rangos de IP secundarios en la misma solicitud

Por el momento, no se puede agregar y quitar rangos de IP secundarios de la subred en el mismo comando. El comando de gcloud para agregar y quitar rangos secundarios preservará los rangos existentes que no se modifiquen.

Para agregar o quitar rangos, ejecuta los dos comandos por separado.

    gcloud compute networks subnets update SUBNET_NAME \
        --add-secondary-ranges RANGE_NAME=RANGE_CIDR,RANGE_NAME=RANGE_CIDR,...
    
    gcloud compute networks subnets update  SUBNET_NAME \
        --remove-secondary-ranges RANGE_NAME,RANGE_NAME,...
    

Para ver más detalles de este comando, usa gcloud compute networks subnets update --help.

No se puede agregar y quitar rangos de alias de IP de manera simultánea

Por el momento, no es posible agregar y quitar rangos de alias de IP de VM en la misma solicitud.

El comando de gcloud para actualizar rangos de alias de IP NO conserva los rangos existentes, por lo que omitir un rango se considera una solicitud para borrar ese rango.

Por ejemplo, si la VM actual tiene un rango de alias 10.9.27.0/24 y el nuevo rango solicitado es  /24, la ejecución del comando para solicitar /24 se rechazará ya que se interpreta como que se está quitando 10.9.27.0/24 y agregando /24. El rango existente debe quitarse de manera explícita antes de poder agregar un rango nuevo.

Ejemplo:

  1. Crea un rango de alias de IP.

        gcloud compute instances create vm --network-interface "subnet=s1,aliases=10.9.27.0/24"
        
  2. Intenta agregar /24 sin especificar el rango existente. Se produce un error.

        gcloud compute instances network-interfaces update vm --aliases "/24"
        ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges': ''. Cannot simultaneously add and remove alias IP ranges.
        
  3. Actualiza la VM para que no tenga un rango de IP de alias.

        gcloud compute instances network-interfaces update vm --aliases ""
        Updating network interface [nic0] of instance [vm]...done.
        
  4. Agrega el rango de alias de IP nuevo.

        gcloud compute instances network-interfaces update vm --aliases "/24"
        Updating network interface [nic0] of instance [vm]...done.
        

Para ver más detalles de este comando, usa gcloud compute instances network-interfaces update --help.

Etiquetas de origen y cuentas de servicio de origen de reglas de firewall

La cuenta de servicio de origen de firewall y las etiquetas de origen solo se expanden a las IP de redes principales de instancias coincidentes, y no se aplican a instancias coincidentes de alias de IP. Por ende, una regla de firewall basada en etiquetas de origen no afectará el tráfico desde un alias de dirección IP de la instancia. Los alias de direcciones IP pueden agregarse a las reglas de firewall como rangos de origen o destino.

Problemas con VM con interfaces múltiples y rangos de alias de IP

Consulta Solución de problemas para interfaces múltiples.

La habilitación del alias de IP en imágenes de GCP inhabilita el puente cbr0 en los clústeres de Kubernetes de administración automática

En los clústeres de Kubernetes, la ruta local ALIAS_IP_RANGE entra en conflicto con cbr0 y lo inhabilita, lo que provoca que los pods pierdan conectividad de red.

Por lo tanto, esta ruta está inhabilitada en las imágenes de Container‑Optimized OS de GKE.

Es posible que los usuarios que deseen usar alias de IP en clústeres de administración automática mediante imágenes proporcionadas por Google Cloud deban seguir los pasos para excluir esta ruta.

Síntomas:

  • Si surge este conflicto, los pods de Kubernetes no tendrán acceso a la red.

  • Una captura de paquetes en el dispositivo puente de Linux (tcpdump -ni cbr arp) mientras los pods intentan aumentar las conexiones salientes mostrará los pods que realizan ARP para la dirección MAC de su puerta de enlace. La puerta de enlace, cbr0, no emite una respuesta ARP a pesar de estar activa.

  • ip route show table local muestra ALIAS_IP_RANGE en eth0.

Solución:

  • Configura ip_forwarding_daemon = false en /etc/default/instance_configs.cfg en los nodos afectados. Esto evita que la ruta se vuelva a instalar después de la eliminación.

  • Reinicia el daemon de reenvío de IP: service google-ip-forwarding-daemon restart.

  • Borra la ruta existente de forma manual: sudo ip route del local ALIAS_IP_RANGE dev eth0.

Próximos pasos