]> Sergey Matveev's repositories - stargrave-blog.git/commit
MultiCast Discovery в NNCP
authorSergey Matveev <stargrave@stargrave.org>
Sat, 26 Jun 2021 17:47:04 +0000 (20:47 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sat, 26 Jun 2021 17:53:22 +0000 (20:53 +0300)
commit6b663f52f840aeb3593ee85bb940de4c33473e50
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent5692b115fc84c03713f4523776ea0840e18cedd6
MultiCast Discovery в NNCP

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

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

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