В помощь системным администраторам полезная Linux-утилита ethtool для получения информации о сетевых интерфейсах и изменения низкоуровневых параметров сетевых карт.
Тестовый стенд — сервер Dell с операционной Ubuntu 18.04.5 LTS на примере 10G сетевой карты Intel X710.
Dell — Intel X710 Dual Port 10Gb Direct Attach SFP+ CNA
Установка ethtool
Ubuntu, Debian:
apt install ethtool
Fedora, CentOS или REHL:
yum install ethtool
OpenSUSE:
zypper install ethtool
Синтаксис ethtool
ethtool [параметры] имя-сетевого-интерфейса
Основные параметры:
- --version — версия утилиты.
- -i, --driver — информация о драйвере.
- -P, --show-permaddr — выводит физический MAC адрес устройства. Может не совпадать с текущим при использовании bonding.
- -p, --identify — мигает светодиодом порта сетевой карты.
- -r, --negotiate — выполняет повторное согласование скорости передачи данных, если включено автоматическое согласование.
- -S, --statistics — выводит статистику.
- -s, --change — позволяет менять настройки сетевого интерфейса. После перезагрузки настройки сбрасываются.
- -k, --show-offload — позволяет посмотреть какие технологии offload включены.
- --reset — позволяет сбросить настройки различных компонентов сетевой карты, для сброса всех настроек используйте all;
- лень дальше писать, смотрите помощь — ethtool -h
Примеры
Информация об интерфейсе:
-
ethtool enp101s0f0
Settings for enp101s0f0: Supported ports: [ FIBRE ] Supported link modes: 10000baseLR/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10000baseLR/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 10000Mb/s Duplex: Full Port: FIBRE PHYAD: 0 Transceiver: internal Auto-negotiation: off Supports Wake-on: g Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: yes
Можно узнать, что используется порт FIBRE, скорость 10G, Full Duplex.
Если нужно просто узнать скорость, то можно воспользоваться командой:
cat /sys/class/net/<interface>/speed
cat /sys/class/net/enp101s0f0/speed
Информация о драйвере:
-
ethtool -i enp101s0f0
driver: i40e version: 2.1.14-k firmware-version: 7.10 0x800075df 19.5.12 expansion-rom-version: bus-info: 0000:65:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: yes
Статистика:
-
ethtool -S enp101s0f0
NIC statistics: rx_packets: 74900322 tx_packets: 4887233 rx_bytes: 113010698737 tx_bytes: 487802058 rx_errors: 0 tx_errors: 0 rx_dropped: 0 tx_dropped: 0 collisions: 0 rx_length_errors: 0 rx_crc_errors: 0 rx_unicast: 74898654 tx_unicast: 4887131 rx_multicast: 1627 tx_multicast: 67 rx_broadcast: 38 tx_broadcast: 32 rx_unknown_protocol: 0 tx_linearize: 0 tx_force_wb: 0 rx_alloc_fail: 0 rx_pg_alloc_fail: 0 tx-0.tx_packets: 1227 tx-0.tx_bytes: 342037 rx-0.rx_packets: 1481 rx-0.rx_bytes: 1576152 tx-1.tx_packets: 390909 tx-1.tx_bytes: 39323064 rx-1.rx_packets: 5743702 rx-1.rx_bytes: 8672992870 tx-2.tx_packets: 872 tx-2.tx_bytes: 156985 rx-2.rx_packets: 3008 rx-2.rx_bytes: 1700907 tx-3.tx_packets: 958 tx-3.tx_bytes: 305456 rx-3.rx_packets: 399 rx-3.rx_bytes: 64714 tx-4.tx_packets: 233862 tx-4.tx_bytes: 24223992 rx-4.rx_packets: 3475384 rx-4.rx_bytes: 5244697387 tx-5.tx_packets: 233947 tx-5.tx_bytes: 24617891 rx-5.rx_packets: 3479749 rx-5.rx_bytes: 5251137452 tx-6.tx_packets: 521 tx-6.tx_bytes: 227616 rx-6.rx_packets: 961 rx-6.rx_bytes: 977775 tx-7.tx_packets: 336434 tx-7.tx_bytes: 36256352 rx-7.rx_packets: 5253406 rx-7.rx_bytes: 7921573655 tx-8.tx_packets: 591113 tx-8.tx_bytes: 59093288 rx-8.rx_packets: 8711873 rx-8.rx_bytes: 13151791074 tx-9.tx_packets: 200886 tx-9.tx_bytes: 20283840 rx-9.rx_packets: 2970075 rx-9.rx_bytes: 4481261048 tx-10.tx_packets: 171826 tx-10.tx_bytes: 17516939 rx-10.rx_packets: 2773391 rx-10.rx_bytes: 4183060434 tx-11.tx_packets: 834 tx-11.tx_bytes: 228234 rx-11.rx_packets: 637 rx-11.rx_bytes: 352306 tx-12.tx_packets: 51684 tx-12.tx_bytes: 4610650 rx-12.rx_packets: 738415 rx-12.rx_bytes: 1114097210 tx-13.tx_packets: 362526 tx-13.tx_bytes: 34601904 rx-13.rx_packets: 5385762 rx-13.rx_bytes: 8128258355 tx-14.tx_packets: 827 tx-14.tx_bytes: 263796 rx-14.rx_packets: 1475 rx-14.rx_bytes: 1612873 tx-15.tx_packets: 1006400 tx-15.tx_bytes: 103033026 rx-15.rx_packets: 15924265 rx-15.rx_bytes: 24025481370 tx-16.tx_packets: 51558 tx-16.tx_bytes: 4468231 rx-16.rx_packets: 740312 rx-16.rx_bytes: 1116889931 tx-17.tx_packets: 362864 tx-17.tx_bytes: 34592520 rx-17.rx_packets: 5386457 rx-17.rx_bytes: 8129762977 tx-18.tx_packets: 790 tx-18.tx_bytes: 162182 rx-18.rx_packets: 709 rx-18.rx_bytes: 516807 tx-19.tx_packets: 887195 tx-19.tx_bytes: 83494055 rx-19.rx_packets: 14308861 rx-19.rx_bytes: 21582893440 port.rx_bytes: 113609935018 port.tx_bytes: 533154590 port.rx_unicast: 74898657 port.tx_unicast: 4887131 port.rx_multicast: 1767 port.tx_multicast: 134 port.rx_broadcast: 66 port.tx_broadcast: 32 port.tx_errors: 0 port.rx_dropped: 0 port.tx_dropped_link_down: 2 port.rx_crc_errors: 0 port.illegal_bytes: 0 port.mac_local_faults: 2 port.mac_remote_faults: 141 port.tx_timeout: 0 port.rx_csum_bad: 0 port.rx_length_errors: 0 port.link_xon_rx: 0 port.link_xoff_rx: 0 port.link_xon_tx: 0 port.link_xoff_tx: 0 port.rx_size_64: 157 port.rx_size_127: 188616 port.rx_size_255: 23476 port.rx_size_511: 1879 port.rx_size_1023: 849 port.rx_size_1522: 74685513 port.rx_size_big: 0 port.tx_size_64: 3124300 port.tx_size_127: 29591 port.tx_size_255: 1670435 port.tx_size_511: 5282 port.tx_size_1023: 593 port.tx_size_1522: 57096 port.tx_size_big: 0 port.rx_undersize: 0 port.rx_fragments: 0 port.rx_oversize: 0 port.rx_jabber: 0 port.VF_admin_queue_requests: 0 port.arq_overflows: 0 port.rx_hwtstamp_cleared: 0 port.tx_hwtstamp_skipped: 0 port.fdir_flush_cnt: 0 port.fdir_atr_match: 75128157 port.fdir_atr_tunnel_match: 0 port.fdir_atr_status: 1 port.fdir_sb_match: 0 port.fdir_sb_status: 1 port.tx_lpi_status: 0 port.rx_lpi_status: 0 port.tx_lpi_count: 0 port.rx_lpi_count: 0 port.tx_priority_0_xon: 0 port.tx_priority_0_xoff: 0 port.tx_priority_1_xon: 0 port.tx_priority_1_xoff: 0 port.tx_priority_2_xon: 0 port.tx_priority_2_xoff: 0 port.tx_priority_3_xon: 0 port.tx_priority_3_xoff: 0 port.tx_priority_4_xon: 0 port.tx_priority_4_xoff: 0 port.tx_priority_5_xon: 0 port.tx_priority_5_xoff: 0 port.tx_priority_6_xon: 0 port.tx_priority_6_xoff: 0 port.tx_priority_7_xon: 0 port.tx_priority_7_xoff: 0 port.rx_priority_0_xon: 0 port.rx_priority_0_xoff: 0 port.rx_priority_1_xon: 0 port.rx_priority_1_xoff: 0 port.rx_priority_2_xon: 0 port.rx_priority_2_xoff: 0 port.rx_priority_3_xon: 0 port.rx_priority_3_xoff: 0 port.rx_priority_4_xon: 0 port.rx_priority_4_xoff: 0 port.rx_priority_5_xon: 0 port.rx_priority_5_xoff: 0 port.rx_priority_6_xon: 0 port.rx_priority_6_xoff: 0 port.rx_priority_7_xon: 0 port.rx_priority_7_xoff: 0 port.rx_priority_0_xon_2_xoff: 0 port.rx_priority_1_xon_2_xoff: 0 port.rx_priority_2_xon_2_xoff: 0 port.rx_priority_3_xon_2_xoff: 0 port.rx_priority_4_xon_2_xoff: 0 port.rx_priority_5_xon_2_xoff: 0 port.rx_priority_6_xon_2_xoff: 0 port.rx_priority_7_xon_2_xoff: 0
Физический MAC адрес:
-
ethtool -P enp101s0f0
Permanent address: f8:f2:1e:ba:f3:20
Очень полезная команда для сисадминов, позволяющая подсветить линк на порту сетевой карты:
ethtool -p enp101s0f0 10
Где 10 — это количество секунд, сколько должен мигать светодиод.