Crie VMs com várias interfaces de rede
Esta página descreve como criar instâncias de VMs com várias interfaces de rede.
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 Trusted Cloud consola, aceda à página Criar uma instância.
No campo Nome, introduza um nome para a instância.
No campo Região, selecione uma região.
No campo Zona, selecione uma zona.
Na secção Opções avançadas, expanda Rede e, de seguida, faça o seguinte:
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. O tipo de acesso IPv6 da sub-rede determina se a instância recebe um endereço IPv6 interno ou um endereço IPv6 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 (single-stack) (pré-visualização)
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
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 endereço IPv6 interno efémero
- Efémero (personalizado) para especificar manualmente um novo endereço IPv6 interno efémero
- 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
- Para Endereço IPv6 externo, selecione uma das seguintes opções:
- Efémero (automático) para atribuir automaticamente um novo endereço IPv6 externo efémero
- Efémero (personalizado) para especificar manualmente um novo endereço IPv6 externo efémero
- Um endereço IPv6 externo estático reservado da lista
- Reservar endereço IPv6 externo estático para reservar e atribuir um novo endereço IPv6 externo estático
- 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, clique em Adicionar interface de rede.
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_IPV6
para configurar uma interface de pilha dupla ouIPV6_ONLY
para 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 endereço IPv6 interno que quer que a interface tenha na sub-rede de destino. Se não for especificado, Trusted Cloud atribui automaticamente um endereço IPv6 interno da sub-rede.EXTERNAL_IPV6_ADDRESS
: o endereço IPv6 externo que quer que a interface tenha na sub-rede de destino. Se não for especificado, Trusted Cloud atribui automaticamente um endereço IPv6 externo a partir 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.s3nsapis.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 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.s3nsapis.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 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 endereço IPv6 interno que quer que a interface tenha na sub-rede de destino. Se não for especificado, Trusted Cloud atribui automaticamente um endereço IPv6 interno 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 (pré-visualização), faça o seguinte:
POST https://compute.s3nsapis.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 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 sub-rede onde se encontra a interface de rede.IPV6_ADDRESS
: o endereço IPv6 interno que quer que a interface tenha na sub-rede de destino. Se não for especificado, Trusted Cloud atribui automaticamente um endereço IPv6 interno da sub-rede.
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 seguinte comando de exemplo cria uma instância com as seguintes interfaces de rede:- Uma vNIC denominada
nic0
que é a principal do seguinte:- Uma NIC dinâmica denominada
nic0.2
- Uma NIC dinâmica denominada
- Uma vNIC denominada
nic1
que é a principal do seguinte:- Uma NIC dinâmica denominada
nic1.4
- Uma NIC dinâmica denominada
nic1.5
- Uma NIC dinâmica denominada
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â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.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 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:
nic0
está anexada à sub-redeint-subnet
na rededual-int
, com um endereço IPv4 interno efémero e um endereço IPv6 interno efémero.nic1
está anexada à sub-redeext-subnet
na rededual-ext
, com um endereço IPv4 interno efémero e um endereço IPv6 externo efémero.
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:
nic0
está anexado à sub-redeint-subnet-a
na redeipv6-only-int-a
, com um endereço IPv6 interno efémero atribuído automaticamente.nic1
está anexado à sub-redeint-subnet-b
na redeipv6-only-int-b
, com um endereço IPv6 interno efémero 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
.
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 nic0
interface 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
nic0
usa a sub-redenet0-subnet-a
- A app
nic1
usa a sub-redenet1-subnet-b
- A app
nic2
usa 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
.