
Tengo dos computadoras. Uno de ellos tiene un servidor en ejecución, el otro tiene una aplicación que se comunica con ese servidor. Estas computadoras se implementan en varios sitios. A veces, estas computadoras se pueden conectar directamente entre sí, otras veces solo se conectarán a través de una conexión inalámbrica que no controlo. Como requisito adicional, el servidor también debe poder acceder a Internet mediante dhcp si hay una conexión disponible. El objetivo es poder configurar estas computadoras en una oficina y luego implementarlas en un sitio casi sin configuración en el sitio.
¿Qué puedo hacer para garantizar que la computadora que ejecuta la aplicación siempre pueda (o en tantos casos como sea posible) encontrar el servidor y comunicarse con él (HTTP a través del puerto 80)?
Mi idea es configurar el servidor con múltiples IP. Puede acceder a Internet mediante DHCP en uno. El otro se configurará con una IP estática. Las computadoras de la aplicación se configurarán para conocer esta dirección IP estática con anticipación y realizarle solicitudes. Sin embargo, en los tutoriales que muestran cómo lograrlo, debo ingresar mi puerta de enlace y máscara de subred. ¿Y estos no cambiarán dependiendo de la red a la que me una?
Disculpe si me estoy perdiendo algo extremadamente obvio o si paso por alto otros factores. No sé casi nada sobre networking.
Si hay una pieza de hardware que pueda ayudar, está bien.
Esto es vista y xp.
Respuesta1
Tratar de adivinar qué dirección IP estática no chocará es buscar problemas. Como sugirió derobert, la multidifusión DNS + DNS-SD es una buena opción. La única pila para Windows esBonjour de Appleimplementación que le brindará la capacidad de registrar y resolver su servicio en la red local, así como con alguna configuración adicional, perforar un agujero en el firewall (si el enrutador admite NAT-PMP o uPnP) y actualizar una zona DNS con el DNS apropiado -Registros SD.
Probablemente necesitarás realizar algunas secuencias de comandos para vincular Bonjour a la configuración de tu aplicación, pero sin saber cuál es tu aplicación, es difícil decir cuál sería una buena opción. Dicho esto, la utilidad de línea de comandos dns-sd.exe automatizada con un simple script por lotes o WSH podría hacer el trabajo, al igual que los distintos enlaces para Python, Perl o Ruby para configuraciones menos triviales.
Respuesta2
La forma en que esto suele resolverse es utilizar uno de los varios protocolos de descubrimiento de servicios que ya están disponibles. Por ejemplo, verArtículo de Wikipedia sobre Zeroconf. DNS de multidifusión + DNS-SD parece ser el método actual popular y ampliamente admitido, aunque hay otros (y Wiki menciona la mayoría).
Por ejemplo, existe un mod-dnssd para apache2 que permite a Apache usar Avahi para anunciarse a través de DNS de multidifusión.
Respuesta3
Dado que parece que casi siempre estarán en la misma red, ¿no podría simplemente ejecutar WINS en la computadora "servidor" y conectarse mediante el nombre NetBIOS?
De esa manera, no tendrá que preocuparse en absoluto por la dirección IP.
En realidad, ahora que lo pienso, probablemente ni siquiera necesites WINS, NetBIOS debería poder manejarlo.