Gerenciamento de Grupos Multicast no DoubleZero
Um grupo multicast é uma coleção lógica de dispositivos ou nós de rede que compartilham um identificador comum (tipicamente um endereço IP multicast) para transmitir dados de forma eficiente a múltiplos destinatários. Diferentemente da comunicação unicast (um-para-um) ou broadcast (um-para-todos), o multicast permite que um remetente transmita um único fluxo de dados que é replicado pela rede apenas para os receptores que ingressaram no grupo.
Essa abordagem otimiza o uso de largura de banda e reduz a carga tanto no remetente quanto na infraestrutura de rede, pois os pacotes são transmitidos apenas uma vez por enlace e são duplicados somente quando necessário para alcançar múltiplos assinantes. Grupos multicast são comumente usados em cenários como transmissão de vídeo ao vivo, conferências, distribuição de dados financeiros e sistemas de mensagens em tempo real.
No DoubleZero, os grupos multicast fornecem um mecanismo seguro e controlado para gerenciar quem pode enviar (publicadores) e receber (assinantes) dados dentro de cada grupo, garantindo uma distribuição de informações eficiente e governada.
flowchart LR
subgraph Publishers
P1[Publisher 1]
P2[Publisher 2]
P3[Publisher 3]
end
subgraph Subscribers
S1[Subscriber 1]
S2[Subscriber 2]
S3[Subscriber 3]
S4[Subscriber 4]
end
P1 --> B[Multicast Group]
P2 --> B
P3 --> B
B --> S1
B --> S2
B --> S3
B --> S4
O diagrama acima mostra como múltiplos usuários podem publicar mensagens em um grupo multicast, e múltiplos usuários podem se inscrever para receber essas mensagens. A rede DoubleZero replica os pacotes de forma eficiente, garantindo que todos os assinantes recebam as mensagens sem sobrecarga de transmissão desnecessária.
1. Criando e Listando Grupos Multicast
Os grupos multicast são a base para a distribuição segura e eficiente de dados no DoubleZero. Cada grupo é identificado de forma única e configurado com uma largura de banda específica e um proprietário. Apenas administradores da DoubleZero Foundation podem criar novos grupos multicast, garantindo governança adequada e alocação de recursos.
Uma vez criados, os grupos multicast podem ser listados para fornecer uma visão geral de todos os grupos disponíveis, sua configuração e seu estado atual. Isso é essencial para operadores de rede e proprietários de grupos monitorarem recursos e gerenciarem o acesso.
Criando um grupo multicast:
Apenas a DoubleZero Foundation pode criar novos grupos multicast. O comando de criação requer um código único, a largura de banda máxima e a chave pública do proprietário (ou 'me' para o pagador atual).
doublezero multicast group create --code <CODE> --max-bandwidth <MAX_BANDWIDTH> --owner <OWNER>
--code <CODE>: Código único para o grupo multicast (ex.: mg01)--max-bandwidth <MAX_BANDWIDTH>: Largura de banda máxima para o grupo (ex.: 10Gbps, 100Mbps)--owner <OWNER>: Chave pública do proprietário
Listando todos os grupos multicast:
Para listar todos os grupos multicast e visualizar informações resumidas (incluindo código do grupo, IP multicast, largura de banda, número de publicadores e assinantes, status e proprietário):
doublezero multicast group list
Saída de exemplo:
account | code | multicast_ip | max_bandwidth | publishers | subscribers | status | owner
3eUvZvcpCtsfJ8wqCZvhiyBhbY2Sjn56JcQWpDwsESyX | jito-shredstream | 233.84.178.2 | 200Mbps | 8 | 0 | activated | 44NdeuZfjhHg61grggBUBpCvPSs96ogXFDo1eRNSKj42
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 233.84.178.0 | 1Gbps | 0 | 0 | activated | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
2CuZeqMrQsrJ4h4PaAuTEpL3ETHQNkSC2XDo66vbDoxw | reserve | 233.84.178.1 | 100Kbps | 0 | 0 | activated | DZfPq5hgfwrSB3aKAvcbua9MXE3CABZ233yj6ymncmnd
4LezgDr5WZs9XNTgajkJYBsUqfJYSd19rCHekNFCcN5D | turbine | 233.84.178.3 | 1Gbps | 0 | 4 | activated | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
Este comando exibe uma tabela com todos os grupos multicast e suas principais propriedades:
- account: Endereço da conta do grupo
- code: Código do grupo multicast
- multicast_ip: Endereço IP multicast atribuído ao grupo
- max_bandwidth: Largura de banda máxima permitida para o grupo
- publishers: Número de publicadores no grupo
- subscribers: Número de assinantes no grupo
- status: Status atual (ex.: activated)
- owner: Chave pública do proprietário
Uma vez que um grupo é criado, o proprietário pode gerenciar quais usuários estão autorizados a se conectar como publicadores ou assinantes.
2. Gerenciando Listas de Permissão de Publicadores/Assinantes
As listas de permissão de publicadores e assinantes são essenciais para controlar o acesso aos grupos multicast no DoubleZero. Essas listas definem explicitamente quais usuários estão autorizados a publicar (enviar dados) ou se inscrever (receber dados) em um grupo multicast específico.
- Lista de permissão de publicadores: Apenas usuários adicionados à lista de permissão de publicadores podem enviar dados ao grupo multicast. Isso garante que apenas fontes autorizadas possam distribuir informações, prevenindo publicação não autorizada ou maliciosa.
- Lista de permissão de assinantes: Apenas usuários presentes na lista de permissão de assinantes podem se inscrever e receber dados do grupo multicast. Isso protege o acesso às informações transmitidas, garantindo que apenas destinatários aprovados possam receber mensagens.
O gerenciamento dessas listas é responsabilidade do proprietário do grupo, que pode adicionar, remover ou visualizar publicadores e assinantes autorizados usando a CLI do DoubleZero. O gerenciamento adequado das listas de permissão é fundamental para manter a segurança, integridade e rastreabilidade das comunicações multicast.
Nota: Para se inscrever ou publicar em um grupo multicast, o usuário deve primeiro estar autorizado a se conectar ao DoubleZero seguindo os procedimentos padrão de conexão. Os comandos de lista de permissão descritos aqui apenas associam um usuário já autorizado do DoubleZero a um grupo multicast. Adicionar um novo IP à lista de permissão de um grupo multicast não concede, por si só, acesso ao DoubleZero; o usuário deve ter concluído previamente o processo de autorização geral antes de interagir com grupos multicast.
Adicionando um publicador à lista de permissão
doublezero multicast group allowlist publisher add --code <CODE> --client-ip <CLIENT_IP> --user-payer <USER_PAYER>
--code <CODE>: Código do grupo multicast ao qual adicionar o publicador--client-ip <CLIENT_IP>: Endereço IP do cliente no formato IPv4--user-payer <USER_PAYER>: Chave pública do publicador ou 'me' para o pagador atual
Removendo um publicador da lista de permissão
doublezero multicast group allowlist publisher remove --code <CODE> --client-ip <CLIENT_IP> --user-payer <USER_PAYER>
--code <CODE>: Código ou chave pública do grupo multicast do qual remover a permissão do publicador--client-ip <CLIENT_IP>: Endereço IP do cliente no formato IPv4--user-payer <USER_PAYER>: Chave pública do publicador ou 'me' para o pagador atual
Listando a lista de permissão de publicadores de um grupo
Para listar todos os publicadores na lista de permissão de um grupo multicast específico, use:
doublezero multicast group allowlist publisher list --code <CODE>
--code <CODE>: O código do grupo multicast cuja lista de permissão de publicadores você deseja visualizar.
Exemplo:
doublezero multicast group allowlist publisher list --code mg01
Saída de exemplo:
account | multicast_group | client_ip | user_payer
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 206.189.166.187 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 164.92.244.134 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 186.233.185.50 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 161.35.58.190 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 159.223.46.72 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 204.74.232.130 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
Este comando exibe todos os publicadores atualmente autorizados a se conectar ao grupo especificado, incluindo sua conta, código do grupo, IP do cliente e pagador do usuário.
Adicionando um assinante à lista de permissão
doublezero multicast group allowlist subscriber add --code <CODE> --client-ip <CLIENT_IP> --user-payer <USER_PAYER>
--code <CODE>: Código ou chave pública do grupo multicast ao qual adicionar a permissão do assinante--client-ip <CLIENT_IP>: Endereço IP do cliente no formato IPv4--user-payer <USER_PAYER>: Chave pública do assinante ou 'me' para o pagador atual
Removendo um assinante da lista de permissão
doublezero multicast group allowlist subscriber remove --code <CODE> --client-ip <CLIENT_IP> --user-payer <USER_PAYER>
--code <CODE>: Código ou chave pública do grupo multicast do qual remover a permissão do assinante--client-ip <CLIENT_IP>: Endereço IP do cliente no formato IPv4--user-payer <USER_PAYER>: Chave pública do assinante ou 'me' para o pagador atual
Listando a lista de permissão de assinantes de um grupo
Para listar todos os assinantes na lista de permissão de um grupo multicast específico, use:
doublezero multicast group allowlist subscriber list --code <CODE>
--code <CODE>: O código do grupo multicast cuja lista de permissão de assinantes você deseja visualizar.
Exemplo:
doublezero multicast group allowlist subscriber list --code mg01
Saída de exemplo:
account | multicast_group | client_ip | user_payer
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 186.233.185.50 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 206.189.166.187 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 164.92.244.134 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 204.74.232.130 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 161.35.58.190 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
8ZmH3bx4k1JNYLyEviNAsCFxRoDoG3Y4ntVCUxu24fUF | mg01 | 159.223.46.72 | DZfHfcCXTLwgZeCRKQ1FL1UuwAwFAZM93g86NMYpfYan
Este comando exibe todos os assinantes atualmente autorizados a se conectar ao grupo especificado, incluindo sua conta, código do grupo, IP do cliente e pagador do usuário.
Para mais informações sobre como conectar e usar multicast, consulte Outra Conexão Multicast.