У меня есть простое устройство UDP (ENC28J60), подключенное к моему компьютеру с помощью прямого кабеля. Устройство настроено на отправку пакетов UDP на IP-порт 192.168.133.1, порт 6661.

Компьютер, Fedora 22 OS, имя интерфейса - enp7s0. Когда IP-адрес назначен интерфейсу, tcpdump зависает, netcat молчит. Когда интерфейсу не назначен IP-адрес, netcat молчит (нет выхода), tcpdump получает пакеты.

Пакеты действительно приходят с устройства, я могу видеть с tcpdump, только когда интерфейс работает, но IP-адрес не назначен.

Сначала попробуйте вызвать интерфейс с 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

Попробуйте с netcat и tcpdump. Нет ответа. tcpdump зависает.

[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

Теперь попробуйте удалить IP-адрес. tcpdump получил пакеты UDP, но netcat все еще молчит.

[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..%..@.@..s....
        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

1 ответ1

0

Я не уверен, что это ваша проблема, но почему вы используете nmcli ? nmcli - это интерфейс командной строки сетевого менеджера, который гораздо больше, чем вы ожидали, пытаясь вызвать ваши интерфейсы.

На вашем месте я бы поступил следующим образом. Как 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

Либо ручная настройка ...

         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

или автоматический:

         ip link set dev enp7s0 up
         dhclient -v enp7s0

(В зависимости от вашего дистрибутива, вы можете не указывать флаг -v ).

Теперь я попытался бы снова, и оба tcpdump и nc должны работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .