![Невозможно отключить автоотрицание через ethtool](https://rvso.com/image/756242/%D0%9D%D0%B5%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20%D0%B0%D0%B2%D1%82%D0%BE%D0%BE%D1%82%D1%80%D0%B8%D1%86%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20ethtool.png)
Я хочу отключить auto-negotiation
функцию NIC, я запускаю следующую команду
$sudo ethtool -s ens1f0 speed 10000 duplex full autoneg off
Затем я проверяю, вступило ли изменение в силу, с помощью ethtool ens1f0
:
Settings for ens1f0:
Supported ports: [ FIBRE ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
Он autoneg
все еще включен, почему он не работает?
Обновление 2020/8/22
Моя сетевая карта — 82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb
, и я обнаружил, что функция соединения 10GBASE-T auto-neg
в некоторых случаях может быть отключена.
- Странно, что два порта сетевой карты имеют разные
autoneg
состояния. Я действительно в замешательстве по этому поводу.
Settings for ens1f0:
Supported ports: [ FIBRE ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
Settings for ens1f1:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
- Когда порт не соединяется с одноранговым узлом, индикатор
autoneg
выключен.
Settings for ens1f1:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Port: Other
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
решение1
Невозможно отключить автосогласование на канале 10GBASE-T. Стандарт 802.3 указывает, чтоавтосогласование является обязательнымдля таких ссылок. Вот некоторые из причин этого:
55.6.1 Поддержка автоматического согласования
Все 10GBASE-T PHY должны поддерживать Auto-Negotiation (пункт 28) и должны быть способны работать как MASTER или SLAVE. Все 10GBASE-T PHY должны поддерживать Extended Next Pages, как определено в 28.2.3.4.2, и должны поддерживать и использовать оптимизированную синхронизацию FLP Burst to FLP burst, как определено в 28.2.1.1.1, а также nlp_link_test_min_timer и link_fail_inhibit_timer, как определено в 28.3.2.
Автосогласование выполняется как часть первоначальной настройки канала и позволяет PHY на каждом конце объявлять свои возможности (скорость, тип PHY, полудуплекс или полный дуплекс) и автоматически выбирать режим работы для связи по каналу. Сигнализация автосогласования используется для следующих основных целей для 10GBASE-T:
- Добиться того, чтобы физический уровень поддерживал передачу данных 10GBASE-T.
- Определить отношение MASTER-SLAVE между физическими устройствами на каждом конце канала.
- Чтобы определить, выполняет ли локальный PHY сброс шаблона обучения PMA.
- Чтобы определить, поддерживает ли локальный PHY возможности EEE.
- Определить, поддерживает ли локальный физический уровень возможность быстрого переобучения.