• Linux网卡攻略


    Linux系统下的网卡不像Windows那么支持完善,有时需要自己动手,本文总结了相关的驱动安装、命令行工具和测试网卡的负载等内容。

    网卡驱动

    http://downloadcenter.intel.com/

    clip_image002

    安装包中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地址的方法将在常用命令部分中介绍。

    1system-config-network命令

    在命令提示行下输入system-config-network命令将会启动可视化网络配置界面(对于新手这个方式比较简单)

    2setup设置网卡信息

    在命令行下输入setup命令后将会进入系统设置界面,然后选择网卡设置进入网卡设置界面(很多系统都可以使用setup命令设置,运用比较广)

    3ifconfig网卡常用命令

    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.绑定IPMAC地址

    实现方法:创建/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/

    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

    本资料详细地址可从

    https://skydrive.live.com/embed?cid=56B433AD3D1871E3&resid=56B433AD3D1871E3%21611&authkey=AJbvG12sXg6gScQ&em=2

    下载

  • 相关阅读:
    P3531 [POI2012]LIT-Letters
    CF1338B Edge Weight Assignment
    CF118C Fancy Number
    New Year Contest
    P2587 [ZJOI2008]泡泡堂
    2021拓维游记
    CF1338C Perfect Triples
    gcc、g++、gdb安装
    vim教程之背键盘使我快乐
    Python起个头
  • 原文地址:https://www.cnblogs.com/2018/p/2772220.html
Copyright © 2020-2023  润新知