Multicast Peer Discovery

Multicast Peer Discovery - это технология автоматического обнаружения пиров Yggdrasil в локальной сети.

Когда в локальной сети Yggdrasil запущен на нескольких устройствах благодаря этой технологии все эти узлы обнаружат друг друга и автоматически установят соединение между собой, прописывать их в секции Peers конфиграционного файла нет необходимости.

ВАЖНО: Multicast Peer Discovery в Yggdrasil работает только с link-local IPv6 адресами устройств в локальной сети (диапазон fe80::/10), с IPv4 не работает! Т.е., на интерфейсах вашей локальной сети должна быть включена поддержка IPv6 и устройства должны иметь IPv6 link-local адреса в локальной сети (между ними дожен работать ping). Если настроить IPv6 в локальной сети для вас затруднительно, вы можете вручную прописывать в конфигурационном файле Yggdrasil IPv4 локальные адреса устройств в качестве пиров (листенеры настраиваются в секции Listen).

Multicast Peer Discovery включено по-умолчанию. Окрывает UDP порт 9001 (для прослушивания сигналов о существовании от других узлов). Настраивается MPD в параметре MulticastInterfaces конфигурационного файла.

По-умолчанию параметр выглядит так:

MulticastInterfaces:
  [
    {
      Regex: .*
      Beacon: true
      Listen: true
      Port: 0
      Priority: 0
      Password: ""
    }
  ]
  • Regex - здесь задается регулярное выражение для имени интерфейса, на котором будет задействован Multicast Peer Discovery. Будет выбрано одно первое имя, соответствующее регулярному выражению.
  • Beacon - если true, узел будет отправлять в сеть «уведомления» о своем сущестовании
  • Listen - если true, узел будет ожидать (прослушивать) сигналы («уведомления») о присутствии от других узлов
  • Port - TCP-порт, который будет открыт для установки соединения с обнаруженными пирами. Если указано 0, порт будет назначен случайным образом.
  • Priority (не обязательно, доступно с версии 0.4.6) - приоритет для соединения с одним и тем же узлом, если у узла несколько интерфейсов (число 0 до 254).
  • Password (не обязательно, доступно с версии 0.5 RC1) - пароль, используемый в «рукопожатии» TLS.

Объектов json в массиве MulticastInterfaces может быть несколько (т.е., для каждого интерфейса свой объект). Пример:

MulticastInterfaces:
  [
    {
      Regex: eth0
      Beacon: true
      Listen: false
      Port: 0
    },
    {
      Regex: wlo1
      Beacon: false
      Listen: true
      Port: 0
    }
  ]

Для примера, если вы хотите, чтобы в локальной сети все узлы подключались к одному пиру в этой же сети и не соединялись между собой каждый с каждым, нужно на одном узле установить Beacon в true, а на остальных узлах Beacon в false и Listen в true.

Чтобы полностью отключить Multicast Peer Discovery нужно привести MulticastInterfaces к такому виду:

MulticastInterfaces: []

UPD порт 9001 после этого открыт не будет, «сигналы» о присутсвии отправляться не будут.

Только авторизованные участники могут оставлять комментарии.
yggdrasil/mpd.txt · Последнее изменение: 2023/10/18 12:37 — newbie
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki