Linux系統下的網卡不像Windows那么支持完善,有時需要自己動手,本文總結了相關的驅動安裝、命令行工具和測試網卡的負載等內容。
網卡驅動
http://downloadcenter.intel.com/
安裝包中README有詳細說明,主要就是如下幾個命令
Make install
modprobe e1000e 或者 insmod e1000
rmmod e1000e; modprobe e1000e
網卡配置文件
對於網卡信息的配置通常包括:配置IP地址、子網掩碼和網關。網卡信息保存在網卡配置文件中。網卡配置文件位於/etc/sysconfig/network-scripts目錄下。一塊網卡對應一個網卡配置文件,配置文件命名規則:
ifcfg-網卡類型以及網卡的序列號
由於以太網卡類型是eth,網卡的序列號從0開始,所以第一塊網卡的配置文件名稱為ifcfg-eth0,第二塊網卡為ifcfg-eth1,以此類推。
網卡配置文件中常用配置文件名的還以如下:
DEVICE=eth0,定義該網卡的識別名稱。
BOOTPROTO=dhcp,啟動該網卡的識別名稱。
static/none:代表固定的IP地址;bootp/dhcp:通過BOOTP或DHCP協議取得IP地址。
HWADDR=00:02:B3:0B:64:22,該網卡的MAC地址。
ONBOOT=yes,啟動network服務時,是否啟用該網卡。當RedHat系統啟動network服務時,network服務一次讀取保存於/etc/sysconfig/network-scripts/目錄下所有網卡的配置文件。如果網卡配置文件的ONBOOT設置為yes,則network服務就會調用ifup命令啟動該網卡;如果網卡的配置文件的ONBOOT參數為no,network會跳過啟動這個網卡的工作。
TYPE=Ethernet,網卡的類型。
USERCTL=no,是否允許普通用戶啟動或者停止該網卡。
IPV6INIT=no,是否在該網卡上啟動IPV6的功能。
PEERDNS=yes,是否允許網卡在啟動時向DHCP服務器查詢DNS信息,並自動覆蓋/etc/resolv.conf配置文件。
以下配置項用於指定該網卡的靜態IP地址,此時BOOTPROTO必須為static或者none。
IPADDR=192.168.1.55,靜態方式指定網卡的IP地址。
NETMASK=255.255.255.0,定義該網卡的子網掩碼。
MTU=1500,設置網卡的MAC幀最大傳輸單位大小。
GATEWAY=192.168.1.1,設置網絡的默認網關。
DNS1=192.168.128.5,指定主要的DNS服務器地址。
DNS2=192.168.128.6,指定備用的DNS服務器地址。
配置網卡信息
配置網卡信息可以直接修改網卡配置文件中的相關內容,但是這種方法對用戶的要求比較高。在RedHat Enterprise Linux5中常用於設置IP地址的三個命令,分別是:system-config-network、setup和ifconfig。其中ifconfig設置IP地址的方法將在常用命令部分中介紹。
(1)system-config-network命令
在命令提示行下輸入system-config-network命令將會啟動可視化網絡配置界面(對於新手這個方式比較簡單)
(2)setup設置網卡信息
在命令行下輸入setup命令后將會進入系統設置界面,然后選擇網卡設置進入網卡設置界面(很多系統都可以使用setup命令設置,運用比較廣)
(3)ifconfig網卡常用命令
ifconfig命令的功能比較強大,可以用來查看和設置網卡信息。
a.查看網卡信息
命令語法:ifconfig [參數]
參數說明:
無參數:顯示當前活動的網卡
- a:顯示系統中所有網卡的配置信息
網卡設備名稱:顯示指定網卡的配置信息
eg:查看eth0網卡信息:#ifconfig eth0
b.設置IP地址
命令語法:ifconfig 網卡設備名 IP地址 netmask 子網掩碼
(注:ifconfig命令設置的IP地址即時生效,但是重啟機器后,IP地址又回復到原IP地址,所以ifconfig命令只能用於設置臨時的IP地址)
eg:ifconfig eth0 192.168.168.156 netmask 255.255.255.0
c.修改MAC地址
命令語法:ifconfig 網卡設備名 hw ether MAC地址
(注:修改網卡的MAC地址前要禁用網卡,修改后要啟用網卡)
eg:ifconfig eth0 hw ether 00:0C:29:03:F3:76
幾個常用的命令
1.ifdown禁用網卡
語法:ifdown 網卡設備名
2.ifup啟用網卡
語法:ifup 網卡設備名
3.綁定IP和MAC地址
實現方法:創建/etc/ethers文件,文件內容“ip地址 mac地址”,然后執行“arp -f”命令,是配置生效。
eg:將IP地址193.168.168.154與MAC地址00:0C:29:03:F3:75綁定。
#echo "193.168.168.154 00:0C:29:03:F3:75">>/etc/ethers
#arp -f
ethtool---查看網卡以及修改網卡配置工具
ethtool 是用於查詢及設置網卡參數的命令。
使用概要:
ethtool ethx //查詢ethx網口基本設置,其中 x 是對應網卡的編號,如eth0、eth1等等
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] [duplex half|full] [autoneg on|off] //設置網口速率10/100/1000M、設置網口半/全雙工、設置網口是否自協商
[root@linux /]# ethtool eth1 //查看網卡1信息
[root@linux /]# ethtool -i eth1 //查看網卡型號等
[root@linux /]# ethtool -S eth1 //查看數據率等
[root@linux /]# ethtool -s eth1 autoneg off speed 100 duplex full//強制修改網卡速率,配置成百兆網卡,autoneg off是一定要用,如果是on的話就是自適應配置,自動根據機器等進行配置。
[root@linux /]# which ethtool //查詢 ethtool 存放的路徑
/sbin/ethtool
[root@linux /]# rpm -qf /sbin/ethtool //查詢 ethtool 的版本信息
ethtool-1.6-5
將 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之中。
mii-tool 的用法
mii-tool 在更改網絡設備通信協商方式的方法比較簡單,用 -v 參數來查看網絡接口的狀態;看下面的例子;
mii-tool 更改網絡接口協商的方法;
[ ~]# mii-tool --help
usage: mii-tool [-VvRrwl] [-A media,... | -F media] [interface ...]
-V, --version display version information
-v, --verbose more verbose output 注:顯示網絡接口的信息;
-R, --reset reset MII to poweron state 注:重設MII到開啟狀態;
-r, --restart restart autonegotiation 注:重啟自動協商模式;
-w, --watch monitor for link status changes 注:查看網絡接口連接的狀態變化;
-l, --log with -w, write events to syslog 注:寫入事件到系統日志;
-A, --advertise=media,... advertise only specified media 注:指令特定的網絡接口;
-F, --force=media force specified media technology 注:更改網絡接口協商方式;
media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
(to advertise both HD and FD) 100baseTx, 10baseT
更改網絡接口的協商方式,我們要用到-F選項,后面可以接 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD等參數;
如果我們想把網絡接口eth0改為 1000Mb/s全雙工的模式應該怎么辦呢?
[root@localhost ~]# mii-tool -F 100baseTx-FD
[root@localhost ~]#mii-tool -v eth0
Ip
ip與ethtool的功能與傳統的ifconfig類似,而且功能更強。
ip下載:apt-get install iproute
# ip addr
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:e0:22:02:25:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
inet6 fe80::2e0:22ff:fe02:2546/64 scope link
valid_lft forever preferred_lft forever
# ip link
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:e0:22:02:25:46 brd ff:ff:ff:ff:ff:ff
# ip -s link ls dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:e0:22:02:25:46 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
287018517 364010 0 0 0 0
TX: bytes packets errors dropped carrier collsns
272957602 395576 0 0 0 0
網卡的負載測試工具
如果需要對網卡進行詳細的負載等指標檢測,可以使用如下的工具
Tcpdump
http://www.tcpdump.org/tcpdump_man.html
Tcprelay
http://tcpreplay.synfin.net/wiki/manual
Tcpreplay 是 UNIX 系統下用來編輯和重放網絡流量包的工具集合,這些流量包可以是通過 tcpdump 或 ethereal 等工具抓取的。 tcpreplay 提供了可靠的、可重復的方法來測試不同的網絡設備,包括:交換機、路由器、防火牆、入侵檢測系統 (IDS) 和入侵防御系統 (IPS) 。
tcpreplay:常用的發包軟件,可以重發tcpdump所捕獲的報文。
pktgen:linux內核自帶的發包工具。
http://blog.sina.com.cn/s/blog_63ac8a6c0100u17d.html
本資料詳細地址可從
下載