Linux网卡绑定

hackerlpy 2010-06-24

SUSE厂家主流推荐的方法,个人也比较推崇!

一、配置加在网卡驱动

在/etc/sysconfig/kernel中的

MODULES_LOADED_ON_BOOT参数加上网卡的驱动,例如

MODULES_LOADED_ON_BOOT=”tg3 e1000”

注意:大多数情况下不需要配置这一步骤,只有某些网卡不能在启动过程中驱动初始较慢没有识别导致绑定不成功,也就是有的slave设备(从设备)没有加入绑定,才需要配置。

二、创建要绑定的网卡配置文件/etc/sysconfig/network/ifcfg-eth*,其中*为数字,例如ifcfg-eth0 , ifcfg-eth1等等。

每个文件的内容如下:

BOOTPROTO='none'

STARTMODE='off'

三、创建bond0的配置文件/etc/sysconfig/network/ifcfg-bond0

内容如下:

BOOTPROTO='static'

BROADCAST='192.168.1.255'

IPADDR='192.168.1.1'

NETMASK='255.255.255.0'

NETWORK='192.168.1.0'

STARTMODE='onboot'

BONDING_MASTER='yes'

BONDING_MODULE_OPTS='mode=1 miimon=100 use_carrier=1 '

#其中mode=1为active-backup模式,mode=0为balance_rr模式

BONDING_SLAVE0='eth0'---被绑定的网卡

BONDING_SLAVE1='eth1'

四、对于active-backup模式,需要在BONDING_MODULE_OPTS参数中加上制定主设备的参数,例如:

BONDING_MODULE_OPTS='mode=1 miimon=100 use_carrier=1 primary=eth0'

五、重新启动networkf服务

rcnetwork restart

六、注意事项

(1)在某些情况下网卡驱动的初始化的时间可能会比较长,从而导致bonding不成功,那么可以修改

/etc/sysconfig/network/config配置文件的WAIT_FOR_INTERFACES参数,将其值改成30。

(2)配置完bonding之后,可以通过在客户端ping,然后在服务器端拔插网线来验证是否已经正常工作。

(3)cat /proc/net/bonding/bond0可以查看bonding的状态。这样你就完成了Suse双网卡绑定

Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用 hostname来配置主机名,但是重启后会丢失。

相关的配置文件

/ect/hosts 配置主机名和IP地址的对应

/etc/sysconfig/network配置主机名和网关

/etc/sysconfig/network-scripts/ifcfg-eth0 eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推

一、网卡配置

假设我们要配置主机名为test,eth0的IP地址192.168.168.1/24,网关地址192.168.168.250

则/etc/sysconfig/network文件内容如下:

NETWORKING=yes

HOSTNAME=test

GATEWAY=192.168.168.250

eth0对应的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0内容如下:

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.168.1

NETMASK=255.255.255.0

TYPE=Ethernet

ONBOOT=yes

二、单网卡绑定多个IP

有时,我们需要在一块网卡上配置多个IP,例如,在上面的例子中,我们还需要为eth0配置IP 192.168.168.2和192.168.168.3。那么需要再在/etc/sysconfig/network-scripts下新建两个配置文件:

ifcfg-eth0:0内容如下:

DEVICE=eth0:0

BOOTPROTO=static

IPADDR=192.168.168.2

NETMASK=255.255.255.0

ONBOOT=yes

ifcfg-eth0:1内容如下:

DEVICE=eth0:1

BOOTPROTO=static

IPADDR=192.168.168.3

NETMASK=255.255.255.0

ONBOOT=yes

三、多个网卡绑定成一块虚拟网卡

为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。比如我们可以将eth0和eth1绑定成虚拟网卡bond0

首先在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下

DEVICE=bond0

BOOTPROTO=none

BROADCAST=192.168.168.255

IPADDR=192.168.168.1

NETMASK=255.255.255.0

NETWORK=192.168.168.0

ONBOOT=yes

TYPE=Ethernet

GATEWAY=192.168.168.250

USERCTL=no

然后分别修改eth0和eth1的配置文件ifcfg-eth0内容:

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

USERCTL=no

MASTER=bond0

SLAVE=yes

ifcfg-eth1内容

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

USERCTL=no

MASTER=bond0

SLAVE=yes

因为linux的虚拟网卡是在内核模块中实现的,所以需要安装的时候已经装好该module。在/etc/modules.conf文件中添加如下内容(如果没有该文件,则新建一个):

alias bond0 bondingoptions bond0 miimon=100 mode=1 primary=eth0

其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡

mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到

primary=eth0表示主备模式下eth0为默认的active网卡

最后,在/etc/rc.local中加入

modprobe bonding miimon=100 mode=1

重启机器后可以看到虚拟网卡已经生效,可以通过插拔两个物理网卡的网线来进行测试,不过linux中网卡接管的时间好象比较长

相关推荐

CloudCraft / 0评论 2015-07-06
yangliuhepanpan / 0评论 2015-07-06
iamplane / 0评论 2015-02-02