NetCat ignorando (não enviando) dados de rede para endereços de broadcast

4

Se eu executar esses NetCat abaixo dos comandos (sem mensagens de erro) durante uma captura WireShark em execução (capture filter = udp dst port 4000 ):

luis@Zarzamoro:~$ echo "Hello" | nc -w1 -4u 255.255.255.255 4000
luis@Zarzamoro:~$ echo "Hello" | nc -w1 -4u 255.255.255.1 4000
luis@Zarzamoro:~$ echo "Hello" | nc -w1 -4u 192.168.11.255 4000
luis@Zarzamoro:~$ echo "Hello" | nc -w1 -4u 192.168.11.100 4000

Esses são os dados capturados (observe os dois pedidos de netcat ausentes):

Comoeuconcluo,qualquerdadoenviadoparaumendereçoderedebroadcast(x.x.x.255)éignorado(semerros:-P)pelaNetCat.

Porqueissoestáacontecendo?

Dadosadicionais:

Esteémeuifconfigcompleto:

luis@Zarzamoro:~$sudoifconfigeth0Linkencap:EthernetHWaddrb8:27:eb:ef:bb:aainetaddr:192.168.11.140Bcast:192.168.11.255Mask:255.255.255.0inet6addr:fe80::ba27:ebff:feef:bbaa/64Scope:LinkUPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1RXpackets:9672errors:0dropped:0overruns:0frame:0TXpackets:8567errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:503027(503.0KB)TXbytes:5993557(5.9MB)loLinkencap:LocalLoopbackinetaddr:127.0.0.1Mask:255.0.0.0inet6addr:::1/128Scope:HostUPLOOPBACKRUNNINGMTU:65536Metric:1RXpackets:153errors:0dropped:0overruns:0frame:0TXpackets:153errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:10926(10.9KB)TXbytes:10926(10.9KB)

ExecutandooUbuntu14.04.

Comosoluçãoalternativa,porenquanto,estouusandosocat:

echo"Hello" | socat - UDP-DATAGRAM:255.255.255.255:4000,broadcast

mas gostaria de entender o motivo pelo qual o NetCat não é capaz de fazer o mesmo.

    
por Sopalajo de Arrierez 22.07.2015 / 18:27

1 resposta

5

Suponho que você esteja usando netcat-openbsd porque você especifica -4 . Ele tem -b para ativar o endereço de broadcast, mas é sabido que a transmissão UDP não é suportada por esta versão do netcat, mesmo com -b . O Debian Bug # 702204 sugere um patch para corrigir isso.

Você pode instalar um pacote alternativo netcat-traditional que parece suportar corretamente -b com UDP. Note que o netcat a ser invocado executando /bin/nc é configurável usando update-alternatives quando ambos os pacotes estiverem instalados em seu sistema.

$ sudo update-alternatives --config nc
There are 2 choices for the alternative nc (providing /bin/nc).

  Selection    Path                 Priority   Status
------------------------------------------------------------
* 0            /bin/nc.openbsd       50        auto mode
  1            /bin/nc.openbsd       50        manual mode
  2            /bin/nc.traditional   10        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /bin/nc.traditional to provide /bin/nc (nc) in manual mode

Por fim, convém adicionar -v para obter diagnósticos mais detalhados em nc .

    
por 22.07.2015 / 20:14