Lançamento do Yggdrasil 0.5, implementação de uma rede privada que opera sobre a Internet

Após mais de dois anos de desenvolvimento, foi lançado o versão de referência do protocolo Yggdrasil 0.5, que permite implantar uma rede privada IPv6 descentralizada em cima de uma rede global comum, para proteção da privacidade, utilizando criptografia de ponta a ponta. Na rede Yggdrasil, quaisquer aplicativos existentes que suportem IPv6 podem ser utilizados. A implementação é escrita em Go e distribuída sob a licença LGPLv3. São suportadas as plataformas Linux, OpenWRT, Windows, macOS, FreeBSD, OpenBSD, VyOS e Ubiquiti EdgeRouter.

Yggdrasil desenvolve um novo conceito de roteamento para criar uma rede descentralizada global, onde os nós podem se conectar diretamente entre si em uma rede mesh (por exemplo, via Wi-Fi ou Bluetooth), bem como interagir sobre redes IPv6 ou IPv4 existentes (rede sobre rede). A característica distintiva do Yggdrasil é a auto-organização de seu funcionamento, que não requer configuração explícita de roteamento — as informações sobre os caminhos são calculadas com base na localização do nó na rede em relação a outros nós. Os dispositivos são endereçados por um endereço IPv6 comum, que não muda quando o nó se desloca (o Yggdrasil utiliza um intervalo de endereços não utilizados 0200::/7).

Toda a rede Yggdrasil é vista não como uma união de sub-redes dispersas, mas como uma única árvore estruturada, onde existe uma "raiz" e cada nó tem um pai e um ou mais descendentes. Essa estrutura em árvore permite construir um caminho para o nó de destino, em relação ao nó de origem, utilizando um mecanismo de "localizador", que determina o caminho otimizado para o nó a partir da raiz. As informações sobre a árvore são distribuídas entre os nós e não são armazenadas de forma centralizada.

Para proteger contra a análise de tráfego na rede, é utilizada criptografia de ponta a ponta (os nós de trânsito não podem determinar o conteúdo), mas a anonimidade não é garantida — ao se conectar pela internet, os nós ponto a ponto com os quais há interação direta podem determinar o endereço IP real, portanto, para anonimidade, é sugerido conectar os nós através do Tor ou I2P.

Apesar de o projeto estar na fase de desenvolvimento alfa, ele já é suficientemente estável para uso diário, embora não garanta compatibilidade reversa entre as versões. O Yggdrasil conta com um conjunto de serviços mantidos pela comunidade, incluindo uma plataforma para hospedagem de contêineres Linux para hospedagem seus sites, o mecanismo de busca YaCy, o servidor de comunicação Matrix, servidor IRC, DNS, sistema VoIP, tracker BitTorrent, mapa de pontos de conexão, gateway para IPFS e proxy para acessar as redes Tor, I2P e clearnet.

Na nova versão:

  • Foi adicionada a possibilidade de autenticação da conexão com peers utilizando uma senha. A senha é definida através do parâmetro "password=", por exemplo, "tls://a.b.c.d:12345?password=123456abcdef".
  • Foi acrescentada a possibilidade de usar o protocolo QUIC, baseado em UDP, para interagir com peers. Para utilizar QUIC, deve-se especificar o esquema URI quic:// nas diretivas Listen e Peers, mas o suporte ao QUIC ainda não foi tão bem testado quanto TCP e TLS.
  • Foi adicionada a opção PrivateKeyPath que permite armazenar a chave privada no formato PEM, separadamente do arquivo de configuração principal. Para exportar a chave para um arquivo separado, pode-se usar a opção "-exportkey".
  • Foi implementado um novo esquema de roteamento, que não é compatível com versões anteriores (nodos com Yggdrasil 0.5 não podem interagir com hosts baseados em Yggdrasil 0.4), mas que resolve a maior parte dos problemas de estabilidade e escalabilidade presentes na versão 0.4, ao mesmo tempo em que reduz significativamente o consumo de memória e diminui o tráfego na ausência de atividade de rede.

    Na nova implementação, para monitorar conexões e nodos, utiliza-se uma estrutura probabilística chamada Filtro de Bloom. A tabela hash distribuída (DHT) não é mais utilizada para a troca de dados sobre roteamento e vinculação de chaves públicas na rede em árvore.

    Para manter a consistência local e reduzir a dependência de rotas para os nodos raiz, os nós agora transmitem separadamente informações sobre cada link, que são monitoradas em estruturas CRDT. Em vez de roteamento de origem, utiliza-se roteamento baseado em um algoritmo guloso (as solicitações são direcionadas ao nó vizinho mais próximo).

    Os formatos utilizados na negociação de conexões e envio de multicast foram reestruturados para melhor escalabilidade. O código de processamento de conexões foi reformulado para um rastreamento mais confiável do estado dos pares. O rastreamento separado dos intervalos entre reconexões para cada par configurado foi assegurado.

    Para a detecção de falhas, em vez do envio periódico de keepalives isolados, foram utilizadas mensagens de confirmação de recebimento de tráfego, que permitem eliminar o tráfego durante a inatividade na rede (o que, por exemplo, reduz o consumo de energia em dispositivos móveis ao eliminar tráfego ocioso).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster