Linux网卡配置与绑定

网卡绑定技术已经出来很久,在不同的平台下的叫法不同而已,在Linux下叫bonding,IBM称为etherchanel,broadcom叫team,但是名字怎么变,效果都是将两块或更多的网卡当做一块网卡使用,在增加带宽的同时也可以提高冗余性,七种模式,一般使用较多的就是来提高冗余,分别和不同交换机相连,提高可靠性,但有时服务器带宽不够了也可以增加带宽,在这里用思科交换机和HP服务器相连,思科交换机做端口汇聚,服务器做网卡绑定,配置如下:
服务器为CentOS6.2
cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
TYPE=ethernet
ONBOOT=yes
IPADDR=192.168.0.32
NETMASK=255.255.192.0
GATEWAY=10.10.0.1
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
TYPE=ethernet
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
BOOTPROTO=static
TYPE=ethernet
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
vim /etc/modprobe.d/dist.conf
alias bond0 bonding
options bond0 miimon=100 mode=0(0,表示平衡负载双网卡工作,RR算法,mode=1,自动主备,其中一块工作)
思科交换机相应端口配置端口聚合:
R1#configure terminal 
R1(config)#int range g0/1 - 2 
R1(config-int-range)#channel-group 1 mode on
将交换机g0/1-2 与服务器相应端口相连,经测试,带宽明显增加

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 bonding
options bond0 miimon=100 mode=1 primary=eth0

其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡
mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到
primary=eth0表示主备模式下eth0为默认的active网卡

miimon是毫秒数,每100毫秒触发检测线路稳定性的事件。
mode 是ifenslave的工作状态。
一共有7种方式:
=0: (balance-rr) Round-robin policy: (平衡抡循环策略):传输数据包顺序是依次传输,直到最后一个传输完毕, 此模式提供负载平衡和容错能力。
=1: (active-backup) Active-backup policy:(主-备份策略):只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。 此模式提供了容错能力。 
=2:(balance-xor) XOR policy:(平衡 策略): 传输根据原地址布尔值选择传输设备。 此模式提供负载平衡和容错能力。 
=3:(broadcast) broadcast policy:  (广播策略):将所有数据包传输给所有接口。 此模式提供了容错能力。  
=4:(802.3ad) IEEE 802.3ad Dynamic link aggregation.   IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。(我不是太懂。)
=5:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡):没有特殊策略,第一个设备传不通就用另一个设备接管第一个设备正在处理的mac地址,帮助上一个传。
=6:(balance-alb) Adaptive load balancing: (适配器传输负载均衡):大致意思是包括mode5,bonding驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。

这些选项可以用命令:# modinfo bonding 来查看

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

modprobe bonding miimon=100 mode=1

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

from:http://www.360doc.com/content/10/1016/14/1317564_61486325.shtml

====================================================

需要说明的是如果想做成负载均衡,仅仅设置这里modprode bonding miimon=100 mode=0是不够的,还需要设置交换机的端口.

从原理分析一下(bond运行在mode 0下):
mode 0下bond所绑定的网卡的IP都被修改成一样的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。
所以mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址
由于家里没有三层交换机,这里的试验留给网友自行验证了.

====================================================

在 /etc/rc.local 文件里加上一行:

/root/bonding.sh

bonding.sh文件内容:

#!/bin/shmodprobe -r bondingmodprobe bonding miimon=100 mode=6ifconfig bond0 172.16.96.46 netmask 255.255.248.0 uproute add default gw 172.16.100.1 bond0#ifenslave bond0 eth0 eth1 eth2 eth3 eth4 eth5ifenslave bond0 eth0 eth1 service network restart

http://candon123.blog.51cto.com/704299/402677/

时间: 2024-12-16 23:16:24

Linux网卡配置与绑定的相关文章

Linux网卡配置多IP地址

Linux网卡配置 一.查看网卡信息 1.ifconfig:查看网卡的IP信息 2. 网卡的配置文件: /etc/sysconfig/network-scripts/ifcfg-eth0 eth0:表示的是一块网卡的名称,如果有多块网,就会有eth1.eth2等.都是                              在/etc/sysconfig/network-scripts/目录下的 3.单独重启某块网卡命令 ifdown eth0:单独关闭eth0网卡 ifup eth0:单独启

Linux多网卡配置与绑定

Redhat Linux的网络配置,是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机名,但是重启后会丢失. 相关的配置文件 /ect/hosts 配置主机名和IP地址的对应 /etc/sysconfig/network 配置主机名和网关 /etc/sysconfig/network-scripts/ifcfg-eth0 eth0配置文件,eth1则文件名为ifcfg-eth1 一.网卡配置 假设我们要配置主机名为ba

Linux网卡配置及学习linux的注意事项

一.网卡配置 1.ifconfig网卡信息,配置IP ifconfig eth0 192.168.2.102 2.修改网卡配置(连接不了可能是IP给占用了) 进入编辑界面命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0 进入编辑模式修改配置参数:i 退出编辑:Esc 退出保存:‘:wq’ DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0 BOOTPROTO=static #设置网卡获得ip地址的方式,可能

linux 网卡配置参数详解

Linux中不同distribution中配置网络的方法大同小异.以下介绍RHEL6系列,SUSE11, Ubuntu12.04的配置 CentOS,RHEL /etc/sysconfig/network NETWORKING=yes            # 系统启动时是否启动网络 HOSTNAME=zhubinqiangPC    # 定义主机名 /etc/udev/rules.d/70-persistent-net.rules 得到网卡的MAC地址 SUBSYSTEM=="net"

linux 网卡配置

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE=Ethernet#BOOTPROTO=dhcpDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FA

linux 网卡配置vlan标签

所用工具:vconfig 新建文件:/etc/sysconfig/modules/8021q.modules 过程:(以VLAN11.VLAN22 桥接与eth0为例说明) 1.修改eth0配置文件如下: DEVICE=eth1 ONBOOT=yes 2.新建虚拟网卡配置文件ifcfg-eth1.10 DEVICE=eth1.10 BOOTPROTO=static IPADDR=192.168.11.20 NETMASK=255.255.255.0 ONBOOT=yes VLAN=yes    

linux网卡配置多ip

#ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up#ifconfig eth0:1 173.173.173.173 netmask 255.255.255.0 up#ifconfig eth0:2 119.110.120.1 netmask 255.255.255.0 up配置文件/etc/sysconfig/network-scripts目录 # 3Com Corporation 3c905B 100BaseTX [Cyclone] 

linux网卡配置

p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify } DEVICE=物理设备名 IPADDR=IP地址 NETMASK=掩码值 NETWORK=网络地址 BROADCAST=广播地址 GATEWAY=网关地址 TYPE=Ethernet (网络类型)ONBOOT=[yes|no](引导时是否激活设备) USERCTL=[yes|no](非root用户是否可以控制该设备) PEERDN

老男孩教育每日一题-2017年3月16日: linux网络配置中如何给一块网卡添加多个IP地址

linux系统给网卡配置VIP的方法常见有两种:别名IP.以及辅助IP 别名IP(alias ip) ip alias是由linux系统的ifconfig命令来创建和维护的,别名IP就是在网卡设备上绑定的第二个及以上的IP 说明:别名IP的配置方式将在以后的linux系统中被遗弃了,因为在以后的系统中不会再有ifconfig命令了 ①. 手工配置别名的VIP的方法 ifconfig eth0:1 10.0.0.100 netmask 255.255.255.224 up route add -h