Pular para o conteúdo principal

Redes do cluster: tipos, dual-stack e pools de endereços

No vStack Center, uma rede é um objeto no nível do cluster. Ela tem um tipo, uma sub-rede (uma para IPv4, uma para IPv6 ou ambas), um gateway padrão, um MTU e um pool de endereços. Quem pode criar uma rede depende do tipo dela. Depois de criada, a rede é atribuída a um data center virtual (VDC), e as máquinas virtuais do VDC se conectam a ela por meio de uma interface de rede e recebem um endereço do pool.

A criação e a exclusão de uma rede são operações assíncronas. O dispatcher do cluster aceita a solicitação, repassa-a ao agente de rede e responde quando ela é concluída: o resultado final chega em uma mensagem de retorno separada. Portanto, a criação tem dois desfechos: uma solicitação aceita e uma rede confirmada. Entre um e outro, a rede ainda não está pronta para receber máquinas.

Já a modificação de uma rede é síncrona e muito limitada: apenas o nome de uma rede existente pode ser alterado. A sub-rede, o gateway, o MTU e o VLAN ID são fixados na criação. Isso também se reflete na interface, em que o cartão da rede permite editar apenas o campo Name, enquanto os demais são somente leitura.

O pool gerencia os endereços dentro da rede. Ele determina quais endereços estão livres para atribuição a uma máquina, quais já estão em uso e quais foram excluídos por um administrador. O pool funciona de forma diferente para IPv4 e IPv6. Essa é a principal assimetria a ser entendida antes de atribuir endereços pela primeira vez; uma seção específica abaixo trata dela.

Tipos de rede​

O tipo é definido na criação e não pode ser alterado. Ele determina os parâmetros obrigatórios e qual papel pode criar a rede.

TipoValor de typeVLAN IDC-VLAN (qinq_id)Quem pode criar
Isolada1OpcionalNão permitidoCluster master, vDC admin e superiores
Roteada2ObrigatórioNão permitidoSomente Cluster master
GENEVE3OpcionalNão permitidoCluster master, vDC admin e superiores
Q-in-Q4Obrigatório (tag externa, S-VLAN)Obrigatório (tag interna)Somente Cluster master

As duas tags são obrigatórias para Q-in-Q: vlan_id contém a tag externa, e qinq_id contém a tag interna. Para os tipos 1–3, a tag interna não é permitida; uma solicitação que a contenha é rejeitada.

Parâmetros e limites da rede​

ParâmetroPadrãoLimitesComentário
cidrNenhumPrefixo de /16 a /29A sub-rede IPv4 da rede
cidr_v6NenhumCIDR IPv6 válidoA sub-rede IPv6 da rede
vlan_idNenhumIntervalo de VLANs aceito pelo clusterS-VLAN para Q-in-Q
qinq_idNenhumIntervalo de VLANs aceito pelo clusterC-VLAN, apenas para Q-in-Q
mtu15001000–9180 e não acima do máximo do clusterJumbo Frames dentro do máximo
default_gwNenhumEndereço dentro de cidrGateway IPv4
default_gw_v6NenhumEndereço dentro de cidr_v6Gateway IPv6
backend2Inteiro ≥ 0Backend de rede; 2 é NetGraph
ext_managed_ippool0—Indica que um sistema externo gerencia o pool de endereços

É necessária pelo menos uma sub-rede: não é possível criar uma rede sem cidr e sem cidr_v6. O prefixo IPv4 é verificado em relação aos dois limites: uma sub-rede ampla demais e uma estreita demais são rejeitadas com códigos de erro diferentes, e o texto da resposta especifica o número de bits.

Dual-stack: IPv4 e IPv6 em uma rede​

Uma rede pode ser somente IPv4, somente IPv6 ou dual-stack. Os dois protocolos convivem em um único objeto: a rede tem duas sub-redes e dois gateways padrão, cada um dentro da própria sub-rede. Uma máquina virtual em uma rede dual-stack recebe endereços das duas famílias, e eles aparecem juntos na lista de endereços em uso, sem separação por protocolo.

O gateway IPv6 é imediatamente excluído da atribuição: quando default_gw_v6 é especificado, o endereço dele é adicionado automaticamente à lista de endereços IPv6 reservados, de modo que não pode ser atribuído a uma máquina.

Pool de endereços: lista de permissões para IPv4, lista de bloqueios para IPv6​

Esta é a diferença principal. Para IPv4, o pool é uma lista de endereços permitidos: um endereço está disponível para atribuição porque está no pool. Para IPv6, o pool é uma lista de reservas: um endereço está disponível porque não está na lista de reservas. Portanto, a mesma operação "adicionar um endereço ao pool" tem efeito oposto sobre os dados subjacentes, embora signifique a mesma coisa: o endereço pode ser atribuído novamente a uma máquina.

AspectoIPv4IPv6
O que o pool armazenaEndereços permitidosEndereços reservados (excluídos)
Um endereço está disponível seEstá no poolNão está entre as reservas
"Adicionar um endereço ao pool"Adiciona um registro; o endereço fica disponívelRemove uma reserva; o endereço fica disponível
"Remover um endereço do pool"Remove um registro; o endereço não pode mais ser atribuídoAdiciona uma reserva; o endereço não pode mais ser atribuído
Contador de endereços livresCalculado a partir do poolCalculado como o tamanho da sub-rede menos as reservas menos os endereços atribuídos

Essa assimetria leva a uma regra prática: a lista de permissões de uma sub-rede IPv6 nunca é preenchida. Não procure entradas nela depois de criar a rede; o gerenciamento usa reservas.

Uma lista de reservas IPv6 vazia também não indica nada: ela permanece vazia mesmo em uma rede com sub-rede IPv6 até que um gateway IPv6 seja definido, um administrador exclua endereços ou uma máquina receba um endereço IPv6. Se uma rede tem ou não uma sub-rede IPv6 é determinado por cidr_v6, definido na criação.

O contador de endereços IPv6 livres é limitado pela largura do inteiro: para sub-redes amplas (prefixo /65 ou mais curto, incluindo o habitual /64), a quantidade de endereços não cabe em um inteiro de 64 bits com sinal, por isso é retornado -1. Isso não é um erro; significa "muitos para contar". Um número exato está disponível apenas para sub-redes IPv6 estreitas; para uma rede sem sub-rede IPv6, o contador é 0.

O que a interface mostra​

TelaConteúdoFinalidade
Provider Data Center → All NetworksTabela com ID, Type, Name, VLAN ID, MTU, CIDR, Used IP Addresses, Free IP Addresses e exportação CSVTodas as redes do cluster e os endereços disponíveis
Cartão da redeFormulário com Name editável e campos somente leitura; seções General properties, IPPool usage e IPPool spaceParâmetros da rede, endereços em uso discriminados por VDC e contadores do pool
VDC → Networks, guia PrimaryTabela com a coluna AssignRedes atribuídas a este VDC
VDC → Networks, guia IP DataUsed IP addresses by this vDC, Used IP Addresses, Free IP Addresses, Addrs limitQuantos endereços o VDC usou e o limite dele
Cartão da VM, seção NetworksTabela com ID, Name, Slot, Port, MAC, IP, IP guard, MBps limitO endereço recebido pela máquina

Guia All Networks: tabela de redes com as colunas ID, Type, Name, VLAN ID, MTU, CIDR, Used IP Addresses e Free IP Addresses

A seção IPPool space no cartão da rede divide os endereços em três contadores: livres, em uso e ausentes do pool. O terceiro contador decorre diretamente da lógica da lista de permissões do IPv4: o endereço está dentro da sub-rede, mas não pode ser atribuído até ser adicionado ao pool.

Limitações que você deve conhecer com antecedência​

LimitaçãoMotivoAção
Apenas o nome de uma rede pode ser alteradoA sub-rede, o gateway, o MTU e as tags VLAN são fixados na criaçãoCrie uma nova rede com os parâmetros necessários e transfira as máquinas para ela
Uma rede com consumidores conectados não pode ser excluídaA exclusão interromperia a conectividade das máquinas em execuçãoDesconecte da rede as interfaces das máquinas e dos roteadores definidos por software (Edge) e depois exclua-a
vDC admin não pode criar redes roteadas nem Q-in-QEsses tipos afetam o roteamento externo e a marcação de VLANs em todo o clusterPeça a um usuário com o papel Cluster master que crie a rede
O contador de IPv6 livres mostra -1A sub-rede é mais ampla que /65, e o tamanho dela não é calculadoOriente-se pela lista de reservas e de endereços atribuídos ou use uma sub-rede estreita
vDC admin só pode modificar e excluir as próprias redesPara esses papéis, a propriedade do objeto está vinculada a quem o criouAtue como Cluster master: esse papel pode modificar e excluir qualquer rede, independentemente de quem a criou

Veja também​

Métodos da API​

As operações da API tratadas nesta página são nets-create, net-list, net-set, nets-delete, net-ippool-show e net-ippool-free. Consulte a referência da API.