Como o netcat não pode receber pacotes UDP?

0

Eu tenho um dispositivo UDP simples (ENC28J60) conectado ao meu computador com um cabo direto. O dispositivo configurado para enviar o pacote UDP para a porta 192.168.133.1 IP, 6661.

O nome do computador, Fedora 22 OS, interface é enp7s0. Quando um endereço IP é atribuído à interface, o tcpdump trava, o netcat é silencioso. Quando nenhum endereço IP é atribuído à interface, o netcat silencioso (sem saída), o tcpdump recebe pacotes.

Os pacotes realmente vêm de um dispositivo, eu posso ver com o tcpdump, apenas quando a interface é UP, mas nenhum endereço IP atribuído.

Primeiro, tente abrir a interface com um endereço IP.

[root@d7520 ~]#  nmcli connection up toArd                                                                          
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/20)
[root@d7520 ~]# ip a s dev enp7s0                            
2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 74:86:7a:1e:e0:85 brd ff:ff:ff:ff:ff:ff
    inet 192.168.133.1/24 brd 192.168.133.255 scope global enp7s0
       valid_lft forever preferred_lft forever
    inet6 fe80::7686:7aff:fe1e:e085/64 scope link 
       valid_lft forever preferred_lft forever

Tente com o netcat e o tcpdump. Sem resposta. tcpdump trava.

[root@d7520 ~]# ncat -u -l 6661                                                                                                                      
^C
[root@d7520 ~]# tcpdump -vvv -i enp7s0 -X
tcpdump: listening on enp7s0, link-type EN10MB (Ethernet), capture size 262144 bytes


[root@d7520 ~]# nc -v -l -u 6661                                                                                                                                                                                                              
Ncat: Version 6.47 ( http://nmap.org/ncat )
Ncat: Listening on :::6661
Ncat: Listening on 0.0.0.0:6661
^C

Agora, tente remover o endereço IP. O tcpdump tem os pacotes UDP, mas o netcat ainda está silencioso.:

[root@d7520 ~]# nmcli connection down toArd 
Connection 'toArd' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/21)

 [root@d7520 ~]# ip a s dev enp7s0
2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 74:86:7a:1e:e0:85 brd ff:ff:ff:ff:ff:ff
[root@d7520 ~]# tcpdump -vvv -i enp7s0 -X                                                                                                                     
tcpdump: listening on enp7s0, link-type EN10MB (Ethernet), capture size 262144 bytes
13:41:39.423449 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 37)
    192.168.133.2.6660 > 192.168.133.1.6661: [udp sum ok] UDP, length 9
        0x0000:  4500 0025 0000 4000 4011 af73 c0a8 8502  E..%..@[email protected]....
        0x0010:  c0a8 8501 1a04 1a05 0011 0630 7465 7374  ...........0test
        0x0020:  2031 3233 0000 0000 0000 0000 0000       .123..........
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel
    
por g1ra 18.09.2015 / 14:05

1 resposta

0

Eu não tenho certeza se esse é o seu problema, mas por que você está usando nmcli em primeiro lugar? nmcli é a interface de linha de comando do gerenciador de rede, que é muito mais do que você esperava na tentativa de exibir suas interfaces.

Se eu fosse você, eu iria proceder da seguinte maneira. Como sudo :

         service network-manager stop  # halt NM
         ip link set dev enp7s0 down   # bring the interface down, in order to...
         ip addr flush dev enp7s0      # ... get rid of its ip address

Uma configuração manual ...

         ip addr add 192.168.133.133/24 dev enp7s0 # we give it a brand new address...
         ip link set dev enp7s0 up     # now we try again...
         ip route add default via 192.168.133.1 # and a gateway

ou automática:

         ip link set dev enp7s0 up
         dhclient -v enp7s0

(Dependendo da sua distro, talvez você tenha que deixar de fora o sinalizador -v ).

Agora eu tentaria novamente, e os dois tcpdump e nc deveriam estar funcionando.

    
por 18.09.2015 / 18:38