4.6 KiB
Yggdrasil
Introdução
O Yggdrasil é uma implementação inicial de uma rede IPv6 totalmente criptografada de ponta a ponta. É leve, auto-organizado, é suportado em várias plataformas e permite que praticamente qualquer aplicativo compatível com IPv6 se comunique de forma segura com outros nós do Yggdrasil. O Yggdrasil não exige que você tenha conectividade com a Internet IPv6 - ele também funciona com IPv4.
Embora Yggdrasil compartilhe muitas semelhanças com cjdns, emprega um algoritmo de roteamento diferente com base em uma árvore de abrangência globalmente acordada e roteamento ganancioso em um espaço métrico, e visa implementar algumas novas técnicas de roteamento de contrapressão local. Em teoria, o Yggdrasil deve escalar bem em redes com topologias semelhantes à Internet.
Plataformas Suportadas
Apoiamos ativamente as seguintes plataformas, e pacotes estão disponíveis para algumas das opções abaixo:
- Linux
- Os pacotes
.deb
e.rpm
são criados pelo CI para distribuições baseadas no Debian e Red Hat - Pacotes Void e Arch também disponíveis em seus respectivos repositórios
- Os pacotes
- macOS
- Pacotes
.pkg
são criados pelo CI
- Pacotes
- Ubiquiti EdgeOS
.deb
Pacotes Vyatta são criados pelo CI
- Windows
- FreeBSD
- OpenBSD
- OpenWrt
Consulte nossas páginas Platforms para obter mais informações específicas sobre cada uma de nossas plataformas suportadas, incluindo etapas de instalação e advertências.
Você também pode encontrar outros wrappers, scripts ou ferramentas específicos da plataforma na pasta contrib
.
Construção
Se você deseja construir a partir do código-fonte, em vez de instalar um dos pacotes:
- Instale Go (requer Go 1.13 ou posterior)
- Clonar este repositório
- Execute
./build
Observe que você pode compilar de forma cruzada para outras plataformas e arquiteturas especificando as variáveis de ambiente GOOS
and GOARCH
, por exemplo GOOS=windows ./build
ou GOOS=linux GOARCH=mipsle ./build
.
Executando
Gerar configuração
Para gerar configuração estática, gere um arquivo HJSON (compatível com humanos, completo com comentários):
./yggdrasil -genconf > /path/to/yggdrasil.conf
... ou gere um arquivo JSON simples (fácil de manipular programaticamente):
./yggdrasil -genconf -json > /path/to/yggdrasil.conf
Você precisará editar o arquivo yggdrasil.conf
para adicionar ou remover pares, modificar outras configurações, como endereços de escuta ou endereços multicast, etc.
Execute o Yggdrasil
Para executar com a configuração estática gerada:
./yggdrasil -useconffile /path/to/yggdrasil.conf
Para executar no modo de configuração automática (que usará padrões sãos e chaves aleatórias em cada inicialização, em vez de usar um arquivo de configuração estática):
./yggdrasil -autoconf
Você provavelmente precisará executar o Yggdrasil como um usuário privilegiado ou em sudo
,
a menos que você tenha permissão para criar adaptadores TUN/TAP. No Linux, isso pode ser feito
dando ao binário Yggdrasil a capacidade CAP_NET_ADMIN
.
Documentação
A documentação está disponível em nosso GitHub
Pages ou no submódulo base
repositório dentro de doc / yggdrasil-network.github.io
.
- Opções do arquivo de configuração
- Documentação específica da plataforma
- Perguntas frequentes
- Documentação da API do administrador
- Version changelog
Comunidade
Sinta-se livre para se juntar a nós em nosso canal Matrix em #yggdrasil:matrix.org
ou no canal de IRC #yggdrasil
no Freenode.
Licença
Este código é lançado sob os termos do LGPLv3, mas com uma exceção adicional que foi descaradamente retirada de [godeb] (https://github.com/niemeyer/godeb). Sob certas circunstâncias, essa exceção permite a distribuição de binários que estão (estaticamente ou dinamicamente) vinculados a esse código, sem exigir a distribuição do Minimal Corresponding Source ou Minimal Application Code. Para mais detalhes, consulte: LICENSE.