initial commit

This commit is contained in:
postscriptum 2025-11-01 14:28:20 +02:00
commit d4994cde4c
61 changed files with 7044 additions and 0 deletions

View file

@ -0,0 +1,81 @@
# Yggdrasil - мережа з децентралізованим роутингом
[Yggdrasil](https://yggdrasil-network.github.io) - експериментальний протокол для побудови само-організованої локальної мережі з шифруванням трафіку та підтримкою оверлейного підключення через Інтернет.
В своїй основі використовує приватний ключ для генерації постійних псевдо-адрес IPv6 в діапазоні `0200::/7`
Має різні сфери застосування, зокрема: автоматизована побудова локальних мереж, маскування IP (як транспорт I2P), обхід блокувань та обмежень віртуальної адресації NAT (наприклад, для організації відео-спостереження без наявності виділеної адреси, розгортання домашнього веб-серверу, віддаленого керування інфраструктурою підприємства тощо). Завдяки простоті встановлення та здатності до саморозгортання підключень, здобув широку популярність зокрема серед користувачів CJDNS.
## Встановлення
Yggdrasil написаний на Go, початковий код доступний в репозиторії на [GitHub](https://github.com/yggdrasil-network/yggdrasil-go).
Бінарні збірки можуть бути встановлені зі штатного репозиторію командою:
```
apt install yggdrasil
```
або використовуючи останню збірку з релізу:
```
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
```
## Налаштування
У разі підключення до мережі Yggdrasil через Інтернет, необхідно додати до файлу конфігурації щонайменше один географічно близький [публічний вузол](https://publicpeers.neilalexander.dev/):
```
# /etc/yggdrasil/yggdrasil.conf
Peers: [
tls://xx.xx.xx.xx:xxxx
]
```
Також, зручно вказати назву для інтерфейсу Yggdrasil - щоб потім не плутати його наприклад з VPN:
```
IfName: ygg0
```
Після цього можна перезапустити сервіс, щоб застосувати зміни:
```
systemctl restart yggdrasil
```
Якщо все зроблено правильно, можна спробувати відкрити будь яку з адрес в [каталозі сервісів](https://yggdrasil-network.github.io/services.html).
## Додатково
Перевірити наявність нового інтерфейсу можна командою:
```
ifconfig
```
Отримати власну адресу:
```
yggdrasilctl getself
```
Можна легко створювати маски підмереж для окремих сервісів - стріми, вебсайти, пошта, та інше:
```
ifconfig lo inet6 add 3xx:xxxx:xxxx:xxxx::xx
```
* де `3xx:xxxx:xxxx:xxxx` - адреса з `yggdrasilctl getself`
Якщо підключення відбувається через власний публічний вузол, на ньому відкривається довільний порт.
У разі необхідності обмеження доступу для невідомих динамічних адрес, починаючи з версії 0.5.0 можна вказувати пароль:
* `tls://[::]:12345?password=123456abcdef` - сервер
* `tls://a.b.c.d:12345?password=123456abcdef` - клієнт
Початківцям важливо встановити мережний екран, наприклад `ufw` для `iptables`, інакше такі служби як принтери або локальні веб-сервери для розробки (що стандартно прослуховують `0.0.0.0`) можуть стати доступними для інших учасників локальної мережі. З цієї точки зору, буде зручним організація окремого роутеру наприклад на базі OpenWRT.
Важливо розуміти, що Yggdrasil не має на меті захист від ідентифікації користувача в мережі, порівнюючи з анонімайзерами Tor чи I2P. Іноді, може використовуватись як додатковий канал, але походження його пакетів може бути встановлено, якщо не використовуються такі засоби маскування трафіку як Shadowsocks та інші.
Yggdrasil - перш за все альтернативний маршрутизатор, який дозволяє автоматично створювати перманентні IPv6 адреси в середовищі IPv4 та є корисним інструментом для швидкого розгортання інфраструктури локальних дротових, лазерних та радіо мереж.
### Посилання
* https://yggdrasil-network.github.io - офіційна сторінка
* https://github.com/yggdrasil-network - проект на GitHub
* https://yggdrasil-map.cwinfo.net - орієнтовна мапа вузлів