An experiment in scalable routing as an encrypted IPv6 overlay network
Find a file
Escanor 20d8080b0c
README_PT-BR.md
README.md in Brazilian Portuguese
2020-04-14 17:40:29 +00:00
.circleci Use Go 1.14.1 to build, update wireguard package references 2020-03-25 22:46:01 +00:00
cmd Merge branch 'develop' into misc 2020-01-05 23:04:51 +00:00
contrib check if an error was returned by Core._init and return it if so 2020-03-31 18:14:20 -05:00
doc Fix typos 2019-11-29 11:45:02 +02:00
misc Fix typos 2019-11-29 11:45:02 +02:00
src check if an error was returned by Core._init and return it if so 2020-03-31 18:14:20 -05:00
.gitmodules Update README.md 2019-03-13 20:06:02 +00:00
appveyor.yml Clean up appveyor.yml 2019-11-28 15:17:49 +00:00
build Don't preserve LDFLAGS from environment after all since they are probably go-specific 2020-01-06 19:37:24 +00:00
CHANGELOG.md Update changelog 2020-03-28 20:46:00 +00:00
clean Use #!/bin/sh for clean script 2018-12-26 14:26:29 +00:00
Dockerfile Creating Dockerfile to / 2018-12-03 06:06:58 +02:00
go.mod Use Go 1.14.1 to build, update wireguard package references 2020-03-25 22:46:01 +00:00
go.sum Use Go 1.14.1 to build, update wireguard package references 2020-03-25 22:46:01 +00:00
LICENSE Rename LICENSE.md to LICENSE 2018-12-03 06:46:05 +02:00
README.md README_PT-BR.md 2020-04-14 17:40:29 +00:00

Yggdrasil

CircleCI

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
  • macOS
    • Pacotes.pkg são criados pelo CI
  • 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:

  1. Instale Go (requer Go 1.13 ou posterior)
  2. Clonar este repositório
  3. 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.

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.