Soluciona problemas de VMs con interfaces de red múltiples
En esta página, se proporcionan pasos para solucionar problemas comunes que puedes encontrar cuando creas y usas VMs con varias interfaces de red.
No puedo crear una VM con varias interfaces
Es posible que veas 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 ves este error, significa que intentaste crear más interfaces que el máximo admitido por el tipo de máquina de tu instancia. Consulta la tabla de cantidad máxima de interfaces.
Networks must be distinct for NICs attached to a VM.
Si ves este mensaje, significa que intentaste crear más de una interfaz en la misma red. Cada interfaz de red se debe adjuntar a una red de VPC diferente.
Subnetwork CIDR ranges must be non-overlapping for NICs attached to a VM.
Si ves este mensaje, significa que los rangos de CIDR asociados con las interfaces de tus VM se superponen. Estos rangos de CIDR incluyen todos los rangos principales de las subredes asociadas con las interfaces de VM, y los rangos secundarios utilizados en los rangos de IP de alias. Cada interfaz se adjunta a una subred, cada una en una red de VPC diferente, que no debe superponerse con las subredes de otras interfaces. Por ejemplo, si intentas crear la instancia en la región
REGION_A
, puedes verificar los rangos de CIDR principales de la subred mediante el siguiente comando o la consola de Google Cloud.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 verificar los rangos de CIDR de la subred secundarios, usa el siguiente comando o la consola de Google 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, intentaste crear tu instancia en una red heredada. No se admiten instancias con interfaces múltiples con redes heredadas. Puedes verificar si una red es heredada mediante uno de los siguientes métodos:
- En la consola de Google Cloud, ve a la página Redes de VPC y revisa la columna Modo.
- Ejecuta el comando
gcloud compute networks list
y verifica el campoSUBNET_MODE
.
Required 'compute.instances.create' permission for 'projects/PROJECT_ID/zones/ZONE/instances/test-inst'
Si ves este mensaje, significa que la cuenta con la que accediste no tiene los permisos de IAM necesarios para crear una instancia. Para obtener más información sobre los roles necesarios para crear instancias, consulta Instancias, IAM y permisos con interfaces de red múltiples. Puedes verificar si la política de IAM asociada con tu proyecto te otorga alguno de los siguientes roles:
OWNER
,EDITOR
ocompute.instanceAdmin.v1
. Para crear instancias en VPC compartida, también necesitarás el rolcompute.networkUser
. En el siguiente ejemplo, la cuentaemail2@gmail.com
no tiene suficientes permisos de IAM para crear una instancia. Para obtener instrucciones más detalladas, consulta la guía de IAM Otorga, cambia y revoca el acceso a recursos.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 otorgue una función
OWNER
,EDITOR
ocompute.instanceAdmin.v1
. También necesitarías la funcióncompute.networkUser
si asocias cualquier interfaz con una subred que pertenezca a la 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
Verifica las reglas de firewall para ver si permiten la conectividad a la interfaz secundaria de la VM. Puedes verificarlo si buscas la red adjunta a la interfaz secundaria en las reglas de firewall. Para hacer esto, visita la consola de Google Cloud y haz clic en la red de VPC apropiada o usa el siguiente comando de
gcloud
.gcloud compute firewall-rules list --filter='network:NETWORK_NAME'
Verifica si la conexión a la interfaz secundaria se produce desde una dirección IP o desde el exterior de la red de la interfaz secundaria. Solo puedes conectarte a la IP interna de una interfaz desde el interior de su red. Si necesitas conectarte a esa interfaz desde el exterior de la red, puedes asignarle una dirección IP externa a tu interfaz secundaria.
Verifica si la conexión a la IP interna de la interfaz secundaria proviene del exterior de la subred a la que se adjunta la interfaz secundaria: desde otra subred de la misma red o desde una red de intercambio de tráfico. En Interfaces de red múltiples por instancia, se explica la interacción entre las redes de intercambio de tráfico de VPC y las instancias de VM con varias interfaces. Para llegar a las interfaces secundarias desde fuera de la subred de la interfaz, es posible que debas configurar las rutas en la VM. Consulta el comportamiento de DHCP con varias interfaces de red para obtener más detalles sobre cómo los programas de DHCP establecen rutas predeterminadas 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 con una dirección IP externa
El servidor DHCP programa una ruta predeterminada solo en la interfaz de red principal de la VM. Si deseas conectarte a la interfaz secundaria con una IP externa, hay dos opciones. Si solo necesitas conectarte fuera de la red en la interfaz de red secundaria, puedes configurar una ruta predeterminada en esa interfaz de red. De lo contrario, puedes usar el enfoque descrito en el instructivo Configura el enrutamiento para una interfaz adicional a fin de configurar una tabla de enrutamiento separada en tu VM, mediante la política de enrutamiento basada en el origen.
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, verifica que la VM tenga instalada la versión 20220603.00 de google-guest-agent
o una posterior. Para obtener más información sobre cómo administrar las versiones de google-guest-agent
, consulta Entorno 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 estén configuradas de forma correcta.
Sin embargo, como solución alternativa, puedes crear una secuencia de comandos de inicio a fin de realizar el siguiente cambio de configuración para cada interfaz secundaria.
sudo sysctl -w net.ipv6.conf.INTERFACE_NAME.accept_ra_rt_info_max_plen=128
Reemplaza INTERFACE_NAME
con el nombre de la interfaz, por ejemplo, eth1
o ens5
.
Tengo problemas de conectividad cuando uso una máscara de red que no sea /32
De forma predeterminada, el servidor de metadatos de la instancia solo responde a solicitudes ARP de la puerta de enlace predeterminada.
Para configurar interfaces con una máscara de red distinta de /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 del invitado.
gcloud compute images describe debian-9-multi-ip-subnet
Para obtener más información sobre cómo crear imágenes personalizadas, consulta Crea, borra y da de baja imágenes personalizadas.
No puedo resolver el nombre de host interno de una VM con varias interfaces de red
Cuando se ejecuta una consulta de DNS con un nombre de host interno, se resuelve en la interfaz de red principal (nic0
) de la instancia.
Si nic0
está conectado a una red de VPC diferente a la red de VPC de la instancia que emite la consulta de DNS, la consulta de DNS falla.
El DNS interno se resuelve solo dentro de una red de VPC determinada. Para obtener más información, consulta Resolución de DNS con interfaces de red múltiples.
Soluciona problemas con la consola en serie
A menudo, es una buena idea habilitar la consola en serie en una VM para depurar problemas relacionados con la configuración. Sigue los pasos en Soluciona problemas con la consola en serie para habilitarla y realizar una depuración interactiva.