2024-02-10 12:53:55 +00:00

62 lines
4.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== Multicast Peer Discovery ======
**Multicast Peer Discovery** - это технология автоматического обнаружения пиров [[yggdrasil:yggdrasil|Yggdrasil]] в локальной сети.
Когда в локальной сети [[yggdrasil:yggdrasil|Yggdrasil]] запущен на нескольких устройствах благодаря этой технологии все эти узлы обнаружат друг друга и автоматически установят соединение между собой, [[yggdrasil:public_peer|прописывать]] их в секции ''%%Peers%%'' [[yggdrasil:config_russian|конфиграционного файла]] нет необходимости.
**ВАЖНО:** //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%%'' [[yggdrasil:config_russian|конфигурационного файла]].
По-умолчанию параметр выглядит так:
<code>
MulticastInterfaces:
[
{
Regex: .*
Beacon: true
Listen: true
Port: 0
Priority: 0
Password: ""
}
]</code>
* **Regex** - здесь задается регулярное выражение для имени интерфейса, на котором будет задействован Multicast Peer Discovery. Будет выбрано одно первое имя, соответствующее регулярному выражению.
* **Beacon** - если true, узел будет отправлять в сеть "уведомления" о своем сущестовании
* **Listen** - если true, узел будет ожидать (прослушивать) сигналы ("уведомления") о присутствии от других узлов
* **Port** - TCP-порт, который будет открыт для установки соединения с обнаруженными пирами. Если указано ''%%0%%'', порт будет назначен случайным образом.
* **Priority** (не обязательно, доступно с версии 0.4.6) - приоритет для соединения с одним и тем же узлом, если у узла несколько интерфейсов (число 0 до 254).
* **Password** (не обязательно, доступно с версии 0.5 RC1) - пароль, используемый в "рукопожатии" TLS.
Объектов json в массиве MulticastInterfaces может быть несколько (т.е., для каждого интерфейса свой объект). Пример:
<code>
MulticastInterfaces:
[
{
Regex: eth0
Beacon: true
Listen: false
Port: 0
},
{
Regex: wlo1
Beacon: false
Listen: true
Port: 0
}
]</code>
Для примера, если вы хотите, чтобы в локальной сети все узлы подключались к одному пиру в этой же сети и не соединялись между собой каждый с каждым, нужно на одном узле установить ''%%Beacon%%'' в ''%%true%%'', а на остальных узлах ''%%Beacon%%'' в ''%%false%%'' и ''%%Listen%%'' в ''%%true%%''.
Чтобы полностью отключить Multicast Peer Discovery нужно привести MulticastInterfaces к такому виду:
<code>MulticastInterfaces: []</code>
UPD порт 9001 после этого открыт не будет, "сигналы" о присутсвии отправляться не будут.
~~DISCUSSION~~