Назад | Перейти на главную страницу

DHCP не работает на сетевом адаптере RTL8111 (предложение DHCP не поступает на приемник)

Я испытываю странное поведение с сетевой картой Dual Gigabit Ethernet; Я установил компьютер с несколькими сетевыми интерфейсами для подключения некоторых промышленных камер и настроил DHCP-сервер (isc-dhcp-server, Ubuntu 16.04) для статического назначения их IP-адресов. Примечание: в настройке нет маршрутизатора / коммутатора. Только сетевые карты и прямое подключение через RJ45-кабель.

Это работает для других сетевых адаптеров на компьютере. я вижу ОБНАРУЖЕНИЕ DHCP входящий пакет, затем ПРЕДЛОЖЕНИЕ DHCP отправляется на удаленное устройство и позже подтверждается через DHCP ACK с удаленного устройства.

Но для этой специальной сетевой карты (LogiLink 2-Port Gigabit LAN PCI-Express, PC0075 v.2.0; Набор микросхем: RTL8111F; см. техническая спецификация) Я просто вижу множественное обнаружение DHCP приходящие пакеты, на которые в ответ ПРЕДЛОЖЕНИЕ DHCP на стороне DHCP-сервера. Похоже, удаленное устройство не получает ПРЕДЛОЖЕНИЕ DHCP. На самом деле я пробовал использовать Windows-машину в качестве клиента, но не видел ПРЕДЛОЖЕНИЕ DHCP ответ с сервера (никаких пакетов от DHCP-сервера, если я не пропустил ни одного, так как машина Windows просто посылала много, если дерьмо вышло).

А теперь странная вещь: Я оставил все как есть (DHCP-сервер со статическим IP-адресом 192.168.1.1/24) и настроил клиент Windows на использование фиксированного IP-адреса (192.168.1.2/24). Теперь отправка эхо-запроса от клиента Windows на DHCP-сервер работает (ответ пинга получен успешно), пока подключен кабель. Таким образом, сетевая карта на DHCP-сервере является в состоянии для отправки пакетов, а кабель / соединение не является проблемой, и клиент Windows действительно общается через это соединение. Я несколько раз переключался между статическим IP и конфигурацией DHCP на клиенте, чтобы проверить это (DHCP = не работает, статический IP = все в порядке).

Некоторая диагностика (Примечание: я изменил общедоступный IP-адрес на 42.x.x.x, а для MAC-адресов были изменены последние 4 шестнадцатеричные цифры):

   $ lspci -k | grep 'RTL' -A2
   06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
           Subsystem: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
           Kernel driver in use: r8168
           Kernel modules: r8169, r8168
   07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
           Subsystem: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
           Kernel driver in use: r8168
           Kernel modules: r8169, r8168

   #### NOTE: This was when the Windows Client was connected to eth3, eth1/eth2 disconnected; the "RUNNING" shows up properly for eth1/eth2 as soon  the cable is connected ####
   $ ifconfig
   eth0      Link encap:Ethernet  HWaddr 10:7b:44:a5:ff:42
             inet addr:42.0.0.1  Bcast:42.0.0.255  Mask:255.255.255.0
             inet6 addr: fe80::127b:44ff:fea5:ff42/64 Scope:Link
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
             RX packets:44357 errors:0 dropped:2143 overruns:0 frame:0
             TX packets:590 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1000
             RX bytes:5653188 (5.6 MB)  TX bytes:94249 (94.2 KB)
             Interrupt:20 Memory:92f00000-92f20000

   eth1      Link encap:Ethernet  HWaddr 00:13:3b:0f:ff:f1
             inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
             inet6 addr: fe80::213:3bff:fe0f:fff1/64 Scope:Link
             UP BROADCAST MULTICAST  MTU:1500  Metric:1
             RX packets:191 errors:0 dropped:0 overruns:0 frame:0
             TX packets:34 errors:0 dropped:46 overruns:0 carrier:0
             collisions:0 txqueuelen:1000
             RX bytes:20166 (20.1 KB)  TX bytes:2400 (2.4 KB)
             Interrupt:45 Base address:0x2000

   eth2      Link encap:Ethernet  HWaddr 00:13:3b:0f:ff:f2
             inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
             inet6 addr: fe80::213:3bff:fe0f:fff2/64 Scope:Link
             UP BROADCAST MULTICAST  MTU:1500  Metric:1
             RX packets:1388 errors:0 dropped:0 overruns:0 frame:0
             TX packets:140 errors:0 dropped:68 overruns:0 carrier:0
             collisions:0 txqueuelen:1000
             RX bytes:155296 (155.2 KB)  TX bytes:10878 (10.8 KB)
             Interrupt:46 Base address:0x8000

   eth3      Link encap:Ethernet  HWaddr 00:e0:4c:13:ff:f3
             inet addr:192.168.3.1  Bcast:192.168.3.255  Mask:255.255.255.0
             inet6 addr: fe80::2e0:4cff:fe13:fff3/64 Scope:Link
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
             RX packets:357 errors:0 dropped:0 overruns:0 frame:0
             TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1000
             RX bytes:49440 (49.4 KB)  TX bytes:9345 (9.3 KB)

   lo        Link encap:Local Loopback
             inet addr:127.0.0.1  Mask:255.0.0.0
             inet6 addr: ::1/128 Scope:Host
             UP LOOPBACK RUNNING  MTU:65536  Metric:1
             RX packets:36 errors:0 dropped:0 overruns:0 frame:0
             TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1
             RX bytes:2671 (2.6 KB)  TX bytes:2671 (2.6 KB)

   $ cat /etc/dhcp/dhcpd.conf
   default-lease-time 600;
   max-lease-time 7200;
   log-facility local0;
   authorative;

   subnet 192.168.1.0 netmask 255.255.255.0 {
     range 192.168.1.2 192.168.1.254;
   }
   subnet 192.168.2.0 netmask 255.255.255.0 {
     range 192.168.2.2 192.168.2.254;
   }
   subnet 192.168.3.0 netmask 255.255.255.0 {
     range 192.168.3.2 192.168.3.254;
   }
   subnet 192.168.4.0 netmask 255.255.255.0 {
     range 192.168.4.2 192.168.4.254;
   }

   host cam1 {
           hardware ethernet 00:01:0d:c2:ff:01;
           fixed-address 192.168.1.2;
   }

   host cam2 {
           hardware ethernet 00:01:0d:c2:ff:02;
           fixed-address 192.168.2.2;
   }


   host cam3 {
           hardware ethernet 00:01:0d:c2:ff:03;
           fixed-address 192.168.3.2;
   }


   host cam4 {
           hardware ethernet 00:01:0d:c2:ff:04;
           fixed-address 192.168.4.2;
   }

   host notebook {
           hardware ethernet 80:fa:5b:4b:ff:05;
           fixed-address 192.168.1.2;
   }

Что я пробовал до сих пор:

ВОПРОСЫ:

РЕДАКТИРОВАТЬ:

Я настроил клиентские устройства (камеры) на этом сетевом адаптере, используя статические IP-адреса. Кажется, это сработает, если я вручную отключу / снова подключу кабель с некоторой задержкой. По какой-либо причине соединение не устанавливается должным образом автоматически после завершения работы. Также у меня были сообщения «нет доступного буферного пространства» при фактическом использовании других сетевых адаптеров, в то время как нагрузка была почти полной (только некоторые эхо-запросы с интервалом 1 с). Я вернулся к встроенному драйверу ядра - пока я не видел сообщений «нет буферного пространства»; но соединение по-прежнему не устанавливается автоматически. Интересно, может ли это быть неисправный сетевой адаптер ... и драйвер, который неправильно обрабатывает вызванные проблемы.

РЕДАКТИРОВАТЬ № 2:

Похоже, я могу использовать «mii-tool -r eth1» и «mii-tool -r eth2» для принудительного повторного согласования соединения вместо отключения / повторного подключения кабелей. Это работает только со статическим IP-адресом (DHCP по-прежнему не работает). Также обратите внимание, что «mii-tool» утверждает, что устройства согласовали канал «1000baseT-HD» (полудуплексный), ethtool сообщает мне, что это полный дуплекс. Статус, отображаемый до и после команд «mii-tool -r», одинаков для mii-tool и ethtool:

   # mii-tool
   SIOCGMIIREG on eth0 failed: Input/output error
   SIOCGMIIREG on eth0 failed: Input/output error
   eth0: negotiated 1000baseT-FD flow-control, link ok
   eth1: negotiated 1000baseT-HD flow-control, link ok
   eth2: negotiated 1000baseT-HD flow-control, link ok
   eth3: negotiated 1000baseT-FD flow-control, link ok
   SIOCGMIIPHY on 'eth4' failed: Operation not supported

   # ethtool eth1
   Settings for eth1:
           Supported ports: [ TP MII ]
           Supported link modes:   10baseT/Half 10baseT/Full
                                   100baseT/Half 100baseT/Full
                                   1000baseT/Half 1000baseT/Full
           Supported pause frame use: No
           Supports auto-negotiation: Yes
           Advertised link modes:  10baseT/Half 10baseT/Full
                                   100baseT/Half 100baseT/Full
                                   1000baseT/Half 1000baseT/Full
           Advertised pause frame use: Symmetric Receive-only
           Advertised auto-negotiation: Yes
           Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                100baseT/Half 100baseT/Full
                                                1000baseT/Half 1000baseT/Full
           Link partner advertised pause frame use: Symmetric Receive-only
           Link partner advertised auto-negotiation: Yes
           Speed: 1000Mb/s
           Duplex: Full
           Port: MII
           PHYAD: 0
           Transceiver: internal
           Auto-negotiation: on
           Supports Wake-on: pumbg
           Wake-on: g
           Current message level: 0x00000033 (51)
                                  drv probe ifdown ifup
           Link detected: yes


   # ethtool eth2        
   Settings for eth2:
           Supported ports: [ TP MII ]
           Supported link modes:   10baseT/Half 10baseT/Full
                                   100baseT/Half 100baseT/Full
                                   1000baseT/Half 1000baseT/Full
           Supported pause frame use: No
           Supports auto-negotiation: Yes
           Advertised link modes:  10baseT/Half 10baseT/Full
                                   100baseT/Half 100baseT/Full
                                   1000baseT/Half 1000baseT/Full
           Advertised pause frame use: Symmetric Receive-only
           Advertised auto-negotiation: Yes
           Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                100baseT/Half 100baseT/Full
                                                1000baseT/Half 1000baseT/Full
           Link partner advertised pause frame use: Symmetric Receive-only
           Link partner advertised auto-negotiation: Yes
           Speed: 1000Mb/s
           Duplex: Full
           Port: MII
           PHYAD: 0
           Transceiver: internal
           Auto-negotiation: on
           Supports Wake-on: pumbg
           Wake-on: g
           Current message level: 0x00000033 (51)
                                  drv probe ifdown ifup
           Link detected: yes