#Yggdrasil #development #experimental
**netstack ветка в Yggdrasil**
https://github.com/yggdrasil-network/yggdrasil-go/commits/netstack
Разработчик Yggdrasil Нил Александр создал экспериментальную netstack ветку в репозитории.
Основной ее смысл - отказ от использования туннельного интерфейса в системе. Вместо этого, весь сетевой стек реализован внутри самой программы.
Для доступа к внутрисетевым ресурсам используется Socks5 прокси, есть так же возможность расшаривать отдельные TCP порты со своего хоста в Yggdrasil.
Преимущества такого подхода:
- Программа работает полностью в userspace, меньше переключений контекста и выше производительность
- Не требуется повышенных привелегий
- В сеть выставляются только указанные порты, а не весь хост, что лучше для безопасности
В netstack поддерживается специальная доменная система в формате `<ПУБЛИЧНЫЙ_КЛЮЧ>.pk.ygg`.
Например, можно зайти на сайт HowToYgg через прокси по этому URL `http://000000002ae375e65f5470ee29eb563a0ada764c7a3f1efaa5f5a4af91dad1cb.pk.ygg/`
Собирается эта экспериментальная ветка так:
`git fetch origin netstack && git checkout netstack`
`go build -o yggstack cmd/yggstack/main.go`
Для настроек socks-прокси и расшаривания TCP портов используются ключи командной строки:
`./yggstack -useconffile=/etc/yggdrasil.conf -socks :1080 -exposetcp 80:127.0.0.1:8080`
@mo костыль для однопальцевых, где нельзя либо избыточно просто взять и открыть /dev/tun
@popura а разве использование стандартного ipv6 и как следствие нормальная работа без всяких сокспроксей, это была не фича...?