网卡的配置

1.通过ifconfig eth0 x.x.x.x来进行配置

我们知道,在Linux系统中通过ifconfig可以查看ip信息,这里我们可以通过 ifconfig eth0 x.x.x.x来对ip直接进行修改(注意:这种修改方式是立即生效的,但是却是临时的,当我们注销系统,再次进入时,ip信息又会变成配置之前的信息)

[root@www ~]#  ifconfig eth0 172.25.215.1  // 这样就可以将ip设置成172.25.215.1
ifconfig的其它一些命令:
ifconfig
****ifconfig
****ifconfig eth0 172.25.215.1 netmask  255.0.0.0
****ifconfig
****ifconfig
2.通过修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,这个文件我们可以对其各个属性进行修改,包括ip、子网掩码、默认网关等等
[root@www ~]#  vi /etc/sysconfig/network-scripts/ifcfg-eth0

 /****************************************如果是DHCP是动态的************************************/
 EVICE=eth0    // 网卡设备名称HWADDR=00:0c:29:b2:10:6a  // 计算机的mac地址
TYPE=Ethernet  // 以太网
UUID=b1eda882-d499-4804-b9de-f474cd90235a
ONBOOT=yes  // 计算机启动时是否激活网卡,取值为:yes/no
NM_CONTROLLED=yes
BOOTPROTO=dhcp  // 获取IP的方式:取值为:static/bootp/dhcp 
IPV6INIT=no
USERCTL=no
DNS2=202.96.128.166
DNS1=202.96.128.86
PEERDNS=yes

 /****************************************如果是自己手动进行配置ip等信息***************************************************/
 DEVICE=eth0
 ONBOOT=yes
 BOOTPROTO=none
 IPADDR=192.168.1.8  //  该网络接口的IP地址
 NETMASK=255.255.255.0  // 子网掩码
 GATEWAY=192.168.1.1  //  网关地址
 TYPE=Ethernet
 USERCTL=no
 PEERDNS=no
 NETWORK=192.168.1.0
 BROADCAST=192.168.1.255  //  广播地址
网卡高级命令
 
①mii-tool 命令  
 
mii-tool命令我们可以用来查看网卡状态信息,包括了以太网连接是否正常,使用的是哪种型号的网卡等等
 
[root@www ~]# mii-tool eth0
eth0: no autonegotiation, 100baseTx-FD,link ok
 
 
我们从输出的信息可以看到,当前以太网连接正常,以太网的速率是100M每秒,通过这个命令我们可以看到网卡底层的一些信息,当有时我们在上层通过ping、traceroute等命令进行网络排错时,如果发现网络还是不能连接畅通,这时就可以使用这个命令来查看是否是以太网连接出问题了
 
②ethtool 命令
 
通过mii-tool命令可以查看网卡的一些底层信息,但是如果我们想要查看网卡的更详细信息,就可以使用ethtool 这个命令,它可以将网卡的所有信息都详细列出来
 
 
[root@www ~]# ethtool eth0
Settings for eth0:
   Supported ports: [ TP ]
   Supported link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half100baseT/Full 
                            1000baseT/Full 
   Supported pause frame use: No
   Supports auto-negotiation: Yes
   Advertised link modes: 10baseT/Half 10baseT/Full 
                            100baseT/Half100baseT/Full 
                            1000baseT/Full 
   Advertised pause frame use: No
   Advertised auto-negotiation: Yes
   Speed: 1000Mb/s
   Duplex: Full
   Port: Twisted Pair
   PHYAD: 0
   Transceiver: internal
   Auto-negotiation: on
   MDI-X: Unknown
   Supports Wake-on: umbg
   Wake-on: d
   Current message level: 0x00000007 (7)
                   drv probe link
   Link detected: yes
 
包括网卡支持的链接速率、双工模式等等信息都能查看到
 
如果说我们想要查看网卡的驱动信息,可以在 ethtool 命令后加上 -i 参数,就能显示网卡的驱动信息了
 
 
[root@www ~]# ethtool -i eth0
 
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 
bus-info: 0000:00:03.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
 
如果说我们还需要查看网卡当前底层工作状态信息,可以在命令后加上 -S 参数
 
 
[root@www ~]# ethtool -S eth0
 
NIC statistics:
    rx_packets: 3255
    tx_packets: 898
    rx_bytes: 477575
    tx_bytes: 2228309
    rx_broadcast: 2190
    tx_broadcast: 198
    rx_multicast: 0
    tx_multicast: 6
    rx_errors: 0
    tx_errors: 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_no_buffer_count: 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
    tx_abort_late_coll: 0
    tx_deferred_ok: 0
    tx_single_coll_ok: 0
    tx_multi_coll_ok: 0
    tx_timeout_count: 0
     tx_restart_queue: 0
    rx_long_length_errors: 0
    rx_short_length_errors: 0
    rx_align_errors: 0
    tx_tcp_seg_good: 263
    tx_tcp_seg_failed: 0
    rx_flow_control_xon: 0
    rx_flow_control_xoff: 0
    tx_flow_control_xon: 0
    tx_flow_control_xoff: 0
    rx_long_byte_count: 477575
    rx_csum_offload_good: 0
    rx_csum_offload_errors: 0
    alloc_rx_buff_failed: 0
    tx_smbus: 0
    rx_smbus: 0
    dropped_smbus: 0
 
包括网卡发送了多少数据包、接受了多少数据包等信息都能看到。
 
所以通过 mii-tool 和ethtool 这两个命令,我们可以看到网卡更多的底层信息以及网卡的物理信息等等,这可能会为我们在进行网络排错时提供便利
 
IP别名
 
在Linux系统中,我们可以在一块物理网卡上配置多个IP地址,以此来实现类似子接口的功能,我们称之为IP别名。当然在其他操作系统上,比如windowns、mac os上也支持在一块物理网卡配置多个IP地址。比如说我们的Linux主机作为一个DHCP服务器,它可能要为不同的网段分配多个IP地址,在Linux系统中,我们通过IP别名来实现在一块物理网卡上配置多个IP地址。
 
【注意:】要使用IP别名来配置多个IP地址,我们首先需要关闭NetworkManager服务
 
在CentOS或者RHEL上,都默认会启用NerworkManager这个服务来对网卡进行管理,NetworkManager服务其实就是我们操作系统右上方那两个小电脑图标,我们在图形化界面可以点击那个来指定使用哪块网卡,但是我们如果需要使用IP别名,就必须要禁用掉这个服务
 
 
[root@www ~]# service NetworkManager stop
Stopping NetworkManager daemon:                            [  OK  ]  // 停掉我们的NetworkManager服务,此时我们可以发现右上角那个图标就不见了
 
[root@www ~]# chkconfig NetworkManager off
 
[root@www ~]# chkconfig --list | grep NetworkManager
NetworkManager     0:off   1:off    2:off    3:off   4:off    5:off    6:off
 
在停掉NetworkManager服务以后我们就可以使用IP别名技术来配置多个IP地址了,这里我们使用 ip 这个命令,命令语法格式如下:
 
ip addr add 172.25.215.40/24 dev etho labeleth0:0
 
后面的eth0:0 表示,我们给eth0这块网卡增加一个IP别名,后面那个0表示别名号,第二个别名就可以写成 eth0:1
我们首先通过 ifconfig 命令来查看我们当前网卡的信息
 
 
 
 
[root@www ~]# ifconfig
eth0     Link encap:Ethernet  HWaddr08:00:27:D7:F8:84  
         inet addr:172.25.215.40 Bcast:172.25.215.255 Mask:255.255.255.0
         inet6 addr: fe80::a00:27ff:fed7:f884/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1
         RX packets:5801 errors:0 dropped:0 overruns:0 frame:0
         TX packets:2011 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:819876 (800.6 KiB)  TXbytes:2288399 (2.1 MiB)
 
lo       Link encap:Local Loopback  
         inet addr:127.0.0.1 Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING MTU:16436  Metric:1
         RX packets:167 errors:0 dropped:0 overruns:0 frame:0
         TX packets:167 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:14861 (14.5 KiB)  TXbytes:14861 (14.5 KiB)
 
此时我们的eth0网卡信息就会显示出来,我们此时通过ip命令来给eth0添加一个IP别名
 
 
[root@www ~]# ip addr add 172.25.215.31/24 dev eth0 label eth0:0
 
[root@www ~]# ifconfig
eth0     Link encap:Ethernet  HWaddr08:00:27:D7:F8:84  
         inet addr:172.25.215.40 Bcast:172.25.215.255 Mask:255.255.255.0
         inet6 addr: fe80::a00:27ff:fed7:f884/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
         RX packets:6323 errors:0 dropped:0 overruns:0 frame:0
         TX packets:2011 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:914440 (893.0 KiB)  TXbytes:2288399 (2.1 MiB)
 
eth0:0   Link encap:Ethernet  HWaddr08:00:27:D7:F8:84  
         inet addr:172.25.215.31 Bcast:0.0.0.0  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
 
lo       Link encap:Local Loopback  
         inet addr:127.0.0.1 Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING MTU:16436  Metric:1
         RX packets:167 errors:0 dropped:0 overruns:0 frame:0
         TX packets:167 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:14861 (14.5 KiB)  TXbytes:14861 (14.5 KiB)
我们看到,此时我们对出来了一块 eth0:0 网卡,其实这个就是eth0网卡的一个IP别名,eth0上就有两个IP地址了,此时我们通过外面的主机ping这两个IP地址都是可以ping通的,如果说我们需要永久保存这个信息,我们就需要在 /etc/sysconfig/network-scripts 这个文件下建立一个名字为ifcfg.eth0:0 这样的配置文件,新建的IP别名是什么,那么就在这个目录下建立一个与该名字对应的文件即可
 
 
[root@www ~]# cd /etc/sysconfig/network-scripts/
 
[root@www network-scripts]# ls
ifcfg-eth0  ifdown-isdn    ifup-aliases  ifup-plusb    init.ipv6-global
ifcfg-lo    ifdown-post    ifup-bnep     ifup-post      net.hotplug
ifdown      ifdown-ppp     ifup-eth      ifup-ppp       network-functions
ifdown-bnep ifdown-routes  ifup-ippp     ifup-routes    network-functions-ipv6
ifdown-eth  ifdown-sit     ifup-ipv6    ifup-sit
ifdown-ippp ifdown-tunnel  ifup-isdn     ifup-tunnel
ifdown-ipv6 ifup           ifup-plip     ifup-wireless
 
[root@www network-scripts]# vi ifcfg-eth0:0
 
DEVICE=eth0:0    //设备名字
IPADDR=172.25.215.31  //  IP地址
PREFIX=24  // 前缀是24,其实就是相当于子网掩码有24位
ONPARENT=yes  //  eth0:0是eth0的IP别名,yes表示附属于eth0
 
通过添加上述的配置文件,我们的IP别名信息就能永久保存了。
 
 
两种方法
ip addr add ip/24 dev eth0:0
ip del add ip/24 dev eth0:0
 
ip addr add ip/24 dev eth0 label eth0:0
ip del add ip/24 dev eth0 abel eth0:0
 
 
ifconfig eth0:0 ip/24 up
ifconfig eth0:0 ip/24 down
 
 
多网卡绑定
 
为什么要使用多网卡绑定技术呢?我们知道如果使用一块网卡进行网络数据传输时其速度是有限的,即使是千兆网卡,其速度也是有限制的,我们为了提高带宽,我们可以将多块物理网卡绑定成一块逻辑网卡,这样网卡的速率就是多块网卡的速率了。
 
Linux支持将多块物理网卡绑定成一块逻辑网卡,绑定后的逻辑网卡可以并行使用组成其的所有物理网卡,通过这样的方式可以提高带宽以及网路的稳定性
 
我们在将多块物理网卡绑定成一块逻辑网卡以后,我们的IP地址就要求配置在这块逻辑网卡上了,而非多块物理网卡
 
Linux下支持三种模式的网卡绑定:
 
①模式0:平衡轮训  使用这种模式来进行多网卡绑定时我们可以提高网络的带宽,其流量是从绑定的多块网卡上平均分配的
 
②模式1:主动备份  使用这种模式来进行多网卡绑定时我们可以提高网络的稳定性,这种模式不会提高网络的带宽,每次只有一块网卡在走流量,只有当这块网卡发生故障时,绑定在一起的其它物理网卡才会工作
 
③模式3:广播模式  这种模式一般都不用
 
我们如果想通过多网卡绑定来提升网络的带宽,就选择模式0,如果想提高网络的稳定性,则选择模式1
 
下面我们来看看如何进行网卡绑定的配置
 
①网卡绑定以后我们需要给我们的逻辑网卡取一个名字,通常格式为 bondn,n代表的是编号,如 /dev/bond0, /dev/bond1
 
②然后我们需要在 /etc/sysconfig/network-scripts 这个目录下创建该逻辑网卡的配置文件,如:
 
/etc/sysconfig/network-scripts/ifc-bond0
 
 
 
 
[root@www network-scripts]# vi ifcfg-bond0
 
DEVICE=bond0  //  设备名字
IPADDR=172.25.215.200  //  网卡ip地址
PREFIX=24  //  子网掩码24位
ONBOOT=yes  //  开机启动yes
BOOTPROTO=none  //  启动协议,因为我们是手动配置IP,所以设置成none,如果是通过DHCP动态分配,则设置成dhcp
USERCTL=no  //  关闭掉用户控制
BONDING_OPTS="mode=1 miimon=5"  //  这个是bond网卡最主要的配置,我们的bond网卡其实是根据一个叫做bonding的驱动来配置的,后面跟配置参数,这里我们使用的是模式1(主动备份)
 
 
因为我们要使用多网卡绑定,所以我们这里再添加一块网卡,然后根据提示就可以添加一块新网卡了,我们这里添加一块网卡eth1,使用ifconfig查看一下:
 
 
 [root@wwwnetwork-scripts]# ifconfig
bond0    Link encap:Ethernet  HWaddr00:00:00:00:00:00  
         inet addr:172.25.215.200 Bcast:172.25.215.255 Mask:255.255.255.0
         UP BROADCAST RUNNING MASTER MULTICAST MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:0 (0.0 b)  TX bytes:0(0.0 b)
 
eth0     Link encap:Ethernet  HWaddr08:00:27:D7:F8:84  
         inet6 addr: fe80::a00:27ff:fed7:f884/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
         RX packets:1285 errors:0 dropped:0 overruns:0 frame:0
         TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:221706 (216.5 KiB)  TXbytes:468 (468.0 b)
 
eth1     Link encap:Ethernet  HWaddr08:00:27:F4:7D:CC  
         inet6 addr: fe80::a00:27ff:fef4:7dcc/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
         RX packets:1196 errors:0 dropped:0 overruns:0 frame:0
         TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:216126 (211.0 KiB)  TXbytes:4806 (4.6 KiB)
 
lo       Link encap:Local Loopback  
         inet addr:127.0.0.1 Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING MTU:16436  Metric:1
         RX packets:73 errors:0 dropped:0 overruns:0 frame:0
         TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:6330 (6.1 KiB)  TXbytes:6330 (6.1 KiB)
 
此时我们计算机里面就有两块网卡了,因为我们需要将这两块网卡绑定到bond0这个逻辑网卡中,所以我们要在两块网卡的配置文件里面添加两条语句:
 
MASTER=bond0  // 将这两块网卡绑定到bond0这块逻辑网卡上
SLAVE=yes  //  SLAVE=yes表示这两块网卡附属于bond0这块网卡
 
 [root@wwwnetwork-scripts]# vi ifcfg-eth0
 
DEVICE=eth0
HWADDR=08:00:27:D7:F8:84
TYPE=Ethernet
UUID=2877e96e-6ddd-443b-a337-bafa7c77c6e5
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=none
IPV6INIT=no
USERCTL=no
MASTER=bond0
SLAVE=yes
 
[root@www network-scripts]# vi ifcfg-eth1
 
DEVICE=eth1
BOOTPROTO=none
TYPE=Ethernet
PEERDNS=yes
IPV6INIT=no
ONBOOT=no
USERCTL=no
HWADDR=08:00:27:f4:7d:cc
MASTER=bond0
SLAVE=yes
 
之前说过bond0这块网卡其实是通过一个叫做 bonding 的驱动来配置的,所以我们还需要为bond0这块网卡添加驱动支持,将这个驱动添加到 /etc/modprobe.d/ 这个目录下
 
[root@www network-scripts]# cd/etc/modprobe.d/
 
[root@www modprobe.d]# ls
anaconda.conf   blacklist-visor.conf  dist.conf     openfwwf.conf
blacklist.conf  dist-alsa.conf        dist-oss.conf
这个文件夹下放的都是我们系统所需驱动的配置文件,我们这时需要给我们的bonding添加一个名字为 bonding.conf 的配置文件
 
 
 
[root@www modprobe.d]# vi bonding.conf
 
alias bond0 bonding
 
 
此时配置好以后,我们就可以通过 ifup bond0 来启动我们的bond0网卡
 
[root@www network-scripts]# ifup bond0
 
Active connection state: activated
Active connection path:/org/freedesktop/NetworkManager/ActiveConnection/2
此时我们可以通过ifconfig命令来查看一下当前网卡信息:
 
 
[root@www network-scripts]# ifconfig
 
bond0    Link encap:Ethernet  HWaddr08:00:27:D7:F8:84  
         inet addr:172.25.215.200 Bcast:172.25.215.255 Mask:255.255.255.0
         inet6 addr: fe80::a00:27ff:fed7:f884/64 Scope:Link
         UP BROADCAST RUNNING MASTER MULTICAST MTU:1500  Metric:1
         RX packets:8175 errors:0 dropped:0 overruns:0 frame:0
         TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:1417884 (1.3 MiB)  TXbytes:6230 (6.0 KiB)
 
eth0     Link encap:Ethernet  HWaddr08:00:27:D7:F8:84  
         UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500  Metric:1
         RX packets:4131 errors:0 dropped:0 overruns:0 frame:0
         TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:711693 (695.0 KiB)  TXbytes:1424 (1.3 KiB)
 
eth1     Link encap:Ethernet  HWaddr08:00:27:D7:F8:84  
         UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500  Metric:1
         RX packets:4044 errors:0 dropped:0 overruns:0 frame:0
         TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:706191 (689.6 KiB)  TXbytes:4806 (4.6 KiB)
 
lo       Link encap:Local Loopback  
         inet addr:127.0.0.1 Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING MTU:16436  Metric:1
         RX packets:81 errors:0 dropped:0 overruns:0 frame:0
         TX packets:81 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:7226 (7.0 KiB)  TXbytes:7226 (7.0 KiB)
 
此时我们通过 ping 命令来ping我们外面的主机,发现已经可以正常ping通的
 
 
[root@www network-scripts]# ping172.25.215.25
PING 172.25.215.25 (172.25.215.25) 56(84)bytes of data.
64 bytes from 172.25.215.25: icmp_seq=1ttl=64 time=1.78 ms
64 bytes from 172.25.215.25: icmp_seq=2ttl=64 time=1.10 ms
64 bytes from 172.25.215.25: icmp_seq=3 ttl=64time=1.08 ms
64 bytes from 172.25.215.25: icmp_seq=4ttl=64 time=0.811 ms
64 bytes from 172.25.215.25: icmp_seq=5ttl=64 time=1.17 ms
***********************************************************************************
 
这个时候我们的bond0网卡就已经配置成功了,它是由两块物理网卡组成的,我们可以根据需要,比如说要提高网络带宽或者提高网络稳定性来设置bond0的网卡绑定模式即可