Criar VMs com várias interfaces de rede
Esta página descreve como criar instâncias de VM com várias interfaces de rede.
Antes de começar, confira se você conhece as características de instâncias com várias interfaces de rede, conforme descrito na Visão geral de várias interfaces de rede.
Papéis IAM
Para criar uma instância com várias interfaces de rede, você precisa ter um dos seguintes papéis:
- Papel de editor ou proprietário de projeto
- Papel Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
)
Como criar e excluir instâncias e modelos de instância com várias interfaces em um projeto que não usa um ambiente de VPC compartilhada:um usuário com o papel de proprietário, editor ou Administrador da instância do Compute (v1) pode criar uma instância com várias interfaces associadas a redes e sub-redes da VPC que fazem parte do mesmo projeto.
Como criar e excluir instâncias e modelos de instância com várias
interfaces em ambientes de VPC compartilhada:um usuário com o papel de proprietário, editor ou Administrador da instância do Compute (v1) pode criar uma instância com várias interfaces. Se alguma das interfaces estiver
anexada a uma sub-rede em um projeto host de VPC compartilhada, você também
precisa ter o
Papel de usuário de rede do Compute (roles/compute.networkUser
)
para todo o projeto host ou para as sub-redes que você precisa usar.
Para saber mais sobre permissões, leia a Documentação do IAM do Compute Engine.
Criar instâncias de VM com várias interfaces de rede
Esta seção descreve como criar uma instância com várias interfaces de rede, incluindo vNICs e NICs dinâmicas. Para instruções gerais sobre como criar instâncias, consulte Criar e iniciar uma instância de VM.
A primeira interface sempre é criada como nic0
e
padrão.
Console
No console Trusted Cloud , acesse a página Criar uma instância.
No campo Nome, insira um nome para a instância.
No campo Região, selecione uma região.
No campo Zona, selecione uma zona.
Na seção Opções avançadas, expanda Rede e faça o seguinte:
Na seção Interfaces de rede, expanda a interface de rede para editá-la.
Em Rede e Sub-rede, selecione a rede e a sub-rede que você quer usar.
Se você quiser configurar endereços IPv6 na interface, selecione uma sub-rede que tenha um intervalo de endereços IPv6 configurado. O tipo de acesso IPv6 da sub-rede determina se a instância recebe um endereço IPv6 interno ou externo.
Selecione uma das seguintes opções para o tipo de pilha de IP da interface:
- IPv4 (pilha única)
- IPv4 e IPv6 (pilha dupla)
- IPv6 (pilha única) (pré-lançamento)
Para interfaces com endereços IPv4, faça o seguinte:
Em Endereço IPv4 interno principal, selecione uma das seguintes opções:
- Temporário (automático) para atribuir automaticamente um novo endereço IPv4 temporário
- Temporário (personalizado) para especificar manualmente um novo endereço IPv4 temporário
- Um endereço IPv4 interno estático reservado da lista
- Reservar endereço IPv4 interno estático para reservar e atribuir um novo endereço IPv4 interno estático
Em Endereço IPv4 externo, selecione uma das seguintes opções:
- Temporário para atribuir um novo endereço IPv4 temporário
- Nenhum, para não atribuir um endereço IPv4 externo
- Um endereço IPv4 estático reservado da lista
- Reserve um endereço IP externo estático para reservar e atribuir um novo endereço IPv4 externo estático
Para interfaces com endereços IPv6, faça o seguinte, dependendo do tipo de acesso da sub-rede conectada:
- Em Endereço IPv6 interno principal, selecione uma das seguintes opções:
- Temporário (automático) para atribuir um novo endereço IPv6 interno temporário
- Temporário (personalizado) para especificar manualmente um novo endereço IPv6 interno temporário
- Um endereço IPv6 interno estático reservado da lista
- Reservar endereço IPv6 interno estático para reservar e atribuir um novo endereço IPv6 interno estático
- Em Endereço IPv6 externo, selecione uma das seguintes opções:
- Alocação automática para atribuir um novo endereço IPv6 externo temporário
- Um endereço IPv6 externo estático reservado da lista
- Reservar um endereço IPv6 externo estático para reservar e atribuir um novo endereço IPv6 externo estático
- Em Endereço IPv6 interno principal, selecione uma das seguintes opções:
Para concluir a modificação da interface de rede, clique em Concluído.
Para adicionar outra interface, clique em Adicionar interface de rede.
Continue com o processo de criação de instâncias.
Clique em Criar.
gcloud
Para criar interfaces de rede em uma nova instância, use o
comando gcloud compute instances create
.
Inclua a flag --network-interface
para cada interface,
seguida por qualquer chave de rede apropriada, como
network
, subnet
, private-network-ip
, address
, external-ipv6-address
e vlan
.
A inclusão da chave vlan
cria uma NIC dinâmica.
Se você criar uma NIC dinâmica, também precisará seguir as etapas
para configurar o SO convidado para NICs dinâmicas
depois de criar a instância.
Para conferir exemplos de como criar instâncias com várias interfaces, consulte exemplos de configurações.
Esse snippet ilustra apenas a sinalização --network-interface
, um dos muitos parâmetros possíveis de especificar ao criar uma instância.
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 \ ...
Substitua:
INSTANCE_NAME
: o nome da instância a ser criada.ZONE
: a zona em que a instância é criada.NETWORK_A
,NETWORK_B
: a rede em que a interface é anexada.SUBNET_A
,SUBNET_B
: a sub-rede em que a interface é anexada.STACK_TYPE
: o tipo de pilha da interface.O valor padrão é
IPV4_ONLY
. EspecifiqueIPV4_IPV6
para configurar uma interface de pilha dupla ouIPV6_ONLY
para configurar uma interface somente IPv6 (Pré-lançamento).Valores para interfaces com endereços IPv4:
INTERNAL_IPV4_ADDRESS
: o endereço IPv4 interno que você quer que a interface tenha na sub-rede de destino. Omita se você quiser apenas qualquer endereço válido atribuído.EXTERNAL_IPV4_ADDRESS
: o endereço IPv4 externo da interface.É preciso reservar um endereço IPv4 externo anteriormente. Se você não quiser que a interface tenha um endereço IP externo, especifique "no-address" em vez de
address=EXTERNAL_IPV4_ADDRESS
. Se você quiser que a interface receba um endereço IP externo temporário, especifiqueaddress=''
.
Valores para interfaces com endereços IPv6:
INTERNAL_IPV6_ADDRESS
: o endereço IPv6 interno que você quer que a interface tenha na sub-rede de destino. Se não for especificado, Trusted Cloud vai atribuir automaticamente um endereço IPv6 interno da sub-rede.EXTERNAL_IPV6_ADDRESS
: o endereço IPv6 externo que você quer que a interface tenha na sub-rede de destino. Se não for especificado, Trusted Cloud vai atribuir automaticamente um endereço IPv6 externo da sub-rede.
VLAN_ID
: um ID da VLAN. Especificar um ID de VLAN configura a interface de rede como uma NIC dinâmica. É necessário colocar uma NIC dinâmica após a vNIC mãe no comando.
API
Use o método instances.insert
para criar uma instância com várias interfaces de rede.
A inclusão do campo vlan
cria uma NIC dinâmica.
Se você criar uma NIC dinâmica, também precisará seguir as etapas
para configurar o SO convidado para NICs dinâmicas
depois de criar a instância.
Veja os exemplos a seguir:
Para criar uma instância com apenas endereços IPv4 internos, faça o seguinte:
POST https://compute.apis-s3ns.fr/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... }
Substitua:
PROJECT_ID
: o ID do projeto que contém a instância.ZONE
: é a zona que contém a instância.IPV4_ADDRESS_A
,IPV4_ADDRESS_B
: os endereços IPv4 internos que você quer atribuir a cada interface de rede.REGION
: a região que contém a instância.SUBNET_A, SUBNET_B
: as sub-redes em que cada interface de rede está localizada.VLAN_ID
: um ID da VLAN. Especificar um ID de VLAN configura a interface de rede como uma NIC dinâmica. Você precisa colocar uma NIC dinâmica após a vNIC mãe da solicitação.
Para criar uma instância com endereços IPv4 e IPv6 internos, faça o seguinte:
POST https://compute.apis-s3ns.fr/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... }
Substitua:
PROJECT_ID
: o ID do projeto que contém a instância.ZONE
: é a zona que contém a instância.REGION
: a região que contém a instância.SUBNET_A, SUBNET_B
: as sub-redes em que cada interface de rede está localizada.IPV6_ADDRESS_A, IPV6_ADDRESS_B
: o endereço IPv6 interno que você quer que a interface tenha na sub-rede de destino. Se não for especificado, Trusted Cloud vai atribuir automaticamente um endereço IPv6 interno da sub-rede.VLAN_ID
: um ID da VLAN. Especificar um ID de VLAN configura a interface de rede como uma NIC dinâmica. Você precisa colocar uma NIC dinâmica após a vNIC mãe.
Para criar uma instância com apenas endereços IPv6 internos (pré-lançamento), faça o seguinte:
POST https://compute.apis-s3ns.fr/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... }
Substitua:
PROJECT_ID
: o ID do projeto que contém a instância.ZONE
: é a zona que contém a instância.REGION
: a região que contém a instância.SUBNET
: a sub-rede em que a interface de rede está localizado.IPV6_ADDRESS
: o endereço IPv6 interno que você quer que a interface tenha na sub-rede de destino. Se não for especificado, Trusted Cloud vai atribuir automaticamente um endereço IPv6 interno da sub-rede.
Exemplos de configurações
As seções a seguir mostram como criar instâncias com várias interfaces.
Configurar várias vNICs e NICs dinâmicas
O comando de exemplo a seguir cria uma instância com as seguintes interfaces de rede:- Uma vNIC chamada
nic0
que é a mãe do seguinte:- Uma NIC dinâmica chamada
nic0.2
- Uma NIC dinâmica chamada
- Uma vNIC chamada
nic1
que é a mãe do seguinte:- Uma NIC dinâmica chamada
nic1.4
- Uma NIC dinâmica chamada
nic1.5
- Uma NIC dinâmica chamada
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
Depois de criar uma instância com NICs dinâmicas, também é necessário configurar o SO convidado para NICs dinâmicas.
Configurar várias interfaces de rede com apenas endereços IPv4
A amostra de comando a seguir cria uma instância com três interfaces de rede.
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
As interfaces são criadas da seguinte forma:
A conta
nic0
é criada com as configurações padrão. A interface é anexada a uma sub-rede na rede VPC padrão, com um endereço IP interno alocado automaticamente e um temporário.nic1
está anexado à sub-redesubnet-a
na redenet1
, com um endereço IPv4 interno de10.10.10.2
e um endereço IPv4 externo estático,EXTERNAL_IPV4_ADDRESS
.nic2
está anexado à sub-redesubnet-b
na redenet2
, com um endereço IPv4 interno de10.10.20.2
e nenhum endereço IP externo.
Para uma descrição completa do comando gcloud compute instances create
e da sinalização --network-interface
, leia a documentação para o comando.
É possível usar o endereço IP da interface de rede adicionada para configurar o encaminhamento de DNS. Para saber mais sobre como configurar zonas de encaminhamento do Cloud DNS, consulte Zonas de encaminhamento.
Configurar várias interfaces de rede com endereços IPv4 e IPv6
A amostra de comando a seguir cria uma instância de pilha dupla com duas interfaces de rede.
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
As interfaces são criadas da seguinte forma:
nic0
está anexado à sub-redeint-subnet
na rededual-int
, com um endereço IPv4 interno efêmero e um endereço IPv6 interno temporário.nic1
está anexado à sub-redeext-subnet
na rededual-ext
, com um endereço IPv4 interno temporário e um endereço IPv6 externo temporário.
Configurar várias interfaces de rede com apenas endereços IPv6
O comando de exemplo a seguir cria uma instância somente IPv6 (Pré-lançamento) com três interfaces de rede.
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
As interfaces são criadas da seguinte forma:
nic0
está anexado à sub-redeint-subnet-a
na redeipv6-only-int-a
, com um endereço IPv6 interno temporário alocado automaticamente.nic1
está anexado à sub-redeint-subnet-b
na redeipv6-only-int-b
, com um endereço IPv6 interno temporário personalizadofd20:db8:0:0:1:0::/96
.nic2
está anexado à sub-redeext-subnet
na redeipv6-only-ext
, com um endereço IPv6 externo estático,EXTERNAL_IPV6_ADDRESS
.
Configurar várias interfaces de rede para grupos de instâncias
É possível usar instâncias com várias interfaces de rede em grupos de instâncias não gerenciadas e em grupos de instâncias gerenciadas.
Para grupos de instâncias não gerenciadas,
crie cada instância individualmente,
garantindo que a interface de rede nic0
de cada instância esteja anexada à mesma
sub-rede. Em seguida, adicione as instâncias ao grupo de instâncias não gerenciadas.
Para configurar várias interfaces de rede para
grupos de instâncias gerenciadas,
é preciso especificar a configuração de rede para cada interface no modelo
de instância. Para isso, defina a sinalização --network-interface
uma vez para cada interface.
O exemplo a seguir cria um modelo de instância com três interfaces de rede:
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 os nomes das sub-redes em cada região de um projeto precisam ser exclusivos, a especificação de sub-redes por nome associa implicitamente cada interface a uma rede VPC. Cada interface precisa usar uma sub-rede que esteja em uma rede VPC exclusiva:
nic0
usa a sub-redenet0-subnet-a
nic1
usa a sub-redenet1-subnet-b
nic2
usa a sub-redenet2-subnet-c
A opção no-address
na flag --network-interface
indica que a
interface está configurada sem um endereço IPv4 externo. O endereço IP interno vem da sub-rede usada pela interface. Para informações completas sobre as sinalizações e a sintaxe, consulte a sinalização --network-interface
para o comando instance-templates create
.