Я испытываю странное поведение с сетевой картой 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