做網(wǎng)站待遇/什么是企業(yè)營銷型網(wǎng)站
文章目錄
- 一、ethtool
- 1.1 常見操作
- 1.1.1 展示設(shè)備屬性
- 1.1.2 改變網(wǎng)卡屬性
- 1.1.2.1 Auto-negotiation
- 1.1.2.2 Speed
- 1.1.3 展示網(wǎng)卡驅(qū)動設(shè)置
- 1.1.4 只展示 Auto-negotiation, RX and TX
- 1.1.5 展示統(tǒng)計
- 1.1.7 排除網(wǎng)絡(luò)故障
- 1.1.8 通過網(wǎng)口的 LED 區(qū)分網(wǎng)卡
- 1.1.9 持久化配置(無需 reboot)
一、ethtool
ethtool is used to query and control network device driver and hardware settings, particularly for wired Ethernet devices.
devname is the name of the network device on which ethtool should operate.
man 文檔
參考
1.1 常見操作
1.1.1 展示設(shè)備屬性
# root@ubuntu:~# ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536# ethtool eno1
Settings for eno1:Supported ports: [ TP MII ]Supported link modes: 10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullSupported pause frame use: Symmetric Receive-onlySupports auto-negotiation: YesSupported FEC modes: Not reportedAdvertised link modes: 10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullAdvertised pause frame use: Symmetric Receive-onlyAdvertised auto-negotiation: YesAdvertised FEC modes: Not reportedSpeed: Unknown!Duplex: Unknown! (255)Auto-negotiation: onmaster-slave cfg: preferred slavemaster-slave status: unknownPort: Twisted PairPHYAD: 0Transceiver: externalMDI-X: UnknownSupports Wake-on: pumbgWake-on: dLink detected: no# ethtool docker0
Settings for docker0:Supported ports: [ ]Supported link modes: Not reportedSupported pause frame use: NoSupports auto-negotiation: NoSupported FEC modes: Not reportedAdvertised link modes: Not reportedAdvertised pause frame use: NoAdvertised auto-negotiation: NoAdvertised FEC modes: Not reportedSpeed: 10000Mb/sDuplex: Unknown! (255)Auto-negotiation: offPort: OtherPHYAD: 0Transceiver: internalLink detected: yes# ethtool lo
Settings for lo:Link detected: yes
其中全雙工、半雙工、自動協(xié)商的區(qū)別如下:
- Full duplex : Enables sending and receiving of packets at the same time. This mode is used when the ethernet device is connected to a switch(交換機).
- Half duplex : Enables either sending or receiving of packets at a single point of time. This mode is used when the ethernet device is connected to a hub(集線器).
- Auto-negotiation : If enabled, the ethernet device itself decides whether to use either full duplex or half duplex based on the network the ethernet device attached to.
1.1.2 改變網(wǎng)卡屬性
1.1.2.1 Auto-negotiation
上文展示的 Auto-negotiation 為 true,可通過 -s autoneg 關(guān)閉它。
# ifdown eth0eth0 device: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)eth0 configuration: eth-bus-pci-0000:0b:00.0# ethtool -s eth0 autoneg off # -s 指定網(wǎng)卡名稱, 設(shè)置 autoneg = off# ethtool eno1
Settings for eno1:Supported ports: [ TP MII ]Supported link modes: 10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/Full。。。Auto-negotiation: off # 此處信息已變?yōu)?offLink detected: down # 此處信息已變?yōu)?down# ifup eno1
1.1.2.2 Speed
改變網(wǎng)卡速度,注意不要設(shè)置超過網(wǎng)卡的 limited capacity
# ethtool eth0 | grep SpeedSpeed: 1000Mb/s# ethtool -s eth0 speed 100 autoneg off# ethtool eth0 | grep SpeedSpeed: Unknown! (65535) # 注意:如果網(wǎng)卡在 online 時,被改了 speed 則會自動變?yōu)?offline,此時需要手動 ifup# ifup eth0eth0 device: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)eth0 configuration: eth-bus-pci-0000:0b:00.0Checking for network time protocol daemon (NTPD): running# ethtool eth0 | grep SpeedSpeed: 100Mb/s# 可看到設(shè)置后從 1000Mb/s 變?yōu)?100Mb/s
可通過 ifconfig 設(shè)置 MTU
1.1.3 展示網(wǎng)卡驅(qū)動設(shè)置
# ethtool -i eno1
driver: r8169
version: 5.19.1-051901-generic
firmware-version: rtl8168h-2_0.0.2 02/26/15
expansion-rom-version:
bus-info: 0000:59:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
1.1.4 只展示 Auto-negotiation, RX and TX
# ethtool -a eno1
Pause parameters for eno1:
Autonegotiate: on
RX: off
TX: off# 參數(shù)含義如下:
-a --show-pauseQueries the specified Ethernet device for pause parameter information.
1.1.5 展示統(tǒng)計
# ethtool -S eno1
NIC statistics:tx_packets: 6199rx_packets: 16548tx_errors: 0rx_errors: 1rx_missed: 0align_errors: 0tx_single_collisions: 0tx_multi_collisions: 0unicast: 4228broadcast: 10859multicast: 1461tx_aborted: 0tx_underrun: 0
1.1.7 排除網(wǎng)絡(luò)故障
連接成功后,我們期望 Speed 是明確的值,Duplex 是 Full/Half,Link detection 是 Yes。如果不是(如Speed、Duplex 為 Unknow 時,Link detection 為 No 時),可能交換機或網(wǎng)絡(luò)設(shè)置有問題。
此時可以用 tcpdump 抓包分析。
1.1.8 通過網(wǎng)口的 LED 區(qū)分網(wǎng)卡
如果機器有很多網(wǎng)口,設(shè)置后,對應(yīng)的網(wǎng)口即會亮燈,即可區(qū)分對應(yīng)關(guān)系
ethtool -p eth0# 參數(shù)含義如下:-p --identifyInitiates adapter-specific action intended to enable an operator to easily identify the adapter by sight. Typically this involves blinking one or more LEDs on the specific network port.啟動特定于適配器的操作,以使操作員能夠輕松地通過視覺識別適配器。這通常涉及閃爍特定網(wǎng)絡(luò)端口上的一個或多個LED。[N] Length of time to perform phys-id, in seconds.
1.1.9 持久化配置(無需 reboot)
通過 ethtool 設(shè)置后,reboot 仍會恢復(fù)為設(shè)置前的狀態(tài)。但可通過寫配置文件的方式來持久化。
- ubuntu 設(shè)置如下:在 /etc/network/interfaces 配置則會持久化。
# vim /etc/network/interfaces
post-up ethtool -s eno1 speed 1000 duplex full autoneg off # 此行應(yīng)為本文件的最后一行
- SUSE 設(shè)置如下:
modify the /etc/sysconfig/network/ifcfg-eth-id file and include a new script using POST_UP_SCRIPT variable as shown below. Include the below line as the last line in the corresponding eth1 adpater config file.
# vim /etc/sysconfig/network/ifcfg-eth-id
POST_UP_SCRIPT='eth1'
Then, create a new file scripts/eth1 as shown below under /etc/sysconfig/network directory. Make sure that the script has execute permission and ensure that the ethtool utility is present under /sbin directory.
# cd /etc/sysconfig/network/# vim scripts/eth1
#!/bin/bash
/sbin/ethtool -s duplex full speed 100 autoneg off