Что: e9cb4aa824f5675c18230ece4f384a463cc70439 Когда: 2022-01-16 16:14:55+03:00 ------------------------------------------------------------------------ Темы: nncp ------------------------------------------------------------------------ NNCP в Yggdrasil сети http://www.nncpgo.org/Yggdrasil.html https://yggdrasil-network.github.io/ https://github.com/neilalexander/yggmail NNCP теперь может выступать в качестве клиента сети Yggdrasil! Не используя никакого стороннего софта, не настраивая сторонних демонов. Идея, как и зачатки кода, полностью взяты из yggmail. nncp-daemon может работать в качестве listener ноды принимающей соединения от других участников, осуществляющей всю маршрутизацию и вообще работу. nncp-call* могут подключаться к любой Yggdrasil ноде и связываться с NNCP адресами. Из Yggdrasil используется только возможность отправки/приёма пакетов: никаких сетевых интерфейсов или вообще знаний об адресах иметь не нужно. Публичный ключ хоста, магическим образом становится IPv6 адресом для пакетов μTP транспортного протокола, достигая целевой ноды без вопросов туннелирования и прочего. Что приятно тем, что никакой возни с TUN интерфейсами не нужно вообще, где есть проблемы с не самыми свежими версиями ОС (883b33f7085a9dfd04fca75b056d0e0b4c3fdf73). Почему μTP? Я взял из yggmail-а. Видимо, проще на Go нет ничего другого для реализации транспортного протокола поверх пакетного сокета. Реализации TCP на pure Go я не видел. $ nncp-cfgnew -yggdrasl Public: c7274667c6... Private: a87d6f98d... $ cat >> $NNCPCFG < для реализации транспортного протокола поверх пакетного сокета Может быть TCP из gvisor.dev/gvisor/pkg/tcpip ? Примеры использования можно посмотреть вот тут: https://git.zx2c4.com/wireguard-go/tree/tun/netstack/tun.go#n101 https://git.zx2c4.com/wireguard-go/tree/tun/netstack/examples/http_client.go ------------------------------------------------------------------------ комментарий 1: From: Sergey Matveev Date: 2022-01-17 18:09:55Z *** kmeaw [2022-01-17 00:03]: >Может быть TCP из gvisor.dev/gvisor/pkg/tcpip ? Спасибо большое за наводку! Обязательно посмотрю можно ли им заменим μTP. ------------------------------------------------------------------------ комментарий 2: From: Sergey Matveev Date: 2022-01-18 15:51:06Z *** kmeaw [2022-01-17 00:03]: >Может быть TCP из gvisor.dev/gvisor/pkg/tcpip ? Не столь тривиально как μTP (что не удивительно, ведь это же типа весь сетевой стэк), но удалось по TCP связаться поверх PacketConn интерфейса Yggdrasil. Так что наверное перейду на него, хотя ещё и замеры производительности надо сделать (ну чтобы оно вдруг не регрессировало сильно). ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0