# Yggdrasil - mereža z decentralizovanym routyngom

Yggdrasil - eksperymental'nyj protokol dlja pobudovy samo-organizovanoji lokal'noji mereži z šyfruvannjam trafiku ta pidtrymkoju overlejnogo pidključennja čerez Internet.

V svojij osnovi vykorystovuje pryvatnyj ključ dlja generaciji postijnyh psevdo-adres IPv6 v diapazoni 0200::/7.

Maje rizni sfery zastosuvannja, zokrema:

* avtomatyzovana pobudova lokal'nyh merež
* maskuvannja IP (jak transport I2P)
* obhid blokuvan' ta obmežen' virtual'noji adresaciji NAT

Ostannij variant korysnyj dlja organizaciji:

* video-sposterežennja bez najavnosti vydilenoji adresy
* rozgortannja domašnjogo veb-serveru
* viddalenogo keruvannja infrastrukturoju pidpryjemstva toščo

Zavdjaky prostoti vstanovlennja ta zdatnosti do samorozgortannja pidključen', zdobuv šyroku populjarnist' zokrema sered korystuvačiv CJDNS.

## Vstanovlennja

Yggdrasil napysanyj na Go, počatkovyj kod dostupnyj v repozytoriji na GitHub:

=> https://github.com/yggdrasil-network/yggdrasil-go

V systemah Debian, binarni zbirky možut' buty vstanovleni z repozytoriju komandoju:

```
apt install yggdrasil
```

Takož dostupni oficijni zbirky dlja kožnoji versiji:

```
wget https://github.com/yggdrasil-network/yggdrasil-go/releases/download/v0.5.5/yggdrasil-0.5.5-amd64.deb
dpkg -i yggdrasil-0.5.5-amd64.deb
```

## Nalaštuvannja

U razi pidključennja do mereži Yggdrasil čerez Internet, neobhidno dodaty do fajlu konfiguraciji ščonajmenše odyn geografično blyz'kyj publičnyj vuzol:

=> https://publicpeers.neilalexander.dev

``` /etc/yggdrasil/yggdrasil.conf
Peers: [
    tls://xx.xx.xx.xx:xxxx
]
```

Takož, zručno vkazaty nazvu dlja interfejsu Yggdrasil - ščob potim ne plutaty jogo napryklad z VPN:

``` /etc/yggdrasil/yggdrasil.conf
IfName: ygg0
```

Pislja cjogo možna perezapustyty servis, ščob zastosuvaty zminy:

```
systemctl restart yggdrasil
```

Jakščo vse zrobleno pravyl'no, možna sprobuvaty vidkryty URL z katalogu servisiv:

=> https://yggdrasil-network.github.io/services.html

## Dodatkovo

Pereviryty najavnist' novogo interfejsu možna komandoju:

```
ifconfig
```

Otrymaty vlasnu adresu:

```
yggdrasilctl getself
```

Možna stvorjuvaty masky pidmerež dlja okremyh servisiv - vebsajty, pošta, ta inše:

```
ifconfig lo inet6 add 3xx:xxxx:xxxx:xxxx::xx
```

* de 3xx:xxxx:xxxx:xxxx - adresa z yggdrasilctl getself

Jakščo pidključennja vidbuvajet'sja čerez vlasnyj publičnyj vuzol, na njomu vidkryvajet'sja dovil'nyj port.

U razi neobhidnosti obmežennja dostupu dlja nevidomyh dynamičnyh adres, počynajučy z versiji 0.5.0 možna vkazuvaty parol' v parametri password:

* tls://[::]:12345?password=123456abcdef - server
* tls://a.b.c.d:12345?password=123456abcdef - klijent

Počatkivcjam važlyvo vstanovyty merežnyj ekran, napryklad ufw dlja iptables, inakše taki služby jak pryntery abo lokal'ni veb-servery dlja rozrobky (ščo standartno prosluhovujut' 0.0.0.0) možut' staty dostupnymy dlja inšyh učasnykiv lokal'noji mereži.

Z cijeji točky zoru, bude zručnym organizacija okremogo routeru napryklad na bazi OpenWRT.

Važlyvo rozumity, ščo Yggdrasil ne maje na meti zahyst vid identyfikaciji korystuvača v mereži, porivnjujučy z anonimajzeramy Tor čy I2P.

Inodi, može vykorystovuvatys' jak dodatkovyj kanal, ale pohodžennja jogo paketiv može buty vstanovleno, jakščo ne vykorystovujut'sja taki zasoby maskuvannja trafiku jak Shadowsocks ta inši.

Yggdrasil - perš za vse al'ternatyvnyj maršrutyzator, jakyj dozvoljaje avtomatyčno stvorjuvaty permanentni IPv6 adresy v seredovyšči IPv4 ta je korysnym instrumentom dlja švydkogo rozgortannja infrastruktury lokal'nyh drotovyh, lazernyh ta radio merež.

## Posylannja

=> https://yggdrasil-network.github.io Oficijna storinka
=> https://github.com/yggdrasil-network Proekt na GitHub
=> https://yggdrasil-map.cwinfo.net Orijentovna mapa vuzliv