# Yggdrasil - мережа з децентралізованою маршрутизацією Yggdrasil - експериментальний протокол для побудови само-організованої локальної мережі з шифруванням трафіку та підтримкою оверлейного підключення через Інтернет. В своїй основі використовує приватний ключ для генерації постійних псевдо-адрес IPv6 в діапазоні 0200::/7. Має різні сфери застосування, зокрема: * автоматизована побудова локальних мереж * маскування IP (як транспорт I2P) * обхід блокувань та обмежень віртуальної адресації NAT Останній варіант корисний для організації: * відео-спостереження без наявності виділеної адреси * розгортання домашнього веб-серверу * віддаленого керування інфраструктурою підприємства тощо Завдяки простоті встановлення та здатності до саморозгортання підключень, здобув широку популярність зокрема серед користувачів CJDNS. ## Встановлення Yggdrasil написаний на Go, початковий код доступний в репозиторії на GitHub: => https://github.com/yggdrasil-network/yggdrasil-go В системах Debian, бінарні збірки можуть бути встановлені з репозиторію командою: ``` 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: ``` /etc/yggdrasil/yggdrasil.conf IfName: ygg0 ``` Після цього можна перезапустити сервіс, щоб застосувати зміни: ``` systemctl restart yggdrasil ``` Якщо все зроблено правильно, можна спробувати відкрити URL з каталогу сервісів: => 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 можна вказувати пароль в параметрі password: * 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 Орієнтовна мапа вузлів ## Дивіться також => yggmail-messenger-with-email-protocol.gmi Yggmail - месенджер з поштовим інтерфейсом