Crear VMs con varias interfaces de red
En esta página se describe cómo crear instancias de VM con varias interfaces de red.
Antes de empezar, familiarízate con las características de las instancias con varias interfaces de red, tal como se describe en el artículo Descripción general de las interfaces de red múltiples.
Roles de gestión de identidades y accesos
Para crear una instancia con varias interfaces de red, debes tener uno de los siguientes roles:
- Rol de propietario o editor del proyecto
- Rol Administrador de instancias de Compute (v. 1) (
roles/compute.instanceAdmin.v1
)
Crear y eliminar instancias y plantillas de instancias con varias interfaces en un proyecto que no utilice un entorno de VPC compartida: un usuario con el rol Propietario, Editor o Administrador de instancias de Compute (v1) puede crear una instancia con varias interfaces asociadas a redes y subredes de VPC que formen parte del mismo proyecto.
Crear y eliminar instancias y plantillas de instancias con varias interfaces en entornos de VPC compartida:
un usuario con el rol Propietario, Editor o Administrador de instancias de Compute (v1) puede crear una instancia con varias interfaces. Si alguna de las interfaces está conectada a una subred de un proyecto host de VPC compartida, también debes tener el rol Usuario de red de Compute (roles/compute.networkUser
) en todo el proyecto host o en las subredes que necesites usar.
Para obtener más información sobre los permisos, consulta la documentación de gestión de identidades y accesos de Compute Engine.
Crear instancias de máquina virtual con varias interfaces de red
En esta sección se describe cómo crear una instancia con varias interfaces de red, incluidas las NICs virtuales y las NICs dinámicas. Para obtener instrucciones generales sobre cómo crear instancias, consulta Crear y poner en marcha una instancia de VM.
La primera interfaz siempre se crea como nic0
y siempre es la interfaz predeterminada.
Consola
En la Google Cloud consola, ve a la página Crear una instancia.
En el campo Name (Nombre), introduce un nombre para la instancia.
En el campo Región, selecciona una región.
En el campo Zona, selecciona una zona.
En la sección Opciones avanzadas, expande Redes y, a continuación, haz lo siguiente:
En la sección Interfaces de red, despliega la interfaz de red que quieras editar.
En Red y Subred, selecciona la red y la subred que quieras usar.
Si quieres configurar direcciones IPv6 en la interfaz, selecciona una subred que tenga configurado un intervalo de direcciones IPv6. El tipo de acceso IPv6 de la subred determina si la instancia recibe una dirección IPv6 interna o una dirección IPv6 externa.
Seleccione una de las siguientes opciones para el tipo de pila de IP de la interfaz:
- IPv4 (pila única)
- IPv4 e IPv6 (pila dual)
- IPv6 (pila única) (Vista previa)
En las 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 automáticamente una nueva dirección IPv4 efímera
- Efímera (personalizada) para especificar manualmente una nueva dirección IPv4 efímera
- Una dirección IPv4 interna estática reservada de la lista
- Reservar dirección IPv4 interna estática para reservar y asignar una nueva dirección IPv4 interna estática
En Dirección IPv4 externa, seleccione una de las siguientes opciones:
- Efímera para asignar una nueva dirección IPv4 efímera
- Ninguna para no asignar una dirección IPv4 externa
- Una dirección IPv4 estática reservada de la lista
- Reservar dirección IP externa estática para reservar y asignar una nueva dirección IPv4 externa estática
En las interfaces con direcciones IPv6, haga lo siguiente en función del tipo de acceso de la subred conectada:
- En Dirección IPv6 interna principal, seleccione una de las siguientes opciones:
- Efímera (automática) para asignar automáticamente una nueva dirección IPv6 interna efímera
- Efímera (personalizada) para especificar manualmente una nueva dirección IPv6 interna efímera
- Una dirección IPv6 interna estática reservada de la lista
- Reservar dirección IPv6 interna estática para reservar y asignar una nueva dirección IPv6 interna estática
- En Dirección IPv6 externa, selecciona una de las siguientes opciones:
- Efímera (automática) para asignar automáticamente una nueva dirección IPv6 externa efímera
- Efímera (personalizada) para especificar manualmente una nueva dirección IPv6 externa efímera
- Una dirección IPv6 externa estática reservada de la lista
- Reservar dirección IPv6 externa estática para reservar y asignar una nueva dirección IPv6 externa estática
- En Dirección IPv6 interna principal, seleccione una de las siguientes opciones:
Para terminar de modificar la interfaz de red, haz clic en Hecho.
Para añadir otra interfaz, haz clic en Añadir 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 adecuadas, como network
, subnet
, private-network-ip
, address
, external-ipv6-address
y vlan
.
Si incluyes la clave 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 las NICs dinámicas después de crear la instancia.
Para ver ejemplos de cómo crear instancias con varias interfaces, consulta las configuraciones de ejemplo.
Este fragmento solo muestra la marca --network-interface
, uno de los muchos parámetros que puede especificar al crear 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 \ ...
Haz los cambios siguientes:
INSTANCE_NAME
: el nombre de la instancia que se va a crear.ZONE
: 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
: el tipo de pila de la interfaz.El valor predeterminado es
IPV4_ONLY
. EspecificaIPV4_IPV6
para configurar una interfaz de pila dual oIPV6_ONLY
para configurar una interfaz solo IPv6.Valores de las interfaces con direcciones IPv4:
INTERNAL_IPV4_ADDRESS
: la dirección IPv4 interna que quieres que tenga la interfaz en la subred de destino. Omítelo si solo quieres que se asigne una dirección válida.EXTERNAL_IPV4_ADDRESS
: la dirección IPv4 externa de la interfaz.Debes haber reservado previamente una dirección IPv4 externa. Si no quieres que la interfaz tenga una dirección IP externa, especifica "no-address" en lugar de
address=EXTERNAL_IPV4_ADDRESS
. Si quieres que la interfaz reciba una dirección IP externa efímera, especificaaddress=''
.
Valores de las 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, se asigna automáticamente una dirección IPv6 interna de la subred.Google CloudEXTERNAL_IPV6_ADDRESS
: la dirección IPv6 externa que quieres que tenga la interfaz en la subred de destino. Si no se especifica ninguna,Google Cloud asigna automáticamente una dirección IPv6 externa de la subred.
VLAN_ID
: un ID de VLAN. Si especifica un ID de VLAN, la interfaz de red se configurará como NIC dinámica. Debes colocar una NIC dinámica después de su NIC virtual principal en el comando.
API
Usa el método instances.insert
para crear una instancia con varias interfaces de red.
Si se incluye el campo 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 las NICs dinámicas después de crear la instancia.
Consulta los siguientes ejemplos:
Para crear una instancia que solo tenga direcciones IPv4 internas, sigue estos pasos:
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... }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto que contiene la instancia.ZONE
: la zona que contiene la instancia.IPV4_ADDRESS_A
yIPV4_ADDRESS_B
: las direcciones IPv4 internas que quieras 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 especifica un ID de VLAN, la interfaz de red se configurará como NIC dinámica. Debes colocar una NIC dinámica después de su NIC virtual principal en la solicitud.
Para crear una instancia con direcciones IPv4 e IPv6 internas, sigue estos pasos:
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... }
Haz los cambios siguientes:
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, se asigna automáticamente una dirección IPv6 interna de la subred.Google CloudVLAN_ID
: un ID de VLAN. Si especifica un ID de VLAN, la interfaz de red se configurará como NIC dinámica. Debes colocar una NIC dinámica después de su NIC virtual principal.
Para crear una instancia con solo direcciones IPv6 internas (vista previa), 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... }
Haz los cambios siguientes:
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 se 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.
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Configuraciones de ejemplo
En las siguientes secciones se muestra cómo crear instancias con varias interfaces.
Configurar varias vNICs y NICs dinámicas
El siguiente comando de ejemplo crea una instancia con las siguientes interfaces de red:- Una vNIC llamada
nic0
que es la principal de las siguientes:- Una interfaz de red dinámica llamada
nic0.2
- Una interfaz de red dinámica llamada
- Una vNIC llamada
nic1
que es la principal de las siguientes:- Una interfaz de red dinámica llamada
nic1.4
- Una interfaz de red dinámica llamada
nic1.5
- Una interfaz de red 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 NICs dinámicas, también debes configurar el SO invitado para las NICs dinámicas.
Configurar varias interfaces de red solo con direcciones IPv4
El siguiente comando de ejemplo 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
Las interfaces se crean de la siguiente manera:
nic0
se crea con la configuración predeterminada. La interfaz está conectada a una subred de la red VPC predeterminada, con una dirección IP interna asignada automáticamente y una dirección IP externa efímera.nic1
está conectada a la subredsubnet-a
de la rednet1
, con una dirección IPv4 interna10.10.10.2
y una dirección IPv4 externa estáticaEXTERNAL_IPV4_ADDRESS
.nic2
está conectada a la subredsubnet-b
de la rednet2
, con una dirección IPv4 interna10.10.20.2
y sin dirección IP externa.
Para ver una descripción completa del comando gcloud compute instances create
y de la marca --network-interface
, consulta la documentación del comando.
Puede usar la dirección IP de la interfaz de red que ha añadido para configurar el reenvío de DNS. Para obtener más información sobre cómo configurar zonas de reenvío de Cloud DNS, consulte el artículo Zonas de reenvío.
Configurar varias interfaces de red con direcciones IPv4 e IPv6
El siguiente comando de ejemplo crea una instancia de pila dual 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
Las interfaces se crean de la siguiente manera:
nic0
está conectada a la subredint-subnet
de la reddual-int
, con una dirección IPv4 interna efímera y una dirección IPv6 interna efímera.nic1
está conectada a la subredext-subnet
de la reddual-ext
, con una dirección IPv4 interna efímera y una dirección IPv6 externa efímera.
Configurar varias interfaces de red solo con direcciones IPv6
El siguiente comando de ejemplo crea una instancia solo con IPv6 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
Las interfaces se crean de la siguiente manera:
nic0
está conectada a la subredint-subnet-a
de la redipv6-only-int-a
, con una dirección IPv6 interna efímera asignada automáticamente.nic1
está conectada a la subredint-subnet-b
de la redipv6-only-int-b
, con una dirección IPv6 interna efímera personalizadafd20:db8:0:0:1:0::/96
.nic2
está conectada a la subredext-subnet
de la redipv6-only-ext
, con una dirección IPv6 externa estática,EXTERNAL_IPV6_ADDRESS
.
Configurar varias interfaces de red para grupos de instancias
Puedes usar instancias con varias interfaces de red en grupos de instancias no gestionados y gestionados.
En el caso de los grupos de instancias sin gestionar,
crea cada instancia individualmente
y asegúrate de que la nic0
interfaz de red de cada instancia esté conectada a la misma
subred. A continuación, añade las instancias al grupo de instancias sin gestionar.
Para configurar varias interfaces de red para grupos de instancias gestionados, debes especificar la configuración de red de cada interfaz en la plantilla de instancia. Para ello, define la marca --network-interface
una vez por cada interfaz.
En el siguiente ejemplo se crea una plantilla de instancia 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
Como los nombres de las subredes de cada región de un proyecto deben ser únicos, al especificar las subredes por su nombre, se asocia implícitamente cada interfaz con una red de VPC. Cada interfaz debe usar una subred que esté 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
de la marca --network-interface
indica que la interfaz se ha configurado sin una dirección IPv4 externa. La dirección IP interna
procede de la subred que utiliza la interfaz. Para obtener información completa sobre las marcas y la sintaxis, consulta la marca --network-interface
del comando instance-templates create
.