%2C%20%C2%BFc%C3%B3mo%3F%20.png)
Estoy desarrollando un producto que permite a los usuarios ejecutar un servicio en casa que forma parte de una red más grande. Este servicio debe ser contactado periódicamente por un servicio de coordinación que se ejecuta en la nube (en un VPS). El mecanismo implementado para esto se basa en un reenvío de puerto normal en el enrutador con acceso a Internet del usuario, pero también necesita encontrar una forma confiable: ingresar DDNS.
Lo que me gustaría implementar es un servicio DDNS que pueda ser configurado fácilmente por el servicio que se ejecuta en casa del usuario (piense en que el servicio solo tiene la funcionalidad adicional de un cliente de actualización DDNS). (Puede preguntarse por qué el servicio no mantiene dinámicamente la propiedad "IP externa" actualizada e informa al servicio de coordinación, pero por varias razones se prefiere mantener esa configuración estática y tener un alias de contacto permanente para el servicio detrás del firewall del usuario. )
En el lado del servidor, espero salirme con la mía con una solución que pueda ejecutarse fácilmente en un VPS y proporcionar DDNS someuniqueid.nodes.mydomain.com
(que mydomain.com
es de mi propiedad y apunta al VPS).
La solución debería admitir de manera confiable potencialmente miles de clientes (ID únicos). (Para mayor confiabilidad, la coordinación, el DDNS y los servicios auxiliares probablemente se escalarán con k8 en una configuración HA).
¿Alguna idea sobre una solución posiblemente efectiva para esto?
Respuesta1
La suposición de que
esto se basa en unnormalreenvío de puertos en el enrutador con acceso a Internet del usuario
funcionará de manera confiable sin la intervención de un "experto" para la mayoría de sus usuarios probablemente sea defectuoso.
La solución típicahttps://en.m.wikipedia.org/wiki/Universal_Plug_and_Playno cuenta con el apoyo universal en absoluto.
A menos que espere que todos sus usuariossiempreestar en redes "domésticas" que les permiten configurar el reenvío de puertos manualmente cuando no funciona automáticamente, realmente debería repensar su diseño.
En general, verá que los clientes utilizan un servidor/servicio central (a través de https en el puerto https predeterminado) en lugar de conexiones de igual a igual y luego no necesita asignar nombres DNS para encontrar a sus usuarios. Tus usuarios te encontrarán (o más bien tus servidores)
lo que hace que su pregunta y la solución prevista sean un camino que simplemente no debería tomar.