Consulta broadcast

Consulta broadcast

de Agustin Gamio Falagian -
Número de respuestas: 7

Queriamos consultar si se podía levantar varios servidores con distinta IP e igual PUERTO en la misma maquina (pensándolo para la parte de broadcast). Probamos varias IP de red local y no nos funciono. En caso de no ser posible que opciones tenemos disponibles?

Muchas gracias

En respuesta a Agustin Gamio Falagian

Re: Consulta broadcast

de Martin Giachino -
Una opción para probar varios servidores en la misma PC y en el mismo puerto es setearle la opción SO_REUSEADDR en el socket. Esto no es estrictamente lo mismo que hacer el broadcast, pero puede ser útil al momento de pasar a probar mas de un servidor.

Respecto al broadcast, podrían armarse una internal network con virtualbox (o similar), y utilizar el broadcast de esa lan que armen.

Otra opción a probar es Linux network namespaces.

No entendi bien lo que no les funciona pero para que les funcione el broadcast deben asegurarse que las ips pertenezcan al mismo segmento de red y que estén en un switch/bridge

Martín
En respuesta a Martin Giachino

Re: Consulta broadcast

de Bruno Cabrera Martínez -
Buenas tardes!

No me quedó muy claro. Para solucionar el tema del broadcasting en localhost, sería una opción viable tomar una dirección como 127.255.255.255 y usar SO_REUSEADDR para poder bindear varios sockets distintos? O es necesario tener que armarse una internal network?

Saludos, muchas gracias!
En respuesta a Bruno Cabrera Martínez

Re: Consulta broadcast

de Martin Giachino -
Como escribí antes, el SO_REUSEADDR "no es estrictamente lo mismo que hacer el broadcast, pero puede ser útil al momento de pasar a probar mas de un servidor" de manera que para la defensa final (la intermedia solo se probará un servidor) no es una opción válida.

Para la defensa final deben usar mas de una PC en la misma LAN, mas de una virtual conectada en la misma internal network, PCs virtuales conectadas a switches/bridges virtuales, Linux network namespaces o cualquier ootra opción que sí les permita usar las direcciones de broadcast para llegar a todos los servidores (sin hacer la trampa del SO_REUSEADDR).

Martín
En respuesta a Martin Giachino

Re: Consulta broadcast

de Bruno Cabrera Martínez -
Gracias!

No claro, la idea creo va a ser correrlo en varias máquinas en una misma red. El descubrimiento se va a hacer con broadcast, pero en el caso que la dirección del servidor sea de localhost (127.*.*.*) se podría alterar el descubrimiento para que funcione con SO_REUSEADDR y sin Broadcast? O habría que deshabilitar el Descubrimiento en ese caso? Digo por el caso en el que se ejecute un servidor usando la ip local y otro (en otra maquina) usando localhost, ahí se podrían descubrir entre ellos pero la conexión TCP entre ellos no se va a poder establecer.

Saludos!
En respuesta a Bruno Cabrera Martínez

Re: Consulta broadcast

de Martin Giachino -
Las direcciones de la forma 127.x.y.z no son ruteables y solo viven dentro de la PC, por ende si entiendo bien, lo que plantean tampoco va a funcionar.

Martín
En respuesta a Martin Giachino

Re: Consulta broadcast

de Bruno Cabrera Martínez -
Capaz me estoy confundiendo, la duda va por el lado de cómo actuaría un servidor en el caso que se le indique dirección 127.0.0.1 y un puerto X. Entiendo que debería ser posible ejecutar un servidor de esa forma ya que se usa como ejemplo en la letra de laboratorio. Pero este servidor implementaría el descubrimiento? Entiendo que no debería hacerlo ya un servidor en otra pc no va poder establecer una conexión con el (ya que no esta escuchando en su ip local sino que en localhost).
Si fuera de esa forma entonces la conexión entre ambos servidores va a ser parcial, el servidor localhost va a poder actuar como cliente del servidor en la otra pc (con ip local) pero esto no va a ocurrir de forma inversa.
Podemos asumir que esto nunca va ocurrir y que localhost se usará solo como servidor único (sin base distribuida)?

Muchas gracias!