Crea VMs con interfaces de red múltiples
En esta página, se describe cómo crear instancias de VM con interfaces de red múltiples.
Antes de comenzar, asegúrate de estar familiarizado con las características de las instancias con varias interfaces de red, como se describe en la Descripción general de las interfaces de red múltiples.
Funciones de IAM
Para crear una instancia con interfaces de red múltiples, debes contar con una de las siguientes funciones:
- El rol de propietario o editor del proyecto
- Rol de administrador de instancias de Compute (
roles/compute.instanceAdmin.v1
)
Crea y borra instancias y plantillas de instancias con varias interfaces en un proyecto que no usa un entorno de VPC compartida: Un usuario con el rol de Propietario, Editor o Administrador de instancias de Compute (v1) puede crear una instancia con varias interfaces asociadas con redes y subredes de VPC que forman parte de ese mismo proyecto.
Crea y borra instancias y plantillas de instancias con varias interfaces en los entornos de VPC compartida: Un usuario con el rol de Propietario, Editor o Administrador de instancias de Compute (v1) puede crear una instancia con varias interfaces. Si alguna de las interfaces está adjunta a una subred en un proyecto host de VPC compartida, también debes tener el rol de usuario de la red de Compute (roles/compute.networkUser
) para todo el proyecto host o para las subredes que necesites usar.
Para obtener más información sobre los permisos, consulta la documentación de IAM de Compute Engine.
Crea instancias de VM con interfaces de red múltiples
En esta sección, se describe cómo crear una instancia con varias interfaces de red, incluidas las vNIC y las NIC dinámicas. Para obtener instrucciones generales sobre cómo crear instancias, consulta Crea e inicia una instancia de VM.
La primera interfaz siempre se crea como nic0
y siempre es la interfaz predeterminada.
Console
En la consola de Google Cloud , ve a la página Crear una instancia.
En el campo Nombre, ingresa un nombre para el instancia.
En el campo Región, selecciona una región.
En el campo Zona, selecciona una zona.
En la sección Opciones avanzadas, expande Herramientas de redes y, luego, haz lo siguiente:
En la sección Interfaces de red, expande una interfaz de red para editarla.
En Red y Subred, selecciona la red y la subred que deseas usar.
Si deseas configurar direcciones IPv6 en la interfaz, selecciona una subred que tenga configurado un rango de direcciones IPv6. El tipo de acceso IPv6 de la subred determina si la instancia recibe una dirección IPv6 interna o externa.
Selecciona una de las siguientes opciones para el tipo de pila de IP de la interfaz:
- IPv4 (pila única)
- IPv4 e IPv6 (pila doble)
- IPv6 (pila única) (Versión preliminar)
Para interfaces con direcciones IPv4, haz lo siguiente:
En Dirección IPv4 interna principal, selecciona una de las siguientes opciones:
- Efímera (automática) para asignar una dirección IPv4 efímera nueva automáticamente
- Efímera (personalizada) para especificar manualmente una nueva dirección IPv4 efímera
- Una dirección IPv4 reservada estática interna de la lista
- Reservar dirección IPv4 interna estática para reservar y asignar una dirección IPv4 interna estática nueva
En Dirección IPv4 externa, selecciona una de las siguientes opciones:
- Efímera para asignar una dirección IPv4 efímera nueva
- Ninguna para no asignar una dirección IPv4 externa
- Una dirección IPv4 reservada estática de la lista
- Reservar dirección IP externa estática para reservar y asignar una dirección IPv4 externa estática nueva
Para las interfaces con direcciones IPv6, haz lo siguiente, según el tipo de acceso de la subred conectada:
- En Dirección IPv6 interna principal, selecciona una de las siguientes opciones:
- Efímera (automática) para asignar una nueva dirección IPv6 interna efímera de forma automática
- Efímera (personalizada) para especificar manualmente una nueva dirección IPv6 interna efímera
- Una dirección IPv6 reservada estática interna de la lista
- Reservar dirección IPv6 interna estática para reservar y asignar una dirección IPv6 interna estática nueva
- En Dirección IPv6 externa, selecciona una de las siguientes opciones:
- Asignación automática para asignar una dirección IPv6 externa efímera nueva automáticamente
- Una dirección IPv6 externa estática reservada de la lista
- Reservar dirección IPv6 externa estática para reservar y asignar una dirección IPv6 externa estática nueva
- En Dirección IPv6 interna principal, selecciona una de las siguientes opciones:
Para terminar de modificar la interfaz de red, haz clic en Listo.
Para agregar otra interfaz, haz clic en Agregar interfaz de red.
Continúa con el proceso de creación de la instancia.
Haz clic en Crear.
gcloud
Para crear interfaces de red en una instancia nueva, usa el comando gcloud compute instances create
.
Incluye la marca --network-interface
para cada interfaz, seguida de las claves de red correspondientes, como network
, subnet
, private-network-ip
, address
, external-ipv6-address
y vlan
.
Si incluyes la clave vlan
, se crea una NIC dinámica.
Si creas una NIC dinámica, también debes seguir los pasos para configurar el SO invitado para NICs dinámicas después de crear la instancia.
Para ver ejemplos de cómo crear instancias con varias interfaces, consulta Ejemplos de configuración.
En este fragmento, solo se muestra la marca --network-interface
, que es uno de los parámetros posibles que puedes especificar cuando creas una instancia.
gcloud compute instances create INSTANCE_NAME \ --zone ZONE \ --network-interface \ network=NETWORK_A,subnet=SUBNET_A, \ stack-type=STACK_TYPE, \ private-network-ip=INTERNAL_IPV4_ADDRESS, \ address=EXTERNAL_IPV4_ADDRESS | no-address, \ internal-ipv6-address=INTERNAL_IPV6_ADDRESS \ ... --network-interface \ network=NETWORK_B,subnet=SUBNET_B, \ stack-type=STACK_TYPE, \ external-ipv6-address=EXTERNAL_IPV6_ADDRESS, \ external-ipv6-prefix-length=96, \ ipv6-network-tier=PREMIUM, \ vlan=VLAN_ID \ ...
Reemplaza lo siguiente:
INSTANCE_NAME
: Es el nombre de la instancia que se creará.ZONE
: Es la zona en la que se crea la instancia.NETWORK_A
,NETWORK_B
: La red a la que se adjunta la interfaz.SUBNET_A
,SUBNET_B
: La subred a la que se adjunta la interfaz.STACK_TYPE
: Es el tipo de pila para la interfaz.El valor predeterminado es
IPV4_ONLY
. EspecificaIPV4_IPV6
para configurar una interfaz de pila doble oIPV6_ONLY
para configurar una interfaz solo IPv6 (versión preliminar).Valores para interfaces con direcciones IPv4:
INTERNAL_IPV4_ADDRESS
: la dirección IPv4 interna que quieres que tenga la interfaz en la subred de destino. Omite si deseas asignar cualquier dirección válida.EXTERNAL_IPV4_ADDRESS
: Es la dirección IPv4 externa de la interfaz.Debes haber reservado con anterioridad una dirección IPv4 externa. Si no deseas que la interfaz tenga una dirección IP externa, especifica “no-address” en lugar de
address=EXTERNAL_IPV4_ADDRESS
. Si deseas que la interfaz reciba una dirección IP externa efímera, especificaaddress=''
.
Valores para interfaces con direcciones IPv6:
INTERNAL_IPV6_ADDRESS
: la dirección IPv6 interna que quieres que tenga la interfaz en la subred de destino. Si no se especifica,Google Cloud asigna automáticamente una dirección IPv6 interna de la subred.EXTERNAL_IPV6_ADDRESS
: la dirección IPv6 externa que quieres que tenga la interfaz en la subred de destino. Debes haber reservado con anterioridad una dirección IPv6 externa. Si no se especifica,Google Cloud asigna automáticamente una dirección IPv6 externa de la subred.
VLAN_ID
: Un ID de VLAN. Si especificas un ID de VLAN, se configura la interfaz de red como una NIC dinámica. Debes colocar una NIC dinámica después de su vNIC superior en el comando.
API
Usa el método instances.insert
para crear una instancia con varias interfaces de red.
Si incluyes el campo vlan
, se creará una NIC dinámica.
Si creas una NIC dinámica, también debes seguir los pasos para configurar el SO invitado para NICs dinámicas después de crear la instancia.
Consulta los ejemplos siguientes:
Para crear una instancia con solo direcciones IPv4 internas, haz lo siguiente:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "networkIP": "IPV4_ADDRESS_A", "subnetwork": "regions/REGION/subnetworks/SUBNET_A" }, { "networkIP": "IPV4_ADDRESS_B", "subnetwork": "regions/REGION/subnetworks/SUBNET_B" "vlan": "VLAN_ID" }, for each interface, specify a network... ], other instance settings... }
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto que contiene la instancia.ZONE
: la zona que contiene la instancia.IPV4_ADDRESS_A
,IPV4_ADDRESS_B
: Son las direcciones IPv4 internas que deseas asignar a cada interfaz de red.REGION
: la región que contiene la instancia.SUBNET_A, SUBNET_B
: Las subredes en las que se encuentra cada interfaz de red.VLAN_ID
: Un ID de VLAN. Si especificas un ID de VLAN, se configura la interfaz de red como una NIC dinámica. Debes colocar una NIC dinámica después de la vNIC superior en la solicitud.
Para crear una instancia con direcciones IPv4 e IPv6 internas, haz lo siguiente:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET_A" "ipv6Address": "IPV6_ADDRESS_A", "internalIpv6PrefixLength": 96, "stackType": IPV4_IPV6, "ipv6AccessType": INTERNAL }, { "subnetwork": "regions/REGION/subnetworks/SUBNET_B" "ipv6Address": "IPV6_ADDRESS_B", "internalIpv6PrefixLength": 96, "stackType": IPV4_IPV6, "ipv6AccessType": INTERNAL "vlan": "VLAN_ID" }, for each interface, specify a network... ], other instance settings... }
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto que contiene la instancia.ZONE
: la zona que contiene la instancia.REGION
: la región que contiene la instancia.SUBNET_A, SUBNET_B
: Las subredes en las que se encuentra cada interfaz de red.IPV6_ADDRESS_A, IPV6_ADDRESS_B
: la dirección IPv6 interna que quieres que tenga la interfaz en la subred de destino. Si no se especifica,Google Cloud asigna automáticamente una dirección IPv6 interna de la subred.VLAN_ID
: Un ID de VLAN. Si especificas un ID de VLAN, se configura la interfaz de red como una NIC dinámica. Debes colocar una NIC dinámica después de su vNIC superior.
Para crear una instancia con solo direcciones IPv6 internas (Versión preliminar), haz lo siguiente:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET" "ipv6Address": "IPV6_ADDRESS", "internalIpv6PrefixLength": 96, "stackType": IPV6_ONLY, "ipv6AccessType": INTERNAL }, for each interface, specify a network... ], other instance settings... }
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto que contiene la instancia.ZONE
: la zona que contiene la instancia.REGION
: la región que contiene la instancia.SUBNET
: la subred en la que se encuentra la interfaz de red.IPV6_ADDRESS
: la dirección IPv6 interna que quieres que tenga la interfaz en la subred de destino. Si no se especifica,Google Cloud asigna automáticamente una dirección IPv6 interna de la subred.
Terraform
Puedes usar un recurso de Terraform para crear una instancia con varias interfaces de red.
Los argumentos de Terraform tienen valores de ejemplo que puedes cambiar.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Configuración de ejemplo
En las siguientes secciones, se muestra cómo crear instancias con varias interfaces.
Configura varias vNIC y NIC dinámicas
Con el siguiente comando de muestra, se crea una instancia con las siguientes interfaces de red:- Una vNIC llamada
nic0
que es el elemento superior de lo siguiente:- Una NIC dinámica llamada
nic0.2
- Una NIC dinámica llamada
- Una vNIC llamada
nic1
que es el elemento superior de lo siguiente:- Una NIC dinámica llamada
nic1.4
- Una NIC dinámica llamada
nic1.5
- Una NIC dinámica llamada
gcloud beta compute instances create vm1 \ --zone zone-a \ --network-interface=network=network-a,subnet=subnet-a \ --network-interface=network=network-b,subnet=subnet-b,vlan=2 \ --network-interface=network=network-c,subnet=subnet-c \ --network-interface=network=network-d,subnet=subnet-d,vlan=4 \ --network-interface=network=network-e,subnet=subnet-e,vlan=5
Después de crear una instancia con NIC dinámicas, también debes configurar el SO invitado para las NIC dinámicas.
Configura varias interfaces de red con solo direcciones IPv4
Con el siguiente comando de muestra, se crea una instancia con tres interfaces de red.
gcloud compute instances create vm1 --machine-type=n1-standard-4 \ --network-interface '' \ --network-interface network=net1,subnet=subnet-a,private-network-ip=10.10.10.2,address=EXTERNAL_IPV4_ADDRESS \ --network-interface network=net2,subnet=subnet-b,private-network-ip=10.10.20.2,no-address
A continuación, se detalla cómo se crean las interfaces:
nic0
se crea con la configuración predeterminada. La interfaz se adjunta a una subred en la red de VPC predeterminada, con una dirección IP interna asignada de forma automática y una dirección IP externa efímera.nic1
se conecta a la subredsubnet-a
en la rednet1
, con una dirección IPv4 interna de10.10.10.2
y una dirección IPv4 externa estática,EXTERNAL_IPV4_ADDRESS
.nic2
se conecta a la subredsubnet-b
en la rednet2
, con una dirección IPv4 interna de10.10.20.2
y sin una dirección IP externa.
Para obtener una descripción completa del comando gcloud compute instances create
y la marca --network-interface
, lee la documentación del comando.
Puedes usar la dirección IP de la interfaz de red que agregaste para configurar el reenvío de DNS. Para obtener más información sobre cómo configurar las zonas de reenvío de Cloud DNS, consulta Zonas de reenvío.
Configura varias interfaces de red con direcciones IPv4 e IPv6
Con el siguiente comando de muestra, se crea una instancia de pila doble con dos interfaces de red.
gcloud compute instances create vm1 \ --network-interface network=dual-int,subnet=int-subnet,stack-type=IPV4_IPV6 \ --network-interface network=dual-ext,subnet=ext-subnet,stack-type=IPV4_IPV6,ipv6-network-tier=PREMIUM \ --machine-type=n1-standard-4 --zone=ZONE_A
A continuación, se detalla cómo se crean las interfaces:
nic0
se conecta a la subredint-subnet
en la reddual-int
, con una dirección IPv4 interna efímera y una dirección IPv6 interna efímera.nic1
se conecta a la subredext-subnet
en la reddual-ext
, con una dirección IPv4 interna efímera y una dirección IPv6 externa efímera.
Configura varias interfaces de red con solo direcciones IPv6
Con el siguiente comando de muestra, se crea una instancia solo IPv6 (versión preliminar) con tres interfaces de red.
gcloud compute instances create vm1 \ --network-interface network=ipv6-only-int-a,subnet=int-subnet-a,stack-type=IPV6_ONLY \ --network-interface network=ipv6-only-int-b,subnet=int-subnet-b,stack-type=IPV6_ONLY,internal-ipv6-address=fd20:db8:0:0:1:0:: \ --network-interface network=ipv6-only-ext,subnet=ext-subnet,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM,external-ipv6-address=EXTERNAL_IPV6_ADDRESS \ --machine-type=n1-standard-4 --zone=us-west2-a
A continuación, se detalla cómo se crean las interfaces:
nic0
se conecta a la subredint-subnet-a
en la redipv6-only-int-a
, con una dirección IPv6 interna efímera asignada automáticamente.nic1
se conecta a la subredint-subnet-b
en la redipv6-only-int-b
, con una dirección IPv6 interna efímera personalizadafd20:db8:0:0:1:0::/96
.nic2
se conecta a la subredext-subnet
en la redipv6-only-ext
, con una dirección IPv6 externa estática,EXTERNAL_IPV6_ADDRESS
.
Configura interfaces de red múltiples para grupos de instancias
Puedes usar instancias con interfaces de red múltiples en grupos de instancias no administrados y grupos de instancias administrados.
En los grupos de instancias no administrados, crea cada instancia de forma individual y asegúrate de que la interfaz de red nic0
para cada instancia esté conectada a la misma subred. Luego, agrega las instancias al grupo de instancias no administrado.
A fin de configurar varias interfaces de red para grupos de instancias administrados, debes especificar la configuración de red de cada interfaz en la plantilla de instancias mediante la configuración de la marca --network-interface
una vez para cada interfaz.
En el siguiente ejemplo, se crea una plantilla de instancias con tres interfaces de red:
gcloud compute instance-templates create template-1 \ --network-interface subnet=net0-subnet-a \ --network-interface subnet=net1-subnet-b,no-address \ --network-interface subnet=net2-subnet-c,no-address \ --region REGION_A
Debido a que los nombres de subred en cada región de un proyecto deben ser únicos, la especificación de las subredes por nombre asocia de forma implícita cada interfaz con una red de VPC. Cada interfaz debe usar una subred que se encuentre en una red de VPC única:
nic0
usa la subrednet0-subnet-a
.nic1
usa la subrednet1-subnet-b
.nic2
usa la subrednet2-subnet-c
.
La opción no-address
en la marca --network-interface
indica que la interfaz está configurada sin una dirección IPv4 externa. La dirección IP interna proviene de la subred que usa la interfaz. Para obtener información completa sobre las marcas y la sintaxis, consulta la marca --network-interface
del comando instance-templates create
.