El NIC virtual de Google (gVNIC) es una interfaz de red virtual diseñada específicamente para Compute Engine. gVNIC es una alternativa al controlador Ethernet basado en virtIO.
gVNIC es la interfaz de red de nueva generación que sustituye a VirtIO. Reemplaza a VirtIO-Net como la única interfaz de red compatible con Compute Engine para todos los tipos de máquinas nuevos (de tercera generación en adelante). Las series de máquinas y las funciones de red más recientes requieren gVNIC en lugar de VirtIO. Consumir gVNIC como interfaz de E/moderna con las VMs de Compute Engine ofrece las siguientes ventajas:
- Ofrece un mejor rendimiento.
- Mejora la coherencia al reducir los problemas derivados de compartir recursos con otras organizaciones.
- Introduce nuevas funciones de red que van más allá de lo que VirtIO puede hacer.
Antes de empezar
- Si usas gVNIC con imágenes de Windows Server o de cliente de Windows, asegúrate de que el controlador gVNIC use la versión
1.0.0@45
o una posterior del paquete GooGet. -
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Cuándo usar gVNIC
gVNIC es compatible y se recomienda para todas las familias y generaciones de máquinas. Algunas generaciones solo admiten gVNIC. Otros requieren el uso de gVNIC en condiciones especiales. Para identificar la generación de tu serie de máquinas, consulta la terminología de Compute Engine.
El uso de gVNIC por generación de series de máquinas es el siguiente:
- Las series de máquinas de tercera generación y posteriores, excepto las instancias Bare Metal, solo admiten gVNIC para la interfaz de red virtual.
Las series de máquinas de primera o segunda generación deben usar gVNIC para la interfaz de red virtual de las instancias si cumplen alguna de las siguientes condiciones:
- La instancia se ejecuta en la plataforma de CPU Arm.
- La instancia es una instancia de VM confidencial.
La instancia debe alcanzar velocidades de red de entre 50 y 100 Gbps. Esto se aplica a las instancias que cumplen los siguientes criterios:
- Instancias que admiten el rendimiento de red por VM de nivel 1
- Instancias A2, G2 y N1 que admitan estos ancho de banda de red más altos
Precios
Para ver los precios más recientes de la red de nivel 1, consulta la página de precios de las instancias de máquinas virtuales.
Para ver una lista de métodos adicionales que se pueden usar para encontrar información sobre los precios, consulta la página Precios de Compute Engine.
Asistencia para sistemas operativos
En Compute Engine, puedes usar gVNIC en cualquier imagen de sistema operativo público compatible. Puedes instalar manualmente el controlador gVNIC en los siguientes casos:
- La imagen del SO no incluye el controlador gVNIC
- La imagen del SO no tiene la versión más reciente del controlador gVNIC
Para ver los sistemas operativos compatibles, consulta la pestaña Interfaces de un sistema operativo. También puedes consultar la pestaña Funciones de redes para ver si se admiten funciones de redes.
Uso en sistemas operativos no compatibles
En el caso de las imágenes de SO que admiten gVNIC, pero no incluyen la versión más reciente del controlador gVNIC, puedes descargar la versión más reciente del controlador desde GitHub.
Puedes configurar e instalar manualmente la versión más reciente del controlador gVNIC en máquinas virtuales Linux o Windows.
Después de actualizar el sistema operativo de tu VM para usar gVNIC, crea una imagen de SO personalizada basada en esa imagen de SO. Después, puedes usar la imagen de SO personalizada para crear más VMs que usen gVNIC en ese sistema operativo. Para obtener más información sobre cómo crear VMs con una imagen de SO personalizada, consulta el artículo Crear una imagen de SO personalizada compatible con gVNIC de esta página.
Sigue los procedimientos que se indican a continuación para configurar e instalar manualmente la versión más reciente del controlador gVNIC.
- En el caso de las VMs Linux, consulta Controlador del kernel de Linux Ethernet virtual de Compute Engine.
- En el caso de las máquinas virtuales que ejecutan FreeBSD, consulta el controlador de Ethernet virtual de FreeBSD de Compute Engine.
- En el caso de las VMs Windows, consulta Controlador de Windows para Ethernet virtual de Compute Engine.
Información general sobre el uso de gVNIC con VMs de Compute Engine
Para crear una VM que use gVNIC, sigue estos pasos:
- Elige una imagen de SO pública que admita gVNIC o crea una imagen de SO personalizada etiquetada para usar gVNIC.
- Crea una VM con la imagen de SO pública o personalizada. Durante la creación de la VM, configura la interfaz de red para que use gVNIC.
- Comprueba que gVNIC esté habilitado.
Si tienes algún problema, consulta el artículo Solucionar problemas con la NIC virtual de Google.
Crear una imagen de SO personalizada que admita gVNIC
Puedes crear la imagen del SO mediante Google Cloud CLI o REST. Para obtener información detallada y consultar las prácticas recomendadas para crear imágenes de SO personalizadas, consulta el artículo Crear imágenes de SO personalizadas.
gcloud
Selecciona una imagen de SO o una familia de imágenes que admita gVNIC. Para obtener más información, consulta los detalles del sistema operativo.
Con la imagen del SO o la familia de imágenes del SO seleccionada en el paso anterior, crea una imagen del SO personalizada y etiquétala con
GVNIC
. Para crear la imagen del SO personalizado, usa el comandogcloud compute images create
. Por ejemplo, el siguiente comando crea una imagen de SO personalizada que admite gVNIC y que se basa en una imagen de SO específica.gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=GVNIC
Haz los cambios siguientes:
IMAGE_NAME
: el nombre de la imagen que quieras crearSOURCE_IMAGE
: una imagen de SO específica que admite gVNIC. Por ejemplo:rocky-linux-8-optimized-gcp-v20220719
Si quieres usar la imagen del SO más reciente en una familia de imágenes, sustituye la marca
--source-image
por la marca--source-image-family
y asigna a esta última el valor de una familia de imágenes que admita gVNIC. Por ejemplo:--source-image-family=rocky-linux-8-optimized-gcp
.SOURCE_IMAGE_PROJECT
: nombre del proyecto que contiene la imagen o la familia de imágenes del SO de origen.
Ejemplo
Para crear una imagen de Rocky Linux 8 Optimized for Google Cloud OS con la imagen de SO más reciente de la familia de imágenes
rocky-linux-8-optimized-gcp
de Compute Engine, ejecuta el siguiente comando:gcloud compute images create IMAGE_NAME \ --source-image-family=rocky-linux-8-optimized-gcp \ --source-image-project=rocky-linux-cloud \ --guest-os-features=GVNIC
Para obtener más información sobre cuándo usar familias de imágenes, consulta las prácticas recomendadas para familias de imágenes.
REST
Selecciona una imagen de SO o una familia de imágenes que admita gVNIC. Para obtener más información, consulta los detalles del sistema operativo.
Con la imagen del SO o la familia de imágenes del SO seleccionada en el paso anterior, crea una imagen del SO y etiquétala con
GVNIC
. Para crear la imagen del SO, usa el métodoimages.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name":"IMAGE_NAME", "sourceImage":"SOURCE_IMAGE_URI", "guestOsFeatures":[ { "type":"GVNIC" } ] }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que se creará la nueva imagenIMAGE_NAME
: nombre de la imagen personalizada.SOURCE_IMAGE_URI
: el URI de la imagen de SO o de la familia de imágenes específica que quieras usarPor ejemplo:
- Imagen de SO específica:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
- Familia de imágenes:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
Cuando especificas una familia de imágenes, Compute Engine crea una VM a partir de la imagen de SO más reciente y no obsoleta de esa familia. Para obtener más información sobre cuándo usar familias de imágenes, consulta las prácticas recomendadas para familias de imágenes.
- Imagen de SO específica:
Crear una VM con compatibilidad con gVNIC
Puedes crear una máquina virtual con una de las imágenes de SO públicas admitidas o con una imagen de SO personalizada que hayas creado siguiendo los pasos que se indican en Crear una imagen de SO personalizada compatible con gVNIC.
También puedes habilitar DPDK en la VM para disfrutar de un procesamiento de paquetes de red más rápido, una latencia baja y un rendimiento constante.
En las VMs que admiten varias interfaces de red (NICs), puedes tener NICs de diferentes tipos conectadas a la VM, ya que la compatibilidad con las interfaces se configura por NIC. Aunque se admite, no recomendamos esta configuración. En las máquinas virtuales que admiten varias NICs, asegúrate de especificar
nic-type=GVNIC
para cada interfaz de red al crear la máquina virtual.Crear una VM con una imagen de SO pública
Para crear una máquina virtual con una imagen de SO pública que admita gVNIC, sigue las instrucciones de Crear máquinas virtuales y contenedores con una configuración de ancho de banda alto.
Crear una VM con una imagen de SO personalizada
Si no usas una imagen de SO pública que admita gVNIC, primero debes crear una imagen de SO personalizada que admita gVNIC. A continuación, usa esa imagen de SO personalizada para crear una VM con la Google Cloud consola, la CLI de Google Cloud o REST.
Consola
En la Google Cloud consola, ve a la página Crear una instancia.
Introduce el nombre de la instancia de VM.
Selecciona la zona en la que quieres crear la VM.
En la sección Disco de arranque, haz clic en Cambiar.
En el panel Disco de arranque, en la pestaña Imágenes personalizadas, haz lo siguiente:
- Elige el proyecto de origen que contiene la imagen del SO que creaste anteriormente.
- Selecciona la imagen en el menú desplegable Imagen.
- Haz clic en Seleccionar.
Para definir gVNIC como interfaz de red, despliega la sección Opciones avanzadas y haz lo siguiente:
- Despliega la sección Redes.
- En Tarjeta de interfaz de red, selecciona
gVNIC
.
Haz las personalizaciones adicionales de la VM que necesites.
Haz clic en Crear para crear la instancia de VM.
gcloud
Crea la VM con el comando
gcloud compute instances create
. En el disco de arranque, especifica la imagen de SO personalizada que has creado anteriormente. En la interfaz de red, asigna el valorGVNIC
a la marcanic-type
.gcloud compute instances create VM_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --image=IMAGE_NAME \ --image-project=YOUR_IMAGE_PROJECT \ --network-interface=nic-type=GVNIC
Haz los cambios siguientes:
VM_NAME
: nombre de la nueva VM.ZONE
: la zona en la que se creará la VM.MACHINE_TYPE
: el tipo de máquina que se usará al crear la instancia de VM. Si no especificas un tipo de máquina, el valor predeterminado esn1-standard-1
.IMAGE_NAME
: la imagen del SO que se ha creado en el paso anterior.YOUR_IMAGE_PROJECT
: el nombre del proyecto que contiene la imagen del SO.
Opcional: Comprueba que Compute Engine ha creado la VM y que el valor de
nicType
esGVNIC
.gcloud compute instances describe VM_NAME \ --zone=ZONE
Haz los cambios siguientes:
VM_NAME
: el nombre de la VM.ZONE
: la zona en la que has creado la VM.
Ejemplo
Para crear una VM de Rocky Linux 8 con un tipo de máquina
n1-standard-1
en la zonaus-west1-b
mediante una imagen de SO llamadamy-gvnic-rocky8
que se encuentra en el proyectomy-project-12345
, ejecuta el siguiente comando:gcloud compute instances create my-rocky-linux-vm \ --zone=us-west1-b \ --image=my-gvnic-rocky8 \ --image-project=my-project-12345 \ --network-interface=nic-type=GVNIC
Cosas que debes tener en cuenta
La marca
--network-interface
tiene marcas de nivel inferior, como las siguientes:--address
: Asignar una dirección IP a la VM--network
: la red a la que pertenecerá la interfaz.--network-tier
: el nivel de red de la interfaz--subnet
: la subred a la que pertenecerá la interfaz. Si también se especifica--network
, la subred debe formar parte de la red especificada.--private-network-ip
: especifica la IP de RFC 1918 que se asignará a la VM.
Para ver una lista completa, consulta la marca
--network-interface
.
REST
Crea la VM con el método
instances.insert
.- En el disco de arranque, especifica la imagen de SO personalizada que has creado anteriormente.
- En la interfaz de red, asigna el valor
GVNIC
al camponicType
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name":"VM_NAME", "networkInterfaces":[ { "network":"NETWORK", "nicType":"GVNIC", "subnet":"SUBNET_NAME" } ], "disks":[ { "initializeParams":{ "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME" }, "boot":true } ] }
Haz los cambios siguientes:
PROJECT_ID
: ID del proyecto en el que se va a crear la VM.ZONE
: la zona en la que se creará la VM.VM_NAME
: nombre de la nueva VM.NETWORK
: URL del recurso de red de esta máquina virtual. Si no se especifica la red ni la subred, se usa la red predeterminadaglobal/networks/default
.SUBNET_NAME
: nombre de la subred. La red se deduce de la subred especificada. Este campo es opcional.YOUR_IMAGE_PROJECT
: el nombre del proyecto que contiene la imagen del SO.IMAGE_NAME
: la imagen del SO que se ha creado en el paso anterior.
Verificar que gVNIC esté habilitado
Linux
Puedes usar la herramienta
lshw
para extraer información detallada sobre la configuración de hardware de la máquina virtual.Para instalar la herramienta
lshw
en tu instancia de VM Linux, abre una conexión SSH a la VM y, a continuación, ejecuta el siguiente comando:sudo apt-get install lshw -y
Para determinar si la VM usa la interfaz de red gVNIC, ejecuta el siguiente comando:
sudo lshw -class network
La salida es similar a la siguiente:
*-network description: Ethernet interface product: Compute Engine Virtual Ethernet [gVNIC] vendor: Google, Inc. physical id: 3 bus info: pci@0000:00:03.0 logical name: ens3 version: 00 serial: 42:01:0a:80:00:6f width: 32 bits clock: 33MHz capabilities: msix bus_master cap_list ethernet physical configuration: autonegotiation=off broadcast=yes driver=gve driverversion=1.0.0 duplex=full ip=10.128.0.111 latency=0 link=yes multicast=yes port=twisted pair resources: irq:11 memory:c0203000-c0203fff memory:c0200000-c02000ff memory:c0100000-c01fffff
Windows
- En tu instancia de VM de Windows, abre el Administrador de dispositivos.
- En Adaptadores de red, deberías ver lo siguiente:
"Google Ethernet Adapter"
Solución de problemas
Para solucionar problemas de gVNIC, consulta el artículo Solucionar problemas de NIC virtual de Google.
Siguientes pasos
- Conéctate a tu instancia.
- Añade discos persistentes a tu nueva instancia.
- Configurar el rendimiento de la red de nivel 1 por máquina virtual.
- Cambia el ajuste de MTU de una red de VPC.
- Consulta información sobre los marcos jumbo.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-10 (UTC).
-