Configura rangos de alias de IP

En este documento, encontrarás instrucciones para configurar alias de direcciones IP y rangos de alias de IP mediante 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 y quitar rangos secundarios al mismo tiempo. Agregar y quitar 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 automáticamente para los rangos de IP de alias en la interfaz de la red principal, pero no en las interfaces secundarias. Si tienes interfaces de red múltiples, 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 IP de alias.
  • Los rangos de IP de alias se pueden agregar o quitar, pero no actualizar.
  • Si quitas un rango de IP de alias de una VM y se lo asignas a otra VM, la transferencia podría tardar hasta un minuto en completarse.
  • Las etiquetas de origen de firewall no son compatibles con las direcciones IP de alias. Cuando configuras etiquetas de origen en reglas de firewall, las etiquetas de origen coinciden con la dirección IP principal de VM, pero no con las direcciones IP de alias. 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 la IP de alias no se configuran automáticamente, pero se los puede agregar de forma manual.

Red de VPC

  • Una red de VPC puede tener hasta 7,000 rangos de IP de alias en todas las VM.
  • Agregar o quitar una gran cantidad de rangos de IP de alias a la vez puede llevar mucho tiempo. Por ejemplo, puede llevar hasta 10 minutos agregar o quitar 7,000 rangos de IP de alias.
  • Las redes de VPC de modo automático no pueden quitarse si hay rangos de la subred secundaria presentes.
  • En una ruta estática, la dirección IP del salto siguiente debe ser la dirección IP principal de la VM. Las direcciones IP de alias no son compatibles con direcciones IP de salto siguiente.
  • Las direcciones IPv6 no son compatibles.
  • Los rangos de IP de alias 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 IP de alias 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 IP de alias 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 Google CLoud 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 adjunta 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, cómo agregar un rango secundario a una subred existente o quitar un rango secundario de una subred. Una vez que tu subred tenga el rango que deseas utilizar, consulta los comandos de instancias de VM para obtener instrucciones sobre cómo asignar un rango a una VM.

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

Este comando supone que ya cuentas con una red de VPC. De no ser así, crea una.

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.

Utilizar un rango secundario para la asignación de IP de alias te permite separar el espacio de IP para servicios alojados en la VM, por lo que es más fácil crear 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 VM.

Console

  1. Ve a la página 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,...

donde

  • NETWORK_NAME es el nombre de la red en la cual deseas crear la subred.
  • REGION es la región en la cual estás creando la subred.
  • RANGE_NAME = RANGE_CIDR es el nombre del rango secundario desde el cual saldrá el rango de IP de alias y el rango de IP de alias 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://compute.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, se supone que tienes una subred que deseas utilizar, 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 la dirección IP principal de la VM.

Console

  1. Ve a la página 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. Por 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,...

donde

  • SUBNET_NAME es el nombre de la subred a la que deseas agregar el rango secundario.
  • REGION es la región en la cual estás creando la subred.
  • RANGE_NAME = RANGE_CIDR es el nombre del rango secundario desde el cual saldrá el rango de IP de alias y el rango de IP de alias 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://compute.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 en la que 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

Puedes quitar rangos secundarios existentes de una subred. Para ver los rangos que están asociados con una subred, consulta Describe una subred.

Console

  1. Ve a la página 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 secundarias, 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,...

donde

  • SUBNET_NAME es el nombre de la subred de la cual deseas quitar los rangos secundarios.
  • REGION es la región en la cual estás creando la subred.
  • RANGE_NAME es el nombre del rango secundario desde el cual saldrá el rango de IP de alias y el rango de IP de alias 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://compute.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 en la que 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, cómo agregar uno o más rangos de alias de IP a una instancia de VM existente o cómo quitar uno o más rangos de una instancia de VM existente.

Cómo crear una VM con un rango de IP de alias en el rango CIDR principal

Utiliza este procedimiento si deseas asignar un rango de IP de alias 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.

Utiliza este procedimiento si deseas que la interfaz principal de la instancia y las direcciones IP de alias 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 IP de alias.
  9. Deja el Rango de la subred como Principal.
  10. Ingresa un Rango de IP de alias en la notación CIDR. Este rango debe ser un subrango no utilizado 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;..."

donde

  • 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 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 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 direcciones IP principal de la subred de la instancia.

POST https://compute.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 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 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

Utiliza este procedimiento si deseas asignar un rango de IP de alias desde el rango secundario de la subred. Mantener los rangos de IP de alias 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 IP de alias.
  9. Selecciona la Subred que tiene el rango secundario.
  10. En Rango de subred, selecciona el Rango de IP secundario que deseas utilizar.
  11. Ingresa un Rango de IP de alias en la notación CIDR. Este rango debe ser un rango no utilizado 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
 

donde

  • 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 saldrá el rango de IP de alias.
  • 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.

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 secundario de la subred de la instancia.

POST https://compute.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 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 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 la subred desde el cual saldrá el rango de IP de alias.
  • 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 “Crea una instancia de VM”.

Console

Crea la primera red y subred:

  1. Ve a la página Redes de VPC en Google Cloud Console.
    Ir a la página de 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 Redes de VPC en Google Cloud Console.
    Ir a la página de 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://compute.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 en la que 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 IP de alias).
  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 agregarás un rango de direcciones IP de alias.
  • RANGE_NAME es el nombre del rango secundario de la subred desde el cual saldrá el rango de IP de alias. Si asignas rangos desde el rango principal de la subred, omite este valor.
  • 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.

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

API

Agrega rangos de alias de IP a una instancia existente.

PATCH https://compute.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 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 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 la subred desde el cual saldrá el rango de IP de alias. 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 IP de alias.
  6. Para agregar un rango de IP de alias, haz clic en Agregar rango de IP de alias.
  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 agregas 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 la subred desde el cual saldrán los nuevos rangos de IP de alias. Si asignas 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 solamente 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 conocer la sintaxis completa.

API

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

PATCH https://compute.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 IP de alias 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 IP de alias 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 la IP de alias

  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 la IP de alias esté permitido.

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

      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 IP de alias 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 hacerlo 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 IP de alias a la interfaz. Esta vez, el comando funciona correctamente, 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

Actualmente, 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 pueden agregar y quitar rangos de alias de IP en simultáneo

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 forma 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 solamente se expanden a las IP de redes principales de instancias coincidentes, y no se aplican a instancias coincidentes de IP de alias. Por ende, una regla de firewall basada en etiquetas de origen no afectará el tráfico desde una dirección IP de alias de la instancia. Las direcciones IP de alias 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 la sección sobre cómo solucionar problemas para interfaces múltiples.

La habilitación del alias de IP en imágenes de Google Cloud 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 autoadministrados 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 reinstale 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