История изменений
Исправление
kirk_johnson,
(текущая версия)
:
под динамикой я имел ввиду некий процесс, по которому вновь присоединённый к сети пир (настроенный на присоединение только к «центральному серверу») сам узнает от сервера о существовании других клиентов. то есть, в идеале заменить циску сервачками под OpenBSD :) с ospfd и wg, чтобы свежеподнятый сервачок цеплялся к центральному «хабу», подтягивал инфу от него об имеющихся префиксах (подсетях) и next-hop’ах к этим префиксам (внешний IP клиента + IP wg- интерфейса).
Я сразу скажу, что я не настоящий сварщик, но DHCPv6 умеет next-hop в качестве опции. Если отдать это значение достаточно, чтобы все заработало, то как бы вот и оно.
Основная проблема, которую я вижу, это то, что WG требует заранее расшарить между клиентами пары публичных ключей. В принципе, если на центральном сервере хранить yaml файлик вида:
nodes:
node1: { address: ..., public_key: ... },
node2: { address: ..., public_key: ... }
И при коннекте к «центральному серверу» условная node3 подхватывает эти значения, поднимает интерфейсы, добавляет себя в этот лист и другие ноды каким-то образом это узнают (HTTP GET с опцией «не отдавай если не протухло?») и добавляют новый хост… То вот и оно.
Хотя, в идеале конечно пуш семантику. node3 цепляется, регистрируется, остальные получают push с апдейтами её ключей.
Исходная версия
kirk_johnson,
:
под динамикой я имел ввиду некий процесс, по которому вновь присоединённый к сети пир (настроенный на присоединение только к «центральному серверу») сам узнает от сервера о существовании других клиентов. то есть, в идеале заменить циску сервачками под OpenBSD :) с ospfd и wg, чтобы свежеподнятый сервачок цеплялся к центральному «хабу», подтягивал инфу от него об имеющихся префиксах (подсетях) и next-hop’ах к этим префиксам (внешний IP клиента + IP wg- интерфейса).
Я сразу скажу, что я не настоящий сварщик, но DHCPv6 умеет next-hop в качестве опции. Если отдать это значение достаточно, чтобы все заработало, то как бы вот и оно.
Основная проблема, которую я вижу, это то, что WG требует заранее расшарить между клиентами пары публичных ключей. В принципе, если на центральном сервере хранить yaml файлик вида:
nodes:
node1: { address: ..., public_key: ... },
node2: { address: ..., public_key: ... }
И при коннекте к «центральному серверу» условная node3 подхватывает эти значения, поднимает интерфейсы, добавляет себя в этот лист и другие ноды каким-то образом это узнают (HTTP GET с опцией «не отдавай если не протухло?») и добавляют новый хост… То вот и оно.