Проблемы с сетевой картой Intel PRO 1000 на Debian Linux

Приветствую Вас дорогие кучекопатели (или кучечитатели — как Вам будет угодно). Этим постом начинаю небольшой сборник статей, посвящённых последней настройкой сервера с ОС Debian Linux.

Задача была такая
  • Gateway Firewall
  • Сервер DHCP
  • Сервер приложений (PHP, MySQL и т.д.)
  • Сервер Ресторана (Windows XP и какой то софт, который не я настраивал)
  • Ещё одна ОС для возможности подключения из вне и управления всем вышеперечисленным
  • Разместить всё это на одном физическом сервере.

Про всё в деталях немного позже, а сейчас о первой серьёзной проблеме, с которой пришлось столкнуться!

Обрыв сетевого соединения
Сервер имеет на борту три сетевые карты Intel Pro 1000. Одна из сетевых карт подключена в коммутатор 24 порта TP-LINK. Я не сильно им доверяю, но что получил в наследство — то и есть.

После некоторого времени работы, сетевой интерфейс, назовём его eth0, перестаёт пропускать через себя пакеты. Другими словами — зависает. После чего, в выводе команды ifconfig eth0, в поле errors: видим большое очень большое число.

Вывод команды mii-tool мне тоже не очень понравился… В нём явно были какие то ошибки)))
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
eth0: 100 Mbit, full duplex, link ok

Прочитав кучу ИТ ресурсов, так и не нашёл толковое решение этой проблемы. Что только не предлагали, и драйвера пересобрать и обновить ядро Debian. Всё это я сделал (подробности чуть позже), но ошибка продолжала преследовать меня.

После трёхдневных «танцев с бубном» появились некоторые идеи.
Первое, что я сделал, была установка полезной утилитки ethtool. Вывод смотрите ниже…

:apt-get install ethtool 
:ethtool eth0
Settings for eth0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: on
	Supports Wake-on: pumbg
	Wake-on: g
	Current message level: 0x00000007 (7)
	Link detected: yes

А вот после обрыва соединения в этом выводе отсутствовали значения в полях: Duplex и Speed. Стало ясно, что некорректно работает режим auto-negotiation. И после некоторого времени работы не может согласовать режим подключения, в результате чего теряет подключение.

Строгие настройки дуплекса
Было принято решение отключить у сетевого интерфейса eth0 возможность автоматического определения параметров соединения.

Для этого воспользуемся всё той же замечательной утилитой ethtool. Добавим в автозагрузку (файл /etc/rc.local) следующие строки:
ethtool -s eth0 speed 100 duplex full autoneg off

или выполним в командной строке
:echo ethtool -s eth0 speed 100 duplex full autoneg off >> /etc/rc.local

Хочу заметить, что «speed 100» в этой строке это скорость сетевого интерфейса. Если Вам нужна другая скорость — укажите её (пример: «speed 10» или «speed 1000»).

После перезагрузки сетевое соединение стабилизировалось. На данный момент времени, сервер наработал уже более 3-х недель без потери сетевого соединения, а значит — одной головной болью меньше)

Команда ethtool теперь имеет такой вывод:

:ethtool eth0
Settings for eth0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supports auto-negotiation: Yes
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Speed: 100Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: off
	MDI-X: off
	Supports Wake-on: pumbg
	Wake-on: g
	Current message level: 0x00000007 (7)
	Link detected: yes

К сожалению, ошибки SIOCGMIIREG так и не исчезли,
SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
eth0: 100 Mbit, full duplex, link ok

но теперь на скорость и стабильность соединения они не влияют, а значит и не заслуживают внимания.

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
comments powered by Disqus