Yggdrasil

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 07 апр 2023, 17:44

le_ писал(а):
07 апр 2023, 17:36
Неблагодарное это дело - делать проксирование подобных ресурсов.
Верно, трудно с этим не согласиться ;-)
Но это связано не только (или не столько?) с проксированием, столько с тем, что ещё не проделаны настройки Apache2 на этот новый виртуальный хост.

le_
Писатель
Сообщения: 24
Зарегистрирован: 07 апр 2023, 17:26
Контактная информация:

Yggdrasil

Непрочитанное сообщение le_ » 07 апр 2023, 17:49

Olej писал(а):
07 апр 2023, 17:44
Но это связано не только (или не столько?) с проксированием, столько с тем, что ещё не проделаны настройки Apache2 на этот новый виртуальный хост.
Запросы к файлам (картинкам), которые вставленны как ссылки на сторонние ресурсы, всё равно будет весьма затруднительно корректно проксировать, т.к., всех вариантов их размещения не предусмотришь...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 08 апр 2023, 16:30

Olej писал(а):
05 апр 2023, 13:53
одна из возможных реализаций Mesh сети
Продолжаю подбирать толковые, внятные публикации относительно Yggdrasil...

Yggdrasil "на пальцах": Yggdrasil Network: Заря бытовых меш-сетей, или Интернет будущего
16 мар 2021 в 06:36
Адресация в Yggdrasil
Yggdrasil использует адресацию IPv6 с маской сети 200::/7. Адреса из этой подсети не применяются в интернете, поэтому коллизий не возникает. Каждый пользователь также имеет свою подсеть 300::/64, что позволяет назначать на сетевые интерфейсы более короткие адреса, выдавать адреса из этой подсети локальным пользователям дома, а также использовать их для хостинга нескольких ресурсов на разных адресах (например, сайты, все из которых используют порт № 80). Короткий адрес автоматически маршрутизируется на полный адрес из подсети 200::/7, первые 64 бита которого совпадают. Например, адрес [324:9de3:fea4:f6ac::ace] маршрутизируется на узел с полным адресом [224:9de3:fea4:f6ac:6d7c:68f5:6c8e:f9a9]. Адреса из дополнительной подсети пользователя легко распознать по первой тройке в адресе, т.к. в полных адресах всегда используется двойка.
Изображение
Адрес пользователя генерируется при первом запуске программного клиента сети. Чтобы исключить возможность присвоения чужого адреса, адрес IPv6 в Yggdrasil непосредственно образуется от ключа шифрования.
Первый релиз на GitHub датируется 17 февраля 2018 года. Однако по сей день Yggdrasil позиционируется, как «сырой» продукт, бета, и не рекомендуется к использованию в серьезных проектах.
Yggdrasil работает на весьма высоком сетевом уровне (L3), образуя свои туннели поверх обычного TCP/IP. Вся обработка внутрисетевого трафика требует вычислительных ресурсов операционной системы. В первую очередь это связано с криптографией: прежде, чем передать информацию на виртуальный сетевой интерфейс, который будет воспринят операционной системой наравне с обычным трафиком, в службе Yggdrasil производятся криптографические операции. При большом проходящем трафике на слабом железе могут возникать тормоза.

Для работы в локальной сети, т.е. автоматического обнаружения пиров, необходимо включить IPv6 на реальных сетевых интерфейсах компьютера. В случае систем без поддержки IPv6 (например, Windows XP), подключение к Yggdrasil возможно только посредством указания IPv4-адреса публичного пира (адрес может быть локальный).

Сеть масштабируется автоматически: если один из пользователей изолированного сегмента сети пропишет у себя общедоступный публичный пир, весь сегмент окажется частью глобальной сети Yggdrasil.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 08 апр 2023, 17:06

Olej писал(а):
08 апр 2023, 16:30
Продолжаю подбирать толковые, внятные публикации относительно Yggdrasil...
Yggdrasil Network 0.4 — Скачок в развитии защищенной самоорганизующейся сети
4 июл 2021 в 21:56
Релиз Yggdrasil Network 0.4.0 состоялся 04.07.2021.
Заменив клиент сети Yggdrasil 0.3 на новый 0.4, неискушенный пользователь может не заметить разницы: тот же виртуальный сетевой адаптер и адрес IPv6 из диапазона 200::/7; Yggdrasil по прежнему автоматически организует подключение только в пределах локальной сети, а для связи с глобальным сегментом необходимо прописать в конфигурационном файле одного или нескольких локальных узлов адрес публичного пира.
Дальше довольно подробно, более-менее понятно описывается маршрутизация в Yggdrasil (а это и есть главная проблема mesh-сети).


Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 09 апр 2023, 15:06

Время ожидания соединения истекло

Код: Выделить всё

olej@R420:~$ nslookup howto.yggno.de
Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	howto.yggno.de
Address: 188.225.9.167

Код: Выделить всё

olej@R420:~$ ping -c3 howto.yggno.de
PING howto.yggno.de (188.225.9.167) 56(84) bytes of data.

--- howto.yggno.de ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2050ms
:-(

le_
Писатель
Сообщения: 24
Зарегистрирован: 07 апр 2023, 17:26
Контактная информация:

Yggdrasil

Непрочитанное сообщение le_ » 09 апр 2023, 15:27

Olej писал(а):
09 апр 2023, 15:06
Время ожидания соединения истекло
Попробуйте через VPN. У меня открыватся...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 09 апр 2023, 15:44

le_ писал(а):
09 апр 2023, 15:27
le_ писал(а):
09 апр 2023, 14:55
https://howto.yggno.de/hm:experiment
Попробуйте через VPN. У меня открыватся...
Через собственный SOCKS proxy открылось... (странно :-o ... что не открывается просто)
Это я знаю, это у меня в закладках (может под другим URL?).
Olej писал(а):
09 апр 2023, 15:06
https://howto.yggno.de/yggdrasil:yggdrasil
Это посмотрю.
Реальные примеры использования

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 10 апр 2023, 13:44

Код: Выделить всё

olej@277938:~$ uname -a
Linux 277938.local 4.19.0-23-amd64 #1 SMP Debian 4.19.269-1 (2022-12-20) x86_64 GNU/Linux

olej@277938:~$ yggdrasil --version
Build name: yggdrasil
Build version: 0.4.7
Конфигурационный файл Yggdrasil на русском
Но поскольку этот URL (188.225.9.167) без VPM/proxy не открывается (у меня :?: :-( ), то самое важное:
Yggdrasil версии 0.4

Код: Выделить всё

{
  # Список строк подключения для исходящих соединений с другими пирами в формате URI,
  # например, tls://a.b.c.d:e или socks://a.b.c.d:e/f.g.h.i:j. Эти соединения
  # будут подчиняться таблице маршрутизации операционной системы. Этот раздел следует
  # использовать, когда в системе несколько интерфейсов, через которые возможно подключение.
  Peers: []
  
  # Список строк подключения для исходящих соединений с другими пирами в формате URI,
  # упорядоченных по исходному интерфейсу, например { "eth0": [ tls://a.b.c.d:e ] }.
  # Обратите внимание, что эти параметры НЕ применимы к пирингу через SOCKS и вместо этого
  # SOCKS должны указываться в параметре "Peers".
  InterfacePeers: {}
  
  # Адрес прослушивания (ожидания) входящих подключений. Добавить Listener нужно, если вы
  # хотите, чтобы к вам могли подключиться другие нелокальные узлы, указав ваш адрес в параметре 
  # Peers.
  # Multicast peer discovery (протокол для обнаружения пиров в локальной сети) будет работать 
  # независимо от установок в этом разделе.
  # Каждый Listener должен быть указан в формате URI, как показано выше, например:
  # tls://0.0.0.0:0 or tls://[::]:0 для прослушивания на всех интерфейсах.
  # Если не хотите принимать входящие соединения, оставьте пустым.
  # Для публичных пиров Listener обязателен.
  Listen: []
  
  # Адрес прослушивания для административных подключений. По-умолчанию прослушивание локальных 
  # подключений осуществляется либо на TCP/9001, либо через сокет UNIX, в зависимости от вашей
  # платформы. Используйте это значение для yggdrasilctl -endpoint=X. Для отключения
  # сокета администратора используйте значение "none".
  AdminListen: unix:///var/run/yggdrasil.sock
  
  # Настройка интерфейсов, для которых Multicast Peer Discovery должно быть
  # включено. Каждая запись в списке должна быть объектом json, который может
  # содержать Regex, Beacon, Listen и Port. Regex  - это регулярное 
  # выражение, по которому выбирается имя интерфейса; выбирается первый 
  # соответствующий Regex интерфейс. Beacon определяет должен ли узел
  # отправлять link-local многоадресные сигналы для оповещения о своем существовании,
  # пока ожидаются входящие соединения на TCP порту Port.
  # Listen определяет будет ли узел ожидать/прослушивать многоадресные сигналы (beacons)
  # и открывать исходящие соединения.
  # ПОДРОБНЕЕ СМ. СТАТЬЮ "MULTICAST PEER DISCOVERY" НА ЭТОМ РЕСУРСЕ
  MulticastInterfaces:
  [
    {
      Regex: .*
      Beacon: true
      Listen: true
      Port: 0
    }
  ]
  
  # Список открытых ключей узлов, от которых разрешены входящие подключения.
  # Если оставлено пустым/неопределенным тогда все соединения
  # будут разрешены по-умолчанию. Это не повлияет ни на исходящие соединения, ни на
  # локальные соединения с пирами, обнаруженными через multicast (многоадресная рассылка).
  AllowedPublicKeys: []
 
  # Ваш публичный (открытый) ключ. Те, с кем вы соединяетесь могут попросить у вас этот ключ
  # для указания в разделе AllowedPublicKeys их конфигурации.
  PublicKey: a999ccc664e0d645e76ed1fa2cf169806e4674725f3d6213d2c92869976eb01e
  
  # Ваш приватный ключ. НЕ ДЕЛИТЕСЬ этим ключом ни с кем!
  PrivateKey: 711895e5625cc787c06e7e03c49ed71470cf87dfb626985f1cb669a24a479c3e
  
  # Имя локального сетевого интерфейса TUN-адаптера, или "auto" для выбора
  # интерфейса автоматически, или "none" для запуска без TUN.
  IfName: auto

  # Максимальный размер передаваемого блока (MTU - Maximum Transmission Unit) 
  # для вашего локального TUN-интерфейса.
  # По умолчанию это самый большой поддерживаемый размер для вашей платформы. Наименьшее 
  # возможное значение - 1280.
  IfMTU: 65535
  
  # По-умолчанию, nodeinfo содержит некоторые значения, включая название платформы,
  # архитектуру и версию Yggdrasil. Эти значения могут помочь при изучении сети, диагностике
  # проблем сетевой маршрутизации. Включение приватности
  # nodeinfo предотвращает публикацию этих данных и только значения, указанные в 
  # "NodeInfo" (если указаны) будут отправлены запрашивающему узлу.
  NodeInfoPrivacy: false

  # Дополнительная произвольная информация об узле. Знечение должно быть строкой, 
  # представляющей собой map { "key": "value", ... } или null.
  # Это совершенно необязательно, но если значения заданы, они будут видны всем узлам сети
  # при выполнении соответствующего запроса.
  NodeInfo: {}
}

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil

Непрочитанное сообщение Olej » 11 апр 2023, 14:40

Интересный вариант: загрузить, установить и запустить Yggdrasil на Raspberry Pi:

Код: Выделить всё

olej@raspberrypi:~ $ inxi -Mxxx
Machine:   Type: ARM Device System: Raspberry Pi 2 Model B Rev 1.1 details: BCM2835 rev: a21041 serial: 00000000f57e2ca8 

Код: Выделить всё

olej@raspberrypi:~ $ inxi -Sxxx
System:    Host: raspberrypi Kernel: 5.15.84-v7+ armv7l bits: 32 compiler: gcc v: 10.2.1 Desktop: Openbox 3.6.1 
           info: lxpanel dm: LightDM 1.26.0 Distro: Raspbian GNU/Linux 11 (bullseye) 

Код: Выделить всё

olej@raspberrypi:~ $ uname -a
Linux raspberrypi 5.15.84-v7+ #1613 SMP Thu Jan 5 11:59:48 GMT 2023 armv7l GNU/Linux

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей