Forcer la vitesse des liens réseau sous Linux

Aujourd'hui, j'ai été confronté à un problème assez ennuyeux. J'ai un serveur avec une carte réseau de 1Gbps connectée à un switch de 1Gbps. J'ai essayé de sauvegarder mes données comme d'habitude mais le transfert était plus lent que d'habitude. En utilisant ethtool, j'ai vu que la vitesse du lien n'était que de 100Mbps !
Debug the current link speed (déboguer la vitesse de la liaison)
Tout d'abord, je dois récupérer le nom de l'interface réseau. Je pensais que c'était eth0 mais c'était enp2s0. Merci à Fedora pour cette nouvelle convention de nommage !
En utilisant la commande ip, je peux donc obtenir la liste de toutes les interfaces réseau et leur statut actuel.
Output :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff
L'interface enp2s0 est celle que je recherche. Je peux maintenant utiliser ethtool pour obtenir la vitesse actuelle du lien.
Output :
Settings for enp2s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: g
Link detected: yes
La ligne Speed est celle que je recherche. Elle indique 1000b/s, ce qui n'est pas ce que j'attends. Auto-negotiation est on donc la carte réseau devrait être capable de négocier la vitesse du lien avec le switch.
Ma carte supporte 1000baseT/Full comme le montre la ligne Supported link modes. Le switch supporte également 1000baseT/Full comme le montre la ligne Link partner advertised link modes. Alors pourquoi la vitesse du lien n'est-elle que de 100Mbps ?
Forcer la vitesse du lien
Je peux forcer la vitesse du lien en utilisant la commande ethtool.
Vérifions à nouveau la vitesse du lien.
Output :
Settings for enp2s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: g
Link detected: yes
La ligne Speed indique maintenant 1000Mb/s, ce qui correspond à ce que j'attendais.
Conclusion
Je ne sais pas vraiment pourquoi la vitesse du lien n'était que de 100Mbps. Peut-être y avait-il un problème avec le switch ou le câble. Je ferai des recherches plus tard. Pour l'instant, je suis content de ma vitesse de liaison de 1Gbps.