Crie 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
Antes de começar, certifique-se de que conhece as caraterísticas das instâncias com várias interfaces de rede, conforme descrito na vista geral das várias interfaces de rede.
Funções de IAM
Para criar uma instância com várias interfaces de rede, tem de ter uma das seguintes funções:
- Função de proprietário ou editor do projeto
- Função de administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1)
Criar e eliminar instâncias e modelos de instâncias com várias interfaces num projeto que não use um ambiente de VPC partilhada: um utilizador com a função Proprietário, Editor ou Administrador de instâncias de computação (v1) pode criar uma instância com várias interfaces associadas a redes e sub-redes de VPC que fazem parte desse mesmo projeto.
Criar e eliminar instâncias e modelos de instâncias com várias interfaces em ambientes de VPC partilhada:
um utilizador com a função Proprietário, Editor ou Administrador de instâncias do Compute (v1)
pode criar uma instância com várias interfaces. Se alguma das interfaces estiver
associada a uma sub-rede num projeto anfitrião de VPC partilhada, também tem de
ter a
função de utilizador da rede de computação (roles/compute.networkUser)
para todo o projeto anfitrião ou para as sub-redes que precisa de usar.
Para saber mais sobre as autorizações, leia a documentação do IAM do Compute Engine.
Crie instâncias de VM com várias interfaces de rede
Esta secção descreve como criar uma instância com várias interfaces de rede, incluindo vNICs e NICs dinâmicas. Para obter instruções gerais sobre como criar instâncias, consulte o artigo Crie e inicie uma instância de VM.
A primeira interface é sempre criada como nic0 e é sempre a interface predefinida.
Consola
Na Google Cloud consola, aceda à página Criar uma instância.
No painel Configuração da máquina, faça o seguinte:
- No campo Nome, introduza um nome para a instância.
- No campo Região, selecione uma região.
- No campo Zona, selecione uma zona.
No menu de navegação, clique em Rede para ver o painel Rede.
Na secção Interfaces de rede, expanda a interface de rede para a editar.
Para Rede e Sub-rede, selecione a rede e a sub-rede que quer usar.
Se quiser configurar endereços IPv6 na interface, selecione uma sub-rede que tenha um intervalo de endereços IPv6 configurado.
/64O tipo de acesso IPv6 da sub-rede determina se a instância recebe um intervalo de endereços/96IPv6 interno ou um intervalo de endereços/96IPv6 externo.Selecione uma das seguintes opções para o tipo de pilha de IP para a interface:
- IPv4 (pilha única)
- IPv4 e IPv6 (dual-stack)
- IPv6 (pilha única)
Para interfaces com endereços IPv4, faça o seguinte:
Para Endereço IPv4 interno principal, selecione uma das seguintes opções:
- Efémero (automático) para atribuir automaticamente um novo endereço IPv4 efémero
- Efémero (personalizado) para especificar manualmente um novo endereço IPv4 efémero
- 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
Para Endereço IPv4 externo, selecione uma das seguintes opções:
- Efémero para atribuir um novo endereço IPv4 efémero
- Nenhum para não atribuir um endereço IPv4 externo
- Um endereço IPv4 estático reservado da lista
- Reservar endereço IP externo estático para reservar e atribuir um novo endereço IPv4 externo estático
Opcionalmente, pode atribuir um ou mais intervalos de IP de alias à interface de rede. Para atribuir um intervalo de IP de alias, faça o seguinte:
- Em Intervalos de IP de alias, clique em Adicionar intervalo de IP.
- Em Intervalo de sub-rede, selecione um intervalo de endereços IPv4 principal da sub-rede ou um intervalo de endereços IPv4 secundário da sub-rede a usar.
- Para o Intervalo de IPs de alias, introduza um intervalo de IPs na notação CIDR. Este intervalo tem de ser um intervalo não usado do intervalo de IPs da sub-rede que selecionou.
Para mais informações sobre como atribuir intervalos de IPs de alias a interfaces de rede de VMs, consulte o artigo Configure intervalos de IPs de alias.
Para interfaces com endereços IPv6, faça o seguinte, consoante o tipo de acesso da sub-rede ligada:
- Para Endereço IPv6 interno principal, selecione uma das seguintes opções:
- Efémero (automático) para atribuir automaticamente um novo intervalo de endereços IPv6 internos efémeros
- Efémero (personalizado) para especificar manualmente um novo intervalo de endereços IPv6 internos efémeros
- Um intervalo de endereços IPv6 internos estáticos reservados da lista
- Reservar endereço IPv6 interno estático para reservar e atribuir um novo intervalo de endereços IPv6 internos estáticos
- Para Endereço IPv6 externo, selecione uma das seguintes opções:
- Efémero (automático) para atribuir automaticamente um novo intervalo de endereços IPv6 externos efémeros
- Efémero (personalizado) para especificar manualmente um novo intervalo de endereços IPv6 externos efémeros
- Um intervalo de endereços IPv6 externos estáticos reservados da lista
- Reservar endereço IPv6 externo estático para reservar e atribuir um novo intervalo de endereços IPv6 externos estáticos
- Para Endereço IPv6 interno principal, selecione uma das seguintes opções:
Para terminar a modificação da interface de rede, clique em Concluído.
Para adicionar outra interface de rede:
Para adicionar uma vNIC, clique em Adicionar uma interface de rede e preencha o formulário introduzindo os detalhes da vNIC.
Para adicionar uma NIC dinâmica, clique em Adicionar uma interface de rede dinâmica e faça o seguinte:
- No campo Interface de rede principal, selecione a vNIC principal para a qual criar a NIC dinâmica.
- No campo ID da VLAN, introduza o ID da VLAN da NIC dinâmica.
- Preencha o formulário introduzindo os restantes detalhes da NIC dinâmica.
Continue com o processo de criação da instância.
Clique em Criar.
gcloud
Para criar interfaces de rede numa nova instância, use o comando gcloud compute instances create.
Inclua a flag --network-interface para cada interface,
seguida de quaisquer chaves de rede adequadas, como
network, subnet, private-network-ip, address, external-ipv6-address
e vlan.
A inclusão da chave vlan cria uma NIC dinâmica.
Se criar uma NIC dinâmica, também tem de seguir os passos
para configurar o SO convidado para NICs dinâmicas
depois de criar a instância.
Para ver exemplos de como criar instâncias com várias interfaces, consulte as configurações de exemplo.
Este fragmento apenas ilustra a flag --network-interface, um dos
muitos parâmetros possíveis que pode especificar quando cria 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 o seguinte:
INSTANCE_NAME: o nome da instância a criar.ZONE: a zona onde a instância é criada.NETWORK_A,NETWORK_B: a rede à qual a interface está associada.SUBNET_A,SUBNET_B: a sub-rede onde a interface está anexada.STACK_TYPE: o tipo de pilha para a interface.O valor predefinido é
IPV4_ONLY. EspecifiqueIPV4_IPV6para configurar uma interface de pilha dupla ouIPV6_ONLYpara configurar uma interface apenas IPv6.Valores para interfaces com endereços IPv4:
INTERNAL_IPV4_ADDRESS: o endereço IPv4 interno que quer que a interface tenha na sub-rede de destino. Omita se quiser apenas qualquer endereço válido atribuído.EXTERNAL_IPV4_ADDRESS: o endereço IPv4 externo da interface.Tem de ter reservado anteriormente um endereço IPv4 externo. Se não quiser que a interface tenha um endereço IP externo, especifique "no-address" em vez de
address=EXTERNAL_IPV4_ADDRESS. Se quiser que a interface receba um endereço IP externo efémero, especifiqueaddress=''.
Valores para interfaces com endereços IPv6:
INTERNAL_IPV6_ADDRESS: o intervalo de endereços IPv6 internos que quer que a interface tenha na sub-rede de destino. Se não for especificado, Google Cloud atribui automaticamente um intervalo de endereços IPv6 internos da sub-rede.EXTERNAL_IPV6_ADDRESS: o intervalo de endereços IPv6 externos que quer que a interface tenha na sub-rede de destino. Se não for especificado, Google Cloud atribui automaticamente um intervalo de endereços IPv6 externos da sub-rede.
VLAN_ID: um ID de VLAN. A especificação de um ID de VLAN configura a interface de rede como uma NIC dinâmica. Tem de colocar um NIC dinâmico após o vNIC principal 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 um NIC dinâmico.
Se criar uma NIC dinâmica, também tem de seguir os passos
para configurar o SO convidado para NICs dinâmicas
depois de criar a instância.
Veja os exemplos seguintes:
Para criar uma instância apenas com endereços IPv4 internos, faça o seguinte:
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... }Substitua o seguinte:
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 quer atribuir a cada interface de rede.REGION: a região que contém a instância.SUBNET_A, SUBNET_B: as sub-redes onde cada interface de rede está localizada.VLAN_ID: um ID de VLAN. A especificação de um ID de VLAN configura a interface de rede como uma NIC dinâmica. Tem de colocar uma NIC dinâmica após a vNIC principal no pedido.
Para criar uma instância com endereços IPv4 internos e IPv6 internos, faça o seguinte:
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... }Substitua o seguinte:
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 onde cada interface de rede está localizada.IPV6_ADDRESS_A, IPV6_ADDRESS_B: o intervalo de endereços IPv6 internos que quer que a interface tenha na sub-rede de destino. Se não for especificado, Google Cloud atribui automaticamente um intervalo de endereços IPv6 internos da sub-rede.VLAN_ID: um ID de VLAN. A especificação de um ID de VLAN configura a interface de rede como uma NIC dinâmica. Tem de colocar uma NIC dinâmica após a respetiva NIC virtual principal.
Para criar uma instância apenas com endereços IPv6 internos, faça o seguinte:
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": IPV6_ONLY, "ipv6AccessType": INTERNAL }, { "subnetwork": "regions/REGION/subnetworks/SUBNET_B", "ipv6Address": "IPV6_ADDRESS_B", "internalIpv6PrefixLength": 96, "stackType": IPV6_ONLY, "ipv6AccessType": INTERNAL, "vlan": "VLAN_ID" }, for each interface, specify a network... ], other instance settings... }Substitua o seguinte:
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 onde cada interface de rede está localizada.IPV6_ADDRESS_A, IPV6_ADDRESS_B: o intervalo de endereços IPv6 internos que quer que a interface tenha na sub-rede de destino. Se não for especificado, Google Cloud atribui automaticamente um intervalo de endereços IPv6 internos da sub-rede.VLAN_ID: um ID de VLAN. A especificação de um ID de VLAN configura a interface de rede como uma NIC dinâmica. Tem de colocar uma NIC dinâmica após a respetiva NIC virtual principal.
Terraform
Pode usar um recurso do Terraform para criar uma instância com várias interfaces de rede.
Os argumentos do Terraform têm valores de exemplo que pode alterar.
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Exemplos de configurações
As secções seguintes mostram como criar instâncias com várias interfaces.
Configure várias vNICs e NICs dinâmicas
O comando de exemplo seguinte cria uma instância com as seguintes interfaces de rede:
- Uma vNIC denominada
nic0que é a principal do seguinte:- Uma NIC dinâmica denominada
nic0.2
- Uma NIC dinâmica denominada
- Uma vNIC denominada
nic1que é a principal do seguinte:- Uma NIC dinâmica denominada
nic1.4 - Uma NIC dinâmica denominada
nic1.5
- Uma NIC dinâmica denominada
gcloud 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âmicos, também tem de configurar o SO convidado para NICs dinâmicos.
Configure várias interfaces de rede apenas com endereços IPv4
O comando de exemplo seguinte 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:
nic0é criado com as predefinições. A interface está anexada a uma sub-rede na rede VPC predefinida, com um endereço IP interno atribuído automaticamente e um endereço IP externo efémero.nic1está anexado à sub-redesubnet-ana redenet1, com um endereço IPv4 interno de10.10.10.2e um endereço IPv4 externo estático,EXTERNAL_IPV4_ADDRESS.nic2está anexado à sub-redesubnet-bna redenet2, com um endereço IPv4 interno de10.10.20.2e sem endereço IP externo.
Para uma descrição completa do comando gcloud compute instances create
e da flag --network-interface, leia a documentação do comando.
Pode usar o endereço IP da interface de rede que adicionou para configurar o encaminhamento de DNS. Para saber como configurar zonas de encaminhamento do Cloud DNS, consulte o artigo Zonas de encaminhamento.
Configurar várias interfaces de rede com endereços IPv4 e IPv6
O comando de exemplo seguinte 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:
nic0está anexada à sub-redeint-subnetna rededual-int, com um endereço IPv4 interno efémero e um intervalo de endereços IPv6 internos efémeros.nic1está anexada à sub-redeext-subnetna rededual-ext, com um endereço IPv4 interno efémero e um intervalo de endereços IPv6 externos efémereos.
Configure várias interfaces de rede apenas com endereços IPv6
O comando de exemplo seguinte cria uma instância apenas IPv6 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:
nic0está anexado à sub-redeint-subnet-ana redeipv6-only-int-a, com um endereço IPv6 interno efémero atribuído automaticamente.nic1está anexado à sub-redeint-subnet-bna redeipv6-only-int-b, com um intervalo de endereços IPv6 internos efémeros personalizadosfd20:db8:0:0:1:0::/96.nic2está anexado à sub-redeext-subnetna redeipv6-only-ext, com um intervalo de endereços IPv6 externos estáticos,EXTERNAL_IPV6_ADDRESS.
Configure várias interfaces de rede para grupos de instâncias
Pode usar instâncias com várias interfaces de rede em grupos de instâncias não geridos e grupos de instâncias geridos.
Para grupos de instâncias não geridos,
crie cada instância individualmente,
garantindo que a nic0interface de rede de cada instância está anexada à mesma
sub-rede. Em seguida, adicione as instâncias ao grupo de instâncias não gerido.
Para configurar várias interfaces de rede para grupos de instâncias geridos, tem de especificar a configuração de rede para cada interface no modelo de instância, definindo a flag --network-interface uma vez para cada interface.
O exemplo seguinte 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
Uma vez que os nomes das sub-redes em cada região de um projeto têm de ser exclusivos, a especificação das sub-redes por nome associa implicitamente cada interface a uma rede VPC. Cada interface tem de usar uma sub-rede que esteja numa rede VPC exclusiva:
- A app
nic0usa a sub-redenet0-subnet-a - A app
nic1usa a sub-redenet1-subnet-b - A app
nic2usa a sub-redenet2-subnet-c
A opção no-address no indicador --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 ver informações completas sobre as flags e a sintaxe, consulte a flag --network-interface para o comando instance-templates create.
O que se segue?
- Configure o encaminhamento para uma interface adicional
- Adicione NICs dinâmicas a uma instância
- Veja as interfaces de rede de uma instância
- Atualize as interfaces de rede de uma instância
- Elimine NICs dinâmicas de uma instância