Поморгать портом linux ethtool

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Ethtool: как изменить скорость, дуплекс и находить неполадки сетевой карты в Linux

Настраиваем дуплексную связь

Конфигурация вашей сетевой карты напрямую влияет, насколько эффективно взаимодействуют ваши сервера.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Необходимо понимать, как настройки автосогласования, скорости и дуплекса влияют на передачу данных, чтобы успешно поддерживать сетевое соединение. А также расскажем про дополнительные фичи, которые помогут находить и устранять сетевые неполадки.

В этой статье вы узнаете, как изменить настройки скорости, дуплекса и автосогласования в Linux с помощью команд ethtool .

Что такое полудуплекс, полный дуплекс и автосогласование?

Полудуплексный режим (Half-duplex) позволяет устройству отправлять или получать пакеты по очереди. Устройство, установленное в этот режим, не может выполнять оба действия одновременно.

Когда режим устройства находится в полнодуплексном режиме (Full-duplex), он также может отправлять и получать пакеты одновременно.

Автосогласование (Auto-Negotiation) — это механизм, с помощью которого устройство автоматически выбирает наиболее эффективный режим передачи на основе характеристик своих аналогов. Рекомендуется оставить автосогласование включенным, поскольку оно позволяет устройствам выбирать наиболее эффективные средства для передачи данных.

Что такое дуплексное несоответствие?

Такое происходит когда устройство с включенным автосогласованием подключается к устройству, которое не использует автосогласование. Конец соединения с активным автосогласованием все еще может определить скорость другого конца, но не может правильно определить дуплексный режим. Как правило, конец соединения с автоматическим согласованием будет использовать полудуплекс, тогда как другой конец может быть в дуплексном режиме. Эта ситуация считается дуплексным несоответствием (duplex mismatch).

Несоответствие дуплекса не прекращает связь полностью. Передача отдельных пакетов и небольших объемов данных не вызывают больших проблем. Однако при отправке большого объема данных с любого конца скорость значительно падает. Соединение работает, но производительность снижается, поскольку скорость передачи данных асимметрична и может привести к потере пакетов.

Как использовать команду Ethtool для настройки параметров сетевого адаптера

Ethtool — это команда конфигурации платы сетевого интерфейса, которая позволяет вам получать информацию и изменять настройки сетевого адаптера. Эти настройки включают скорость, дуплекс, автосогласование и многие другие параметры.

Читайте также:  Сканирование с linux сервера

Помимо этого, ethtool используется для:

  1. Получения идентификационной и диагностической информации
  2. Получения расширенной статистики устройства
  3. Контроля контрольной суммы
  4. Контроля размеров кольца DMA и модерации прерываний
  5. Контроля выбора очереди приема для устройств с несколькими очередями
  6. Обновления прошивки во флеш-памяти

Для установки ethtool используйте следующие команды:

Чтобы продолжить, вам нужно знать имя вашей сетевой карты.

Чтобы найти имя вашей сетевой карты, введите в командном терминале следующую команду:

Вывод покажет нам имя сетевой карты устройства.

Теперь, когда вы определили имя устройства, проверьте текущие настройки скорости, автосогласования и дуплексного режима с помощью команды: ethtool имя_устройства .

В нашем конкретном примере команда выглядит так:

Выходные данные показывают, что текущая скорость равна 1000 Мбит/с, что дуплекс находится в режиме «Full», и что автосогласование включено.

Изменение настроек сетевого адаптера

Команда ethtool –s может использоваться для изменения текущих настроек путем определения значений скорости speed , дуплекса duplex и автосогласования autoneg в следующем формате:

Например, чтобы установить скорость 1000 Мбит/с, дуплексный режим — «полный», а автоматическое согласование — «включено», команда будет выглядеть так:

Команда ethtool [имя_устройства] необходима для подтверждения того, что изменения были применены.

Сохранение настроек

Изменения, сделанные с помощью Ethtool, по умолчанию отменяются после перезагрузки системы.

Чтобы применить пользовательские настройки при каждой загрузке системы, отредактируйте файл для интерфейса устройства:

Добавьте нужные значения в виде строки в конце файла, используя следующий синтаксис:

Сохраните изменения и выйдите из файла.

Теперь изменения применяются после каждой перезагрузки и являются постоянными, если файл не будет изменен снова.

Просмотр статистики интерфейса

Если вы хотите получить статистику о вашей сетевой карте, введите команду:

Вывод этой команды будет выглядеть так:

Использование приведенной выше команды — отличный способ устранения проблем с конкретной сетевой картой.

Физическое расположение конкретного сетевого адаптера

Вот действительно полезный трюк, который предлагает ethtool : допустим у вас есть сервер с несколькими сетевыми картами, и одна из них работает со сбоями, но вы не уверены, какая именно это карта. Вы можете использовать ethtool , чтобы заставить мигать индикатор сетевого адаптера, чтобы определить, какой сетевой адаптер вам нужен. Скажем, если вы хотите мигать светодиодом устройства Ethernet enp0s3 в течение 15 секунд — команда для этого будет выглядеть так:

Светодиод начнет мигать, чтобы вы знали, с какой картой вы имеете дело.

Тестирование сетевой карты

Команда ethtool предлагает пару удобных тестов, которые вы можете запустить на сетевой карте:

  1. Online — тесты nvram и тест ссылок
  2. Offline — тестирует регистр, память, loopback, прерывание

Давайте запустим онлайн-тест на нашей сетевой карте. Эта команда выглядит так:

После выполнения команда покажет нам результаты:

Учтите, что некоторые устройства не поддерживают offline тестирование.

Информация о драйвере

Чтобы узнать имя драйвера и связанную информацию о драйвере используйте:

Заключение

Следуя этому руководству, вы успешно изменили настройки своей сетевой карты с помощью команд ethtool . Вы также лучше поняли, как режимы автосогласования и дуплекса влияют на производительность сервера. И заодно узнали пару интересных функций команды ethtool .

Читайте также:  Установить браузер opera для windows 10

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Поморгать портом linux ethtool

Команда ethtool позволяет использовать утилиту с соответствующим именем для изменения низкоуровневых параметров сетевых карт. Данная утилита способна изменять огромное количество параметров сетевых карт, большая часть из которых не интересна обычным пользователям. Кроме того, драйверы сетевых карт домашних компьютеров и ноутбуков не позволяют изменять большую часть поддерживаемых утилитой параметров, поэтому в большинстве случаев она используется для проверки и установки скорости сетевого соединения, а также режима работы сетевой карты.

Базовый синтаксис команды выглядит следующим образом:

# ethtool [параметры] имя-сетевого-интерфейса

Утилита поддерживает огромное количество параметров. Наиболее важными из них являются параметр -i, позволяющий получить информацию о драйвере сетевой карты, параметр -S, позволяющий получить статистику работы сетевой карты в случае поддержки этой функции драйвером, параметр -s, позволяющий установить скорость и режим работы сетевой карты, параметры -k и -K, позволяющие получить и установить значения параметров режима передачи данных, а также параметр -p, позволяющий идентифицировать порт сетевой карты с помощью мигающего индикатора.

Утилита работает с именами сетевых интерфейсов, связанных с сетевыми картами, поэтому для работы с ней нужно выяснить имя сетевого интерфейса, связанного с интересующей вас сетевой картой. Для этого может использоваться одна из следующих команд:

# ifconfig -a
# ip a s

Установка утилиты

В первую очередь вам придется установить рассматриваемую утилиту; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды. Подробнее об установке программного обеспечения рассказано в данном разделе.

Команда для Linux Mint, Ubuntu и Debian:

$ sudo apt-get install ethtool

Команда для Fedora Workstation:

$ sudo dnf install ethtool

Примеры использования

Определение имени сетевого интерфейса

Для определения имени сетевого интерфейса, которое нужно передавать утилите ethtool, следует использовать утилиту ifconfig или ip. Вторая утилита предустановлена во всех популярных дистрибутивах, поэтому рассмотрим пример ее использования:

# ip a s
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 8c:89:a5:57:76:ba brd ff:ff:ff:ff:ff:ff
inet 192.168.188.120/24 brd 192.168.188.255 scope global dynamic noprefixroute enp3s0
valid_lft 111sec preferred_lft 111sec
inet6 fe80::8e89:a5ff:fe57:76ba/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wwp5s0f2u1u4i1:
mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:50:f3:00:00:00 brd ff:ff:ff:ff:ff:ff

Сетевое соединение через интересующую нас сетевую карту установлено, поэтому сетевой интерфейс с идентификатором 3 под названием wwp5s0f2u1u4i1 не подходит (state DOWN означает, что сетевой интерфейс деактивирован). Сетевой интерфейс с идентификатором 1 под названием lo также не подходит (state UNKNOWN означает, что сетевой интерфейс находится в неизвестном состоянии), кроме того, по флагу LOOPBACK можно установить, что это кольцевой интерфейс. Остается сетевой интерфейс с идентификатором 2 и именем enp3s0 в активном состоянии (state UP) с приведенными параметрами. Именно это имя и нужно использовать.

Читайте также:  Что такое дистрибутив linux ubuntu

Получение параметров сетевой карты

Для получения параметров сетевой карты достаточно использовать утилиту без каких-либо параметров:

# ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: pg
Wake-on: d
Current message level: 0x0000003f (63)
drv probe link timer ifdown ifup
Link detected: yes

Очевидно, что сетевая карта поддерживает сетевое соединение (Link detected: yes) в полнодуплексном режиме передачи (Duplex: Full) с максимальной скоростью в 100 Мб/с (Speed: 100Mb/s) через витую пару (Port: Twisted Pair). При этом она может передавать данные даже в полнодуплексном режиме со скоростью 1 Гб/с (Supported link modes: 10baseT/Half . 1000baseT/Full), поддерживает автосогласование (Supports auto-negotiation: Yes) и использует его (Advertised auto-negotiation: Yes).

Установка параметров сетевого соединения

Для установки параметров сетевого соединения следует использовать параметр -s:

# ethtool -s enp3s0 speed 10 duplex full autoneg off

Это команда для снижения скорости передачи до 10 Мб/с (speed 10) в полнодуплексном режиме (duplex full) и отключения функции автосогласования (autoneg off). Для прверки изменений достаточно использовать утилиту без каких-либо параметров:

# ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: pg
Wake-on: d
Current message level: 0x0000003f (63)
drv probe link timer ifdown ifup
Link detected: yes

Очевидно, что теперь соединение установлено на скорости 10 Мб/с (Speed: 10Mb/s) без автосогласования (Advertised auto-negotiation: No).

Получение параметров драйвера сетевой карты

Для получения параметров драйвера сетевой карты достаточно использовать параметр -i:

# ethtool -i enp3s0
driver: atl1c
version: 1.0.1.1-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:03:00.0
supports-statistics: no
supports-test: no
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Очевидно, для управления сетевой картой используется драйвер atl1c версии 1.0.1.1-NAPI. Карта использует порт 0000:03:00.0, ее драйвер не не предоставляет доступа к механизмам сбора статистики (supports-statistics: no) и тестирования (supports-test: no).

Идентификация порта сетевой карты

Для идентификации порта сетевой карты с помощью мигающего индикатора достаточно использовать параметр -p:

# ethtool -p enp3s0 10
Cannot identify NIC: Operation not supported

Значение 10 устанавливает длительность периода мигания индикатора, равную 10 секундам. Очевидно, в моем случае сетевая карта не поддерживает подобную функцию.

Источник

Оцените статью