networking - commands - Difundiendo un mensaje usando nc(netcat)
ncat windows (3)
Estoy tratando de enviar un mensaje de difusión utilizando netcat.
Tengo firewalls abiertos y el envío de un mensaje regular como este funciona para mí:
host: nc -l 192.168.1.121 12101
client: echo "hello" | nc 192.168.1.121 12100
Pero no puedo conseguir que algo como esto funcione.
host: nc -lu 0.0.0.0 12101
client: echo "hello" | nc -u 255.255.255.255 12100
¿Estoy usando las banderas correctas? Tenga en cuenta que el host está en Mac y el cliente en Linux. ¿Me puede dar un ejemplo que funcione para transmitir un mensaje?
¡Gracias!
Disculpe, si estoy asumiendo que es incorrecto, pero usted mencionó que tiene sus firewalls configurados correctamente, así que supongo que el host y el cliente no están en la misma subred.
Si ese es el caso y este servidor de seguridad también actúa como enrutador (o si el paquete tiene que pasar por un enrutador), entonces procesará ese paquete pero no lo reenviará a sus otras interfaces. Si deseaba que eso sucediera, tendría que enviar una transmisión dirigida. Por ejemplo; para la subred 192.168.1.0/24 la difusión dirigida sería 192.168.1.255, la última IP en la subred. Luego, el servidor de seguridad, suponiendo que tenía una ruta a 192.168.1.0/24 y que está configurado para una transmisión dirigida hacia adelante, reenviaría esa transmisión al destino o al siguiente salto. Configuración de su dispositivo para reenviar la transmisión dirigida ... deberá hacer referencia a su documentación. Para Cisco IOS, escribiría, bajo la interfaz, "ip dirigida-difusión".
255.255.255.255 es una transmisión limitada y, de todas formas, no se pasará por alto sus enrutadores, está destinado exclusivamente para el enlace de capa 2 que reside.
En cuanto a cómo se configura netcat:
-l 0.0.0.0 12101, le dice a netcat que escuche en el puerto 12101 en todas las interfaces que están arriba y con una dirección IP asignada. El -u no es necesario porque le dice a Netcat que escuche en un socket de dominio Unix, Google IPC :) (esta es la razón principal por la que su escenario no funciona).
Lo siguiente debería funcionar para obtener una transmisión reenviada a otra red a través de netcat:
server: nc -l 0.0.0.0 12101 host: echo "hello" | nc 192.168.1.255 12101
Espero que eso ayude, disculpe si fue demasiado largo o apagado de lo que estaba buscando :)
La versión GNU de netcat podría estar rota. (De todos modos, no puedo ponerme a trabajar con 0.7.1). Visite http://sourceforge.net/p/netcat/bugs/8/
He conseguido que socat trabaje. El siguiente código hace la difusión UDP al puerto 24000.
socat - UDP-DATAGRAM:255.255.255.255:24000,broadcast
(En el mundo socat "-" significa "stdin".)
No está diciendo que quiere transmitir, lo que se hace usando la opción -b
para nc
/ netcat
.
nc -h 2>&1 | grep -- -b
-b allow broadcasts