Solucionar problemas de VMs con varias interfaces de red
En esta página se describen los pasos para solucionar problemas habituales que pueden surgir al crear y usar VMs con varias interfaces de red.
No puedo crear una VM con varias interfaces
Es posible que veas uno de los siguientes mensajes de error:
Invalid value for field 'resource': ''. Too many network interfaces. The maximum number of network interfaces allowed for this machine type is.
Si recibes este mensaje de error, significa que estás intentando crear más interfaces que el número máximo de interfaces admitidas por el tipo de máquina de tu instancia. Consulta la tabla Número máximo de interfaces.
Networks must be distinct for NICs attached to a VM.
Si ves este mensaje, significa que estás intentando crear más de una interfaz en la misma red. Cada interfaz de red debe estar conectada a una red de VPC diferente.
Subnetwork CIDR ranges must be non-overlapping for NICs attached to a VM.
Si recibes este mensaje, significa que los intervalos CIDR asociados a las interfaces de tu máquina virtual se solapan. Estos intervalos CIDR incluyen todos los intervalos principales de las subredes asociadas a las interfaces de las máquinas virtuales, así como los intervalos secundarios que se usan para los intervalos de IP de alias. Cada interfaz está conectada a una subred, cada una en una red de VPC diferente, que no debe solaparse con las subredes de otras interfaces. Por ejemplo, si quieres crear tu instancia en la región
REGION_A
, puedes consultar los intervalos CIDR principales de las subredes con el siguiente comando o con la Google Cloud consola.gcloud compute networks subnets list --regions REGION_A NAME REGION NETWORK RANGE default REGION_A default 10.138.0.0/20 overlapping-subnet REGION_A test-network 10.138.8.0/24
Para comprobar los intervalos CIDR de las subredes secundarias, usa el siguiente comando o la consola deGoogle Cloud .
gcloud compute networks subnets describe overlapping-subnet --region REGION_A
... ipCidrRange: 10.128.8.0/24 ... secondaryIpRanges: - ipCidrRange: 10.138.8.0/24 rangeName: conflicting-range
Multiple network interfaces are not supported on legacy networks.
Si ves este mensaje, significa que estás intentando crear tu instancia en una red antigua. Las instancias con varias interfaces no se admiten en redes antiguas. Puedes comprobar si una cadena es antigua con uno de los siguientes métodos:
- En la Google Cloud consola, ve a la página Redes de VPC y consulta la columna Modo.
- Ejecuta el comando
gcloud compute networks list
y comprueba el campoSUBNET_MODE
.
Required 'compute.instances.create' permission for 'projects/PROJECT_ID/zones/ZONE/instances/test-inst'
Si recibes este mensaje, significa que la cuenta con la que has iniciado sesión no tiene los permisos de gestión de identidades y accesos necesarios para crear una instancia. Para obtener más información sobre los roles necesarios para crear instancias, consulta Permisos, gestión de identidades y accesos e instancias con varias interfaces de red. Puedes comprobar si la política de gestión de identidades y accesos asociada a tu proyecto te concede alguno de los siguientes roles:
OWNER
,EDITOR
ocompute.instanceAdmin.v1
. Para crear instancias en una VPC compartida, también necesitará el rolcompute.networkUser
. En el siguiente ejemplo, la cuentaemail2@gmail.com
no tiene permisos de gestión de identidades y accesos suficientes para crear una instancia. Para obtener instrucciones más detalladas, consulta la guía Conceder, cambiar y revocar el acceso a los recursos de IAM.gcloud projects get-iam-policy PROJECT_ID bindings: - members: - user:email1@gmail.com role: roles/owner - members: - serviceAccount:our-project-123@appspot.gserviceaccount.com - serviceAccount:123456789012-compute@developer.gserviceaccount.com role: roles/editor - members: - user:email2@gmail.com role: roles/viewer etag: BwUjMhXbSPU= version: 1
Puedes pedirle al propietario o al editor del proyecto que te asigne el rol de
OWNER
,EDITOR
ocompute.instanceAdmin.v1
. También necesitarás el rolcompute.networkUser
si asocias alguna interfaz con una subred que pertenezca a una VPC compartida.gcloud projects set-iam_policy --member user:email2@gmail.com --role roles/editor
No puedo conectarme a la dirección IP interna de una interfaz secundaria
Comprueba las reglas del cortafuegos para ver si permiten la conectividad con la interfaz secundaria de la VM. Para comprobarlo, consulta las reglas de cortafuegos de la red conectada a la interfaz secundaria. Para ello, ve a la Google Cloud consola y haz clic en la red de VPC correspondiente o usa el siguiente comando
gcloud
.gcloud compute firewall-rules list --filter='network:NETWORK_NAME'
Comprueba si estás intentando conectarte a una interfaz secundaria desde una dirección de Internet o desde fuera de la red de la interfaz secundaria. Solo puedes conectarte a la IP interna de una interfaz desde su red. Si necesitas acceder a esa interfaz desde fuera de la red, puedes asignar una dirección IP externa a tu interfaz secundaria.
Comprueba si estás intentando conectarte a la IP interna de la interfaz secundaria desde fuera de la subred a la que está conectada la interfaz secundaria, ya sea desde otra subred de la misma red o desde una red emparejada. En Varias interfaces de red por instancia se explica la interacción entre el emparejamiento de VPC y las instancias de VM con varias interfaces. Para acceder a interfaces secundarias desde fuera de la subred de la interfaz, es posible que tengas que configurar rutas en la VM. Consulta las especificaciones para obtener información sobre cómo los programas DHCP enrutan de forma predeterminada en la VM.
Si intentas acceder a una dirección IPv6, consulta también No puedo conectarme a la dirección IPv6 de una interfaz secundaria.
No puedo conectarme a una interfaz secundaria mediante una dirección IP externa
El servidor DHCP programa una ruta predeterminada solo en la interfaz de red principal de la VM. Si quieres conectarte a la interfaz secundaria mediante una IP externa, tienes dos opciones. Si solo necesitas conectarte fuera de la red en la interfaz de red secundaria, puedes definir una ruta predeterminada en esa interfaz de red. De lo contrario, puedes usar el método descrito en el tutorial Configurar el enrutamiento de una interfaz adicional para configurar una tabla de enrutamiento independiente mediante el enrutamiento basado en políticas de origen en tu máquina virtual.
Si intentas acceder a una dirección IPv6, consulta también No puedo conectarme a la dirección IPv6 de una interfaz secundaria.
No puedo conectarme a la dirección IPv6 de una interfaz secundaria
Si intentas acceder a una dirección IPv6, comprueba que la VM tenga instalada la versión
google-guest-agent
20220603.00
o una posterior. Para obtener más información sobre cómo gestionar las google-guest-agent
versiones, consulta Entorno de invitado.
Si tienes una versión anterior de google-guest-agent
, las interfaces secundarias no reciben una ruta de subred IPv6. Te recomendamos que actualices el agente invitado para que las rutas se configuren correctamente.
Sin embargo, como solución alternativa, puedes crear una secuencia de comandos de inicio para hacer el siguiente cambio de configuración en cada interfaz secundaria.
sudo sysctl -w net.ipv6.conf.INTERFACE_NAME.accept_ra_rt_info_max_plen=128
Sustituye INTERFACE_NAME
por el nombre de la interfaz (por ejemplo, eth1
o ens5
).
Tengo problemas de conectividad cuando uso una máscara de red que no es /32
De forma predeterminada, el servidor de metadatos de la instancia solo responde a las solicitudes ARP de la pasarela predeterminada.
Para configurar interfaces con una máscara de red que no sea /32
, debes crear una imagen con la marca --guest-os-features MULTI_IP_SUBNET
y usarla para crear tu instancia. Por ejemplo, si usas una imagen basada en debian-9
, puedes crear una imagen con el siguiente comando:
gcloud compute images create debian-9-multi-ip-subnet \ --source-disk debian-9-disk \ --source-disk-zone ZONE_A \ --guest-os-features MULTI_IP_SUBNET
Para ver las funciones de invitado configuradas en la imagen, ejecuta el comando gcloud compute
images describe
en la imagen de invitado.
gcloud compute images describe debian-9-multi-ip-subnet
Para obtener más información sobre cómo crear imágenes personalizadas, consulta el artículo Crear, eliminar y desactivar imágenes personalizadas.
No puedo resolver el nombre de host interno de una VM con varias interfaces de red
Cuando se ejecuta una consulta DNS con un nombre de host interno, se resuelve en la interfaz de red principal (nic0
) de la instancia.
Si nic0
está conectada a una red de VPC diferente de la red de VPC de la instancia que envía la consulta de DNS, la consulta de DNS falla.
El DNS interno solo se resuelve en una red de VPC determinada. Para obtener más información, consulta DNS interno de Compute Engine.
Aparece un error al eliminar una NIC dinámica actualizando las propiedades de la instancia
En casos excepcionales, si eliminas una interfaz de red dinámica (NIC) al actualizar las propiedades de una instancia, es posible que la actualización falle. Si se produce un error, la instancia vuelve a su estado original. En casos muy raros, es posible que la NIC dinámica se mantenga eliminada.
Si tienes este problema, haz lo siguiente:
Para solucionar el problema, usa el mismo comando o solicitud para volver a actualizar las propiedades de la instancia. Si vuelves a ejecutar la operación, te aseguras de que la instancia alcance el estado que especificaste en tu solicitud original.
Para evitar que vuelva a ocurrir este problema, no elimines NICs dinámicas de una instancia actualizando las propiedades de la instancia. En su lugar, elimina las NICs dinámicas directamente, tal como se describe en Eliminar NICs dinámicas.
Recibo un error al eliminar una NIC dinámica actualizando las configuraciones de MIG
En casos excepcionales, si eliminas una NIC dinámica al actualizar las configuraciones de instancias de un MIG, es posible que la actualización falle. Si se produce un error, las instancias volverán a su estado original.
Compute Engine resuelve este problema automáticamente volviendo a intentar la operación de actualización hasta que se complete correctamente. Puedes consultar periódicamente el estado de las instancias gestionadas hasta que se resuelva el error del último intento.
Solucionar problemas con la consola de serie
A menudo, es recomendable habilitar la consola en serie en una VM para depurar problemas relacionados con la configuración. Para habilitar la consola en serie para la depuración interactiva, sigue los pasos que se indican en Solucionar problemas con la consola en serie.