<- Толстоевский

Yggdrasil — практическое применение

В гостевой книге просили рассказать о практическом опыте применения оверлейной сети Yggdrasil, которую я несколько раз упоминал в положительном ключе и коей пользуюсь на постоянной основе. Итак, исполняю.

Начнём с того, что я в силу своей склонности к упрощению частенько использую технологии не самым правильным и безопасным способом, Иггдрасиль не стал исключением (так что если вы расскажете об этом товарищу Acetone, он, возможно, будет меня ругать нехорошими словами и будет, в целом, прав). Суть "неправильности" вот в чём: Иггдрасиль умеет помимо прочего строить внутренние туннели, сиречь полноценные vpn со внутренней ipv4-адресацией и в моём варианте использования (для обеспечения связности разным географически удалённых систем — телефона, виртуалок, ноутбуков и десктопа) именно этот вариант был бы правильным и каноничным. И я даже пользовался им какое-то время, но он требует дополнительных телодвижений при настройке или, упаси Ктулху, миграции/замены системы. Потому я решил упростить, воспользовавшись опять же встроенными возможностями сети. Об этом чуть ниже.

Статья в HowtoYgg про туннелирование трафика.

По ссылке выше - "как делать правильно". А теперь буду учить плохому.

Каждый узел Yggdrasil помимо основного адреса из подсети 0200::/7 получает также отдельную подсеть вида 300::/64. Как следствие, адресов для внутренней адресации у каждого море, и именно их я использую. "Неправильность" заключается в том, что эти адреса доступны извне (чем многие, включая меня, пользуются, размещая на этих более коротких и красивых адресах публичные сервисы) и в теории к ним можно подключиться (вот только их ещё узнать надо...), что делает размещение на них чего-то приватного и незапароленного опасным. Но в моём случае это не страшно — мне-то просто нужно обеспечить беспроблемный доступ между устройствами во всех направлениях.

Узнать свою подсеть можно утилитой yggdrasilctl (пример из той же вики HowtoYgg):

# yggdrasilctl getSelf

Build name: yggdrasil
Build version: 0.3.14
IPv6 address: 205:1483:f4dc:5870:b4d6:c309:1d51:aace
IPv6 subnet: 305:1483:f4dc:5870::/64
Coords: [1 13 10 167 6]

После этого я просто назначил каждому устройству дополнительный айпишник из IPv6 subnet и вколотил их в файл hosts на каждом девайсе, и собственно, всё. После этого стало можно без дополнительных усилий, зайти, например, на телефон по ftp без подключения его к домашнему Wi-Fi или дополнительной vpn. В итоге имеем все плюсы обычной vpn (шифрование трафика между устройствами, связность устройств независимо от местоположения) и бонусом доступ к ресурсам внутри Yggdrasil.

Yggdrasil для Andriod