LINUX下网卡相关知识

设置千兆网卡速度及模式
Ethtool是用于查询及设置网卡参数的命令。
概要:
ethtool ethX //查询ethX网口基本设置
ethtool –h //显示ethtool的命令帮助(help)
ethtool –i ethX //查询ethX网口的相关信息
ethtool –d ethX //查询ethX网口注册性信息
ethtool –r ethX //重置ethX网口到自适应模式
ethtool –S ethX //查询ethX网口收发包统计
ethtool –s ethX [speed 10|100|1000]\ //设置网口速率10/100/1000M
[duplex half|full]\ //设置网口半/全双工
[autoneg on|off]\ //设置网口是否自协商
[port tp|aui|bnc|mii]\ //设置网口类型
[phyad N]\
[xcvr internal|exteral]\
[wol p|u|m|b|a|g|s|d...]\
[sopass xx:yy:zz:aa:bb:cc]\
[msglvl N]

举例:
1)[root@linux /]# ethtool eth1
Settings for eth1:
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: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: d
Link detected: yes
2)[root@linux /]# ethtool -i eth1
driver: e1000
version: 5.0.43-k1
firmware-version: N/A
bus-info: 06:08.1
3)[root@linux /]# ethtool -S eth1
NIC statistics:
rx_packets: 58068300
tx_packets: 87124083
rx_bytes: 1589713008
tx_bytes: 2165825901
rx_errors: 0
tx_errors: 0
rx_dropped: 0
tx_dropped: 0
multicast: 0
collisions: 0
rx_length_errors: 0
rx_over_errors: 0
rx_crc_errors: 0
rx_frame_errors: 0
rx_fifo_errors: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_window_errors: 0
4)[root@linux /]# ethtool -s eth1 autoneg off speed 100 duplex full

相关:
1)[root@linux /]# which ethtool
/sbin/ethtool
2)[root@linux /]# rpm -qf /sbin/ethtool
ethtool-1.6-5
3)怎样使ethtool设置永久保存在网络设备中?
解决方法一:
ethtool设置可通过/etc/sysconfig/network-scripts/ifcfg-ethX文件保存,从而在设备下次启动时激活选项。
例如:ethtool -s eth0 speed 100 duplex full autoneg off
此指令将eth0设备设置为全双工自适应,速度为100Mbs。若要eth0启动时设置这些参数, 修改文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,添加如下一行:
ETHTOOL_OPTS="speed 100 duplex full autoneg off"
解决方法二:
将ethtool设置写入/etc/rc.d/rc.local之中。

如何在Linux下使用千兆网卡

  目前,千兆技术正在快速普及,特别是服务器端大多都使用千兆网卡。本文以Intel 1000MB以太网为例,介绍Linux下如何使用千兆以太网卡。
  Intel 1000MB网卡的Linux 驱动支持Intel提供的系统千兆网卡,其驱动程序目前版本为3.0.16,支持面向桌面及服务器的两种网卡。目前,Intel提供的千兆位以太网卡只支持模块加载方式。网卡驱动程序下载地址:http://support.intel.com/support/network/adapter。最新版本软件包为e1000-4.0.7.tar.gz。
  下载及编译
  1.编译安装驱动
  注意驱动程序的版本与内核对应关系,不要将用于2.2.x核心的软件包用于2.4.x核心。下载所得的驱动是一个压缩包,解压后将其拷贝到/tmp目录。
  2. 解压文件
  #tar -zxvf e1000-3.0.16.tar.gz
  3.进入解压开的文件目录
  #cd e1000-3.0.16/src/
  4.编译驱动程序(以模块方式)
  #make
  编译完成后,安装编译好的模块:
  #make install
  键入以上命令后,编译成功的文件将拷贝到指定目录。
  如果使用的核心为2.2.x,那么编译好的模块已安装到:
  /lib/modules/2.2.x/net/e1000.。
  如果是2.4.x核心,则编译好的模块安装到:
  /lib/modules/2.4.x/kernel/drivers/net/e1000.。
  
  驱动网卡
1.使用网卡驱动
  加载网卡驱动程序:
  #insmod e1000 [parameter=value]
  如果不显示出错信息,那么驱动加载正确。
  2.配置网卡IP地址及相关参数
  ifconfig eth0
  3.验证网卡工作状态
  使用Ping命令:
  #ping 172.24.24.24
  从别的PC上Ping 1000MB网卡的IP,可以发现1000M网卡工作在自适应模式下。当外部请示连接时,网卡驱动模块会自动加载,并在控制台上显示网卡启动信息。
  为了以后安装方便,还要创建一个rpm格式二进制安装包,以后就可直接运行rpm安装网卡驱动。
  高效率使用网卡
  系统加载模块时,可以根据实际情况调节参数,使网卡工作在最佳状态。
  驱动程序提供的可选择参数有速率、工作模式、自适应和流控等。
  在Linux下,可以定义合法速率参数为:0、10、100和1000。缺省为0,表示网卡工作在自适应状态下,其它值分别为10MB、100MB和1000MB。
  工作模式有全、半双工方式。0表示自适应;1表示半双工;2表示全双工。
  自适应方式的有效值范围: 0-0x0F, 0x20-0x2F,缺省为0x2F。具体参数请参阅软件包中的Readme文件。
  流控设置有效值范围0-3。0表示不设置流控;1表示仅对Rx流控;2表示仅对Tz流控;3表示对Rx/Tx双向流控;缺省为3。