Construção de uma rede Meshwork¶
A configuração do Meshwork resume-se a garantir que cada nó conheça o seu próprio nome e domínio e tenha pelo menos um peer acessível. A partir daí, o domínio constrói sozinho as ligações restantes. Todas as ações são realizadas no painel de administração web; alterar as configurações do Meshwork requer a função de administrador. Os campos exatos e a sua localização são descritos na seção Interface web.
Requisitos e acessibilidade¶
Acessibilidade de rede. Um nó deve conseguir estabelecer uma conexão TCP com o servidor web administrativo de um peer. A porta é obtida do endereço do peer («host:porta») ou da porta pública que o peer comunica sobre si mesmo (Identidade do nó) — é sempre a porta na qual o servidor web dele está configurado e, se o peer tiver o HTTPS habilitado, a sua porta TLS. Os valores para uma instalação nova estão indicados em Configurações iniciais; a porta necessária de um peer deve estar aberta a partir dos outros nós.
HTTPS para a descoberta automática pela internet. Se os nós do domínio descobertos automaticamente se comunicam por endereços públicos (de internet), precisam de estabelecer entre si uma conexão segura (HTTPS) para confirmar com segurança a autenticidade mútua pela rede aberta. Por isso, ative o HTTPS pelo menos nos nós através dos quais ocorre a descoberta. A ativação do HTTPS entra em vigor após um reinício do servidor. Se os nós forem acessíveis apenas por endereços públicos e nenhum usar HTTPS, as ligações diretas descobertas automaticamente não são autenticadas: o nó continua visível (por retransmissão a partir de um peer), mas a sua ligação direta é assinalada com um motivo (ver Mapa da rede e catálogo de recursos).
Rede local — HTTPS não é necessário. Se os nós do domínio se comunicam por endereços privados de uma única rede confiável (
10.x.x.x,172.16–31.x.x,192.168.x.x, bem como127.x.x.xe169.254.x.x), não é necessária uma conexão segura para a descoberta automática — os nós confirmam a autenticidade também por HTTP comum. Um nó é reconhecido como local pelo seu endereço IP, por isso, numa rede local, defina os peers precisamente por endereços IP e não por nomes de domínio. O HTTPS pode, ainda assim, ser ativado — será usado se estiver disponível.Uma ligação explícita funciona também por HTTP — a exigência de HTTPS não se aplica a ela em nenhum caso.
O nome e o segredo são obrigatórios. Um nó participa na rede apenas se tiver definidos um nome e um segredo de assinatura. Sem nome ou sem segredo, um nó não participa no Meshwork.
Restrições dos nomes. O nome de um nó tem de 2 a 16 caracteres, o nome de um domínio não excede 16 caracteres; são permitidos letras latinas, dígitos e os caracteres
_,-,.. Espaços e outros caracteres não são admitidos (por exemplo, o domínio «Alex Home» não pode ser definido — useAlex_Home).
Identidade do nó¶
Nas configurações do servidor define-se como o nó se apresenta na rede:
Nome do nó — um nome curto e único pelo qual os outros reconhecem o nó. Um nome vazio significa que o nó não participa na rede.
Nota — uma etiqueta arbitrária do nó (por exemplo, «Moscovo, rack 3»), exibida no painel de administração por conveniência e sem efeito no funcionamento da rede.
Domínio — os nós com o mesmo domínio encontram-se automaticamente, partilham um catálogo de recursos comum e replicam os alertas. Um valor vazio desativa a descoberta automática (o nó só pode funcionar pela lista explícita de peers).
Portas públicas (HTTP e HTTPS) — as portas que o nó comunica aos peers para a acessibilidade inversa sob tradução de endereços (NAT). Se não forem definidas, o nó comunica as suas próprias portas do servidor web.
Domínios adicionais (modo super-node) — o nó participa na descoberta automática de cada domínio listado em igualdade de condições com o principal. Os recursos permanecem isolados por domínio — o nó não os mistura.
Peers e segredos¶
Aqui define-se com que peers o nó mantém uma ligação direta e como as partes se verificam mutuamente. As solicitações entre nós são assinadas com um segredo partilhado, por isso, sem segredos coincidentes não se estabelece nenhuma ligação. O comprimento de cada segredo é de 16 a 128 caracteres.
A lista de peers é constituída por entradas do tipo «endereço — nome — segredo»:
Endereço de um peer — o «host:porta» do seu painel de administração. Uma entrada pode não ter endereço: tal peer nunca é chamado por este nó (só ele próprio se liga) e é identificado por nome e segredo — isto usa-se para um nó atrás de NAT que só consegue iniciar uma conexão.
Nome de um peer deve coincidir exatamente com o nome definido no próprio peer.
Segredo partilhado da ligação com este peer deve ser o mesmo em ambas as extremidades.
Além da lista de peers, um nó possui o seu próprio segredo de assinatura: com ele o nó assina as suas solicitações de saída. Um peer verifica a assinatura com o segredo que guarda para esse nó, por isso o próprio segredo do nó deve coincidir com o segredo registado sobre ele em cada peer.
Nota
Regra prática: para um site simples, defina um único segredo partilhado e use-o tanto como próprio segredo de assinatura em cada nó como segredo em cada entrada de peer — assim qualquer par de nós autentica-se da mesma forma. Para uma separação mais rigorosa, pode manter um segredo distinto por ligação.
Início rápido¶
Variante A. Dois nós diretamente (ligação explícita)¶
O Meshwork mais simples são dois servidores conectados manualmente.
Em cada nó, defina um nome curto único (por exemplo,
node1enode2).Em cada nó, adicione uma entrada de peer: o endereço do seu painel de administração, o seu nome e o segredo partilhado.
Em cada nó, defina o próprio segredo de assinatura. O mais simples é manter um único segredo partilhado para ambos os nós.
Abra o mapa da rede no painel de administração. Em poucos segundos, ambos os nós veem-se mutuamente no estado «online».
Para isto não é necessário definir um domínio, mas sem um domínio comum obterá apenas a visibilidade mútua dos nós. O catálogo de recursos comum e a replicação de alertas funcionam apenas entre nós com o mesmo domínio — se precisar deles, defina um domínio comum para os nós (variante B).
Variante B. Um domínio com descoberta automática¶
Quando há mais de dois nós, é mais cómodo atribuir-lhes um domínio comum do que listar cada ligação manualmente.
Em cada nó, defina um nome único e o domínio comum do site.
Se os nós do domínio se comunicam pela internet (por endereços públicos), ative o HTTPS em pelo menos um ou dois nós do domínio e reinicie-os (ver Requisitos e acessibilidade). Numa rede local, este passo pode ser ignorado.
Ligue os nós através de um «ponto de entrada»: em cada nó, indique pelo menos um peer já operacional (endereço, nome, segredo partilhado), como na variante A. O nó encontrará sozinho os restantes nós do domínio.
Abra o mapa da rede. Em poucos segundos aparecerão nele todos os nós do domínio: os indicados explicitamente como permanentes, os encontrados automaticamente como autodescobertos.
Nós atrás de NAT¶
Um nó numa rede privada, inalcançável diretamente do exterior, pode participar plenamente na rede como iniciador. Ele próprio estabelece uma conexão com um peer acessível e, por esta única conexão, os dados circulam em ambos os sentidos — o nó anuncia-se e recebe informações sobre os outros. Para tal nó basta indicar pelo menos um peer acessível.
As informações sobre um nó NAT propagam-se automaticamente pelo domínio: um peer que está online com ele retransmite o seu estado aos outros. Nos peers distantes, tal nó será mostrado como recebido por retransmissão, mas no estado «online».
Para que um nó atrás de NAT seja acessível também para conexões de entrada (por exemplo, para servir de ponto de entrada do domínio), configure a publicação da porta pública (ver Identidade do nó) e encaminhe esta porta no roteador/firewall para o servidor web administrativo do nó. Do lado dos peers, tal nó é mantido com uma entrada «nome + segredo sem endereço»: o peer não tentará em vão ligar ao endereço privado, mas identificará o nó por nome e segredo quando este se conectar por si próprio.
Problemas comuns¶
Os nós não se veem. Verifique: ambos têm um nome de nó definido; cada um tem um segredo de assinatura e ele coincide com o registado sobre ele no peer; o endereço do peer está correto e a sua porta de administração está aberta a partir do outro nó.
Um peer está no estado «offline». O nó excedeu a janela de espera: verifique a rede e a operacionalidade do seu servidor web. Para um nó atrás de NAT, certifique-se de que ele próprio inicia a conexão com um peer acessível ou de que estão configurados a publicação e o encaminhamento de porta.
Um peer autodescoberto está assinalado com um motivo, a ligação direta não funciona. No domínio não é possível confirmar a autenticidade dos nós. Se se comunicam pela internet, ative o HTTPS em pelo menos um nó do domínio e reinicie-o; numa rede local, verifique que os peers estão indicados por endereços IP e não por nomes de domínio. Por uma ligação explícita (nós permanentes) a ligação funciona também sem HTTPS.
Indicação de NAT falsa. Se os nós estão indicados por nomes de domínio e não por IP, a indicação de NAT pode não ser determinada a partir do endereço — isto não interfere no funcionamento. Para um diagnóstico de NAT fiável, use endereços IP.
A mudança de domínio «reiniciou» o mapa. Alterar o domínio ou o conjunto de domínios adicionais reconstrói a pertença: as ligações autodescobertas e o catálogo comum são temporariamente reiniciados e reconstruídos. Isto é normal.