. Я разрабатываю продукт, который позволяет пользователям запускать службу дома, которая является частью более крупной сети. К этой услуге необходимо регулярно обращаться через службу координации, работающую в облаке (на VPS). Реализованный для этого механизм основан на обычном переадресации портов на маршрутизаторе пользователя с выходом в Интернет, но также требует надежного способа поиска: введите DDNS.
Я бы хотел реализовать службу DDNS, которую можно легко настроить с помощью службы, запущенной у пользователя (подумайте о службе, которая просто имеет дополнительные функции клиента обновления DDNS). (Вы можете спросить, почему бы службе просто динамически не обновлять свойство "externalIP" и информировать службу координации, но по нескольким причинам предпочтительнее сохранить эту конфигурацию статической и иметь постоянный псевдоним контакта для службы, находящейся за брандмауэром пользователя. )
На стороне сервера я надеюсь получить решение, которое может легко работать на VPS и предоставлять DDNS, например someuniqueid.nodes.mydomain.com
(где mydomain. com
принадлежит мне и указывает на VPS).
Решение должно надежно поддерживать потенциально тысячи клиентов (уникальные идентификаторы).(Для надежности координации DDNS и вспомогательные службы, вероятно, будут масштабированы с помощью k8s в конфигурации HA).
Есть идеи о возможном эффективном решении для этого?
Предположение, что
это зависит от обычного переадресации портов на маршрутизаторе пользователя, подключенном к Интернету
, будет надежно работать без вмешательства «эксперта» для большинство ваших пользователей, вероятно, имеют недостатки.
Типичное решение https://en.m.wikipedia.org/wiki/Universal_Plug_and_Play вообще не поддерживается повсеместно.
Если вы не ожидаете, что все ваши пользователи будут всегда находиться в «домашних» сетях, которые позволяют им вручную настраивать переадресацию портов, когда она не работает автоматически, вам действительно следует переосмыслить свой дизайн.
В целом вы видите, что клиенты используют центральный сервер/службу (через https на https-порте по умолчанию), а не одноранговые соединения, и тогда вам не нужно назначать DNS-имена для поиска ваших пользователей. Ваши пользователи найдут вас (точнее, ваши серверы)
, что делает ваш вопрос и предполагаемое решение путем, по которому вам просто не следует идти.