[О блоге] [наверх] [пред] [2021-06-26 20:47:04+03:00] [6b663f52f840aeb3593ee85bb940de4c33473e50]
Темы: [nncp]

MultiCast Discovery в NNCP

http://www.nncpgo.org/MCD.html
В 6.6.0 релизе NNCP добавил возможность обнаружения хостов через
multicast рассылки. Поднял дома ещё одну машину, где хотел применить
NNCP, и сразу как-то стало неохота прописывать адреса в конфиги
остальных нод (хотя в любом случае их придётся менять, чтобы добавить
публичный ключ). Я ленив. Поэтому чтобы не писать лишнюю строчку, я
потратил несколько часов чтобы реализовать MCD.

Не стал заморачиваться с IPv4 и сделал просто рассылку по ff02::1 адресу
UDP пакетов на фиксированный порт. Исходящий адрес и порт будут
сигнализировать о том, где доступен демон. Внутри пакета XDR с
магическим заголовком и идентификатором ноды (хэш от публичного ключа).
nncp-caller слушает, ловит эти пакеты, добавляет в качестве
предпочтительных адресов для соединения. Следит за сроком жизни и
удаляет когда оповещения больше не приходят.

Можно сделать конфиги в которых вообще адреса не фигурируют, но при
любой сетевой доступности и ловле MCD оповещений они будут готовы
соединяться.

    [оставить комментарий]
    комментарий 0:
    From: kmeaw
    Date: 2021-06-27 17:21:14Z
    
    А почему была выбрана группа "all nodes" вместо какой-нибудь
    NNCP-специфичной?
    
    комментарий 1:
    From: Sergey Matveev
    Date: 2021-06-27 17:58:04Z
    
    *** kmeaw [2021-06-27 20:18]:
    >А почему была выбрана группа "all nodes" вместо какой-нибудь
    >NNCP-специфичной?
    
    Точного ответа у меня нет :-). В голове возникал вопрос об использовании
    отличного от "...::1" адреса, но подумалось что тогда пришлось бы
    пользователей настраивать firewall. Сейчас доходит что им (да и мне) в
    любом случае это придётся сделать для UDP трафика по этому порту --
    поэтому это глупый аргумент. Но я вспомнил про то, что в Tox IM-е видел
    discovery и посмотрел как они это делают -- тоже по "...::1" адресу. Но
    этот проект под большим вопросом стоит ли его брать как пример для
    подражания.
    
    Думаю что надо бы, действительно, использовать какой-нибудь отдельный
    адрес. Пока не нахожу аргументов против.
    
    комментарий 2:
    From: Sergey Matveev
    Date: 2021-06-30 06:57:49Z
    
    *** kmeaw [2021-06-27 20:18]:
    >А почему была выбрана группа "all nodes" вместо какой-нибудь
    >NNCP-специфичной?
    
    В следующем релизе будет использоваться ff02::4e4e:4350.