9 примеров Linux ethtool для манипулирования картой Ethernet (карта NIC)

Мы предоставляем услуги удаленного администрирования серверов

9 примеров Linux ethtool для манипулирования картой Ethernet (карта NIC)

Поделиться

Утилита Ethtool используется для просмотра и изменения параметров устройства Ethernet.

1. Перечислите свойства устройства Ethernet

При выполнении команды ethtool с именем устройства отображается следующая информация об устройстве Ethernet.

# 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 auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Link detected: yes

Этот вышеприведенный вывод ethtool отображает свойства карты Ethernet, такие как скорость, пробуждение, дуплекс и состояние обнаружения канала. Ниже приведены три типа доступных дуплексов.

  • Полный дуплекс: разрешает отправку и получение пакетов одновременно. Этот режим используется, когда устройство Ethernet подключено к коммутатору.
  • Полудуплекс: позволяет отправлять или получать пакеты в один момент времени. Этот режим используется, когда устройство Ethernet подключено к концентратору.
  • Автосогласование: если включено, само устройство Ethernet решает, использовать ли полный дуплекс или полудуплекс на основе сети, к которой подключено устройство Ethernet.

2. Измените параметр NIC с помощью опции ethtool -s autoneg

Приведенный выше выход ethtool eth0 показывает, что параметр «Автосогласование» находится во включенном состоянии. Вы можете отключить это, используя опцию autoneg в ethtool, как показано ниже.

# ifdown eth0
    eth0      device: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
    eth0      configuration: eth-bus-pci-0000:0b:00.0

# ethtool  -s eth0 autoneg off

# 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 auto-negotiation: No
        Speed: Unknown! (65535)
        Duplex: Unknown! (255)
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: off
        Supports Wake-on: g
        Wake-on: g
        Link detected: no
# ifup eth0

После вышеуказанного изменения вы можете увидеть, что значение «обнаружение канала» изменилось на «выключено», и автосогласование отключено.

3. Измените скорость устройства Ethernet

Используя ethtool, вы можете изменить скорость устройства Ethernet для работы с определенными сетевыми устройствами, а новое назначенное значение скорости должно быть в пределах ограниченной емкости.

# ethtool -s eth0 speed 100 autoneg off

# 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 auto-negotiation: No
        Speed: Unknown! (65535)
        Duplex: Unknown! (255)
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: off
        Supports Wake-on: g
        Wake-on: g
        Link detected: no

Когда вы меняете скорость, когда адаптер подключен к сети, он автоматически отключается, и вам необходимо снова подключить его с помощью команды ifup.

 

 

# ifup eth0
    eth0      device: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
    eth0      configuration: eth-bus-pci-0000:0b:00.0
Checking for network time protocol daemon (NTPD):                     running

# 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 auto-negotiation: No
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: off
        Supports Wake-on: g
        Wake-on: g
        Link detected: yes

Как показано в приведенном выше выводе, скорость изменилась с 1000 Мбит / с до 100 Мбит / с, и параметр автосогласования не установлен.

Чтобы изменить максимальную единицу передачи (MTU), обратитесь к нашей статье примеров ifconfig .

4. Отображение настроек драйвера Ethernet

Параметр ethtool -i отображает версию драйвера, версию прошивки и информацию о шине, как показано ниже.

# ethtool -i eth0
driver: bnx2
version: 2.0.1-suse
firmware-version: 1.9.3
bus-info: 0000:04:00.0

5. Дисплей автосогласования, RX и TX из eth0

Просмотрите сведения об автосогласовании для конкретного устройства Ethernet, как показано ниже.

# ethtool -a eth0
Pause parameters for eth0:
Autonegotiate:  on
RX:             on
TX:             on

6. Показать статистику сети конкретного устройства Ethernet

Используйте опцию ethtool -S для отображения переданных, полученных, ошибок и т. д. Байтов, как показано ниже.

# ethtool -S eth0
NIC statistics:
     rx_bytes: 74356477841
     rx_error_bytes: 0
     tx_bytes: 110725861146
     tx_error_bytes: 0
     rx_ucast_packets: 104169941
     rx_mcast_packets: 138831
     rx_bcast_packets: 59543904
     tx_ucast_packets: 118118510
     tx_mcast_packets: 10137453
     tx_bcast_packets: 2221841
     tx_mac_errors: 0
     tx_carrier_errors: 0
     rx_crc_errors: 0
     rx_align_errors: 0
     tx_single_collisions: 0
     tx_multi_collisions: 0
     tx_deferred: 0
     tx_excess_collisions: 0
     tx_late_collisions: 0
     tx_total_collisions: 0
     rx_fragments: 0
     rx_jabbers: 0
     rx_undersize_packets: 0
     rx_oversize_packets: 0
     rx_64_byte_packets: 61154057
     rx_65_to_127_byte_packets: 55038726
     rx_128_to_255_byte_packets: 426962
     rx_256_to_511_byte_packets: 3573763
     rx_512_to_1023_byte_packets: 893173
     rx_1024_to_1522_byte_packets: 42765995
     rx_1523_to_9022_byte_packets: 0
     tx_64_byte_packets: 3633165
     tx_65_to_127_byte_packets: 51169838
     tx_128_to_255_byte_packets: 3812067
     tx_256_to_511_byte_packets: 113766
     tx_512_to_1023_byte_packets: 104081
     tx_1024_to_1522_byte_packets: 71644887
     tx_1523_to_9022_byte_packets: 0
     rx_xon_frames: 0
     rx_xoff_frames: 0
     tx_xon_frames: 0
     tx_xoff_frames: 0
     rx_mac_ctrl_frames: 0
     rx_filtered_packets: 14596600
     rx_discards: 0
     rx_fw_discards: 0

7. Устраните проблемы с подключением Ethernet

Если есть проблема с сетевым подключением, вы можете проверить (или изменить) параметры устройства Ethernet, описанные в приведенных выше примерах, когда вы видите следующие проблемы в выходных данных команды ethtool.

  • Значение скорости и дуплекса отображается как неизвестно
  • Значение обнаружения ссылки отображается как Нет

После успешного подключения три параметра, упомянутые выше, получают соответствующие значения. т. е. скорости назначается известное значение, дуплекс становится либо полным / половинным, а обнаружение канала становится да.

После вышеупомянутых изменений, если обнаружение канала все еще говорит «Нет», проверьте, есть ли какие-либо проблемы в кабелях, идущих от коммутатора и системы, возможно, вы захотите углубиться в этот аспект.

Для захвата и анализа пакетов из определенного сетевого интерфейса используйте утилиту tcpdump .

8. Определите определенное устройство от нескольких устройств (мигает светодиодный порт карты NIC)

Предположим, что у вас есть машина с четырьмя адаптерами Ethernet, и вы хотите определить физический порт конкретной карты Ethernet. (Например, eth0).

Используйте параметр ethtool -p, который заставит мигать соответствующий светодиод физического порта.

  # ethtool -p eth0

9. Делать изменения постоянными после перезагрузки

Если вы изменили какие-либо параметры устройства Ethernet с помощью ethtool, все они исчезнут после следующей перезагрузки, если вы не выполните следующее.

В Ubuntu вы должны изменить файл /etc/network/interfaces и добавить все ваши изменения, как показано ниже.

# vim /etc/network/interfaces
post-up ethtool -s eth2 speed 1000 duplex full autoneg off

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

В SUSE измените файл /etc/sysconfig/network/ifcfg-eth-id и включите новый скрипт, используя переменную POST_UP_SCRIPT, как показано ниже. Включите следующую строку в качестве последней строки в соответствующем файле конфигурации eth1 adpater.

# vim /etc/sysconfig/network/ifcfg-eth-id
POST_UP_SCRIPT='eth1'

Затем создайте новый файл scripts/eth1, как показано ниже в каталоге /etc/sysconfig/network. Убедитесь, что у сценария есть разрешение на выполнение, и убедитесь, что утилита ethtool находится в каталоге /sbin.

# cd /etc/sysconfig/network/

# vim scripts/eth1
#!/bin/bash
/sbin/ethtool -s duplex full speed 100 autoneg off
 2019-2020 © linuxadmins all rights reserved

Facebook Twitter Vkontakte