linux网卡怎么配置bond
㈠ linux服务器怎么创建同网段的bond vip
以root用户登录系统,然后使用(ifconfig)命令查看网卡信息,可以看到目前系统只有一块网卡,并且只有一个IP地址。
Linux服务器单网卡绑定多IP地址:[2]永久设置
进入网卡配置文件目录,将网卡的配置文件复制一份,并且命名为:ifcfg-网卡名:IP地址编号,其中物理网卡的第二个IP地址编号为0,第三个IP地址编号为1,以此类推。
Linux服务器单网卡绑定多IP地址:[2]永久设置
使用命令(vi ifcfg-网卡名:IP地址编号)命令打开新复制的配置文件。
Linux服务器单网卡绑定多IP地址:[2]永久设置
依照图中标注的修改配置文件,主要修改的是设备号和IP地址,然后保存并退出。
Linux服务器单网卡绑定多IP地址:[2]永久设置
重启网络服务使得配置文件生效,并用命令(ip addr show)查询IP地址信息,发现第二个IP地址信息已经出现在物理网卡下。
Linux服务器单网卡绑定多IP地址:[2]永久设置
在本地使用ping命令ping同一物理网络的两个地址,发现两个地址都能ping通,说明第二个IP地址生效。
Linux服务器单网卡绑定多IP地址:[2]永久设置
如果需要删除第二个IP地址,只要删除第二个IP地址所对应的配置文件并重启网络服务即可。
Linux服务器单网卡绑定多IP地址:[2]永久设置
重启网络服务完成后,使用查询命令查看,发现第二个IP地址信息已经消失,再在本地ping物理网络的两个IP地址,发现已经ping不通第二个IP地址,说明它已失效。
Linux服务器单网卡绑定多IP地址:[2]永久设置
Linux服务器单网卡绑定多IP地址:[2]永久设置
㈡ Linux下把多个网卡设置成虚拟网卡的技巧
现在很多电脑都有不只一块网卡,但是一块网卡出现故障,整个网络都会中断。但是在Linux系统中只要创建Linux虚拟网卡,就不会遇到这种麻烦。本文就来介绍一下Linux下把多个网卡设置成多个虚拟网卡的技巧。
以eth0与eth1来虚拟成为bond0为例:------绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片。
设置方法
1、创建虚拟网络接口配置文件ifcfg-bond0,并指定网卡IP:vi /etc/sysconfig/ network-scripts/ifcfg-bond0
cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
IPADDR=10.0.11.10
NETMASK=255.255.252.0
GATWAY=10.0.11.1
ONBOOT=yes
USERCTL=no
TYPE=Ethernet
2、分别修改ifcfg-eth0和ifcfg-eth1-----不能设置有关IP,网关,子网掩码等信息。
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
TYPE=Ethernet
cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
TYPE=Ethernet
3、安装mole
因为虚拟网卡实在内核模块中实现的,所以需要安装有mole,在/etc/moles.conf中添加如下内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0。
加入下列两行
alias bond0 bonding
options bond0 miimon=100 mode=0 --- 0表示两块物理网卡是以负载均衡的方式运行。
注:miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。
mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都处于active状态。
mode=1表示fault-tolerance (active-backup)提供冗余功能,就是说默认情况下只有一块网卡处于active,另一块做备份。
如果采用此模式则:options bond0 miimon=100 mode=1 primary=eth0---表示eth0为active状态,eth1为备用状态。
bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用
4、在/etc/rc.local中添加如下命令。
cat /etc/rc.local
modprobe bonding miimon=100 mode=0
配置完成重启主机。
Bringing up interface bond0 OK
Bringing up interface eth0 OK
Bringing up interface eth1 OK
以上就是Linux下把多个网卡设置成多个虚拟网卡的技巧了,这样设置完了以后,只要有一块虚拟网卡还能使用,虚拟网卡就能正常工作,就不会断网了。
㈢ linux网卡绑定 有几种模式
网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6 常用的有三种 mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。 mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。 mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。 需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里options bond0 miimon=100 mode=0是不够的,与网卡相连的交换机必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址.从原理分析一下(bond运行在mode 0下): mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多 个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.我们的解 决办法是,两个网卡接入不同的交换机即可。 mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。 七种bond模式说明: 第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略) 特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降 第二种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略) 特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N 第三种模式:mod=2,即:(balance-xor) XOR policy(平衡策略) 特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力 第四种模式:mod=3,即:broadcast(广播策略) 特点:在每个slave接口上传输每个数据包,此模式提供了容错能力 第五种模式:mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚合) 特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。 外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的 是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应 性。 必要条件: 条件1:ethtool支持获取每个slave的速率和双工设定 条件2:switch(交换机)支持IEEE 802.3ad Dynamic link aggregation 条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式 第六种模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡) 特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。 该模式的必要条件:ethtool支持获取每个slave的速率 第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡) 特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。 来自服务器端的接收流量也会被均衡。当本机发送ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达 时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave。使用ARP协商进行负载均衡的一个问题是:每次广播 ARP请求时都会使用bond的硬件地址,因此对端学习到这个硬件地址后,接收流量将会全部流向当前的slave。这个问题可以通过给所有的对端发送更新 (ARP应答)来解决,应答中包含他们独一无二的硬件地址,从而导致流量重新分布。当新的slave加入到bond中时,或者某个未激活的slave重新 激活时,接收流量也要重新分布。接收的负载被顺序地分布(round robin)在bond中最高速的slave上 当某个链路被重新接上,或者一个新的slave加入到bond中,接收流量在所有当前激活的slave中全部重新分配,通过使用指定的MAC地址给每个 client发起ARP应答。下面介绍的updelay参数必须被设置为某个大于等于switch(交换机)转发延时的值,从而保证发往对端的ARP应答 不会被switch(交换机)阻截。 必要条件: 条件1:ethtool支持获取每个slave的速率; 条件2:底层驱动支持设置某个设备的硬件地址,从而使得总是有个slave(curr_active_slave)使用bond的硬件地址,同时保证每个bond 中的slave都有一个唯一的硬件地址。如果curr_active_slave出故障,它的硬件地址将会被新选出来的 curr_active_slave接管 其实mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,….ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量 Linux网口绑定 通过网口绑定(bond)技术,可以很容易实现网口冗余,负载均衡,从而达到高可用高可靠的目的。前提约定: 2个物理网口分别是:eth0,eth1 绑定后的虚拟口是:bond0 服务器IP是:192.168.0.100 第一步,配置设定文件: 代码如下: /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.0.100 NETMASK=255.255.255.0 NETWORK=192.168.0.0 BROADCAST=192.168.0.255 #BROADCAST广播地址 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none MASTER=bond0 SLAVE=yes 第二步,修改modprobe相关设定文件,并加载bonding模块: 1.在这里,我们直接创建一个加载bonding的专属设定文件/etc/modprobe.d/bonding.conf 代码如下: [root@test ~]# vi /etc/modprobe.d/bonding.conf #追加 alias bond0 bonding options bonding mode=0 miimon=200 2.加载模块(重启系统后就不用手动再加载了) 代码如下: [root@test ~]# modprobe bonding 3.确认模块是否加载成功: 代码如下: [root@test ~]# lsmod grep bonding bonding 100065 0 第三步,重启一下网络,然后确认一下状况: 代码如下: [root@test ~]# /etc/init.d/network restart [root@test ~]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 …… [root@test ~]# ifconfig grep HWaddr bond0 Link encap:Ethernet HWaddr 00:16:36:1B:BB:74 eth0 Link encap:Ethernet HWaddr 00:16:36:1B:BB:74 eth1 Link encap:Ethernet HWaddr 00:16:36:1B:BB:74 从上面的确认信息中,我们可以看到3个重要信息: 1.现在的bonding模式是active-backup 2.现在Active状态的网口是eth0 3.bond0,eth1的物理地址和处于active状态下的eth0的物理地址相同,这样是为了避免上位交换机发生混乱。 任意拔掉一根网线,然后再访问你的服务器,看网络是否还是通的。 第四步,系统启动自动绑定、增加默认网关: 代码如下: [root@test ~]# vi /etc/rc.d/rc.local #追加 ifenslave bond0 eth0 eth1 route add default gw 192.168.0.1 #如可上网就不用增加路由,0.1地址按环境修改. 留心:前面只是2个网口绑定成一个bond0的情况,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1, 那么网口设置文件的设置方法和上面第1步讲的方法相同,只是/etc/modprobe.d/bonding.conf的设定就不能像下面这样简单的叠加了: 代码如下: alias bond0 bonding options bonding mode=1 miimon=200 alias bond1 bonding options bonding mode=1 miimon=200 正确的设置方法有2种: 第一种,你可以看到,这种方式的话,多个bond口的模式就只能设成相同的了: 代码如下: alias bond0 bonding alias bond1 bonding options bonding max_bonds=2 miimon=200 mode=1 第二种,这种方式,不同的bond口的mode可以设成不一样: 代码如下: alias bond0 bonding options bond0 miimon=100 mode=1 install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0 仔细看看上面这2种设置方法,现在如果是要设置3个,4个,甚至更多的bond口,你应该也会了吧! 后记:简单的介绍一下上面在加载bonding模块的时候,options里的一些参数的含义: miimon 监视网络链接的频度,单位是毫秒,我们设置的是200毫秒。 max_bonds 配置的bond口个数 mode bond模式,主要有以下几种,在一般的实际应用中,0和1用的比较多, 如果你要深入了解这些模式各自的特点就需要靠读者你自己去查资料并做实践了。
㈣ Linux Bonding 怎么玩
一、什么是bondingLinux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余二、bonding应用方向1、网络负载均衡对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding 2、网络冗余对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份三、bonding实验环境及配置1、实验环境系统为:CentOS,使用4块网卡(eth0、eth1 ==> bond0;eth2、eth3 ==> bond1)来实现bonding技术2、bonding配置第一步:先查看一下内核是否已经支持bonding1)如果内核已经把bonding编译进内核,那么要做的就是加载该模块到当前内核;其次查看ifenslave该工具是否也已经编译modprobe -l bond*或者 modinfo bondingmodprobe bondinglsmod | grep 'bonding'echo 'modprobe bonding &> /dev/null' >> /etc/rc.local(开机自动加载bonding模块到内核)which ifenslave注意:默认内核安装完后就已经支持bonding模块了,无需要自己手动编译2)如果bonding还没有编译进内核,那么要做的就是编译该模块到内核(1)编译bondingtar -jxvf kernel-XXX.tar.gzcd kernel-XXXmake menuconfig选择 " Network device support " -> " Bonding driver support "make bzImagemake moles && make moles_installmake install(2)编译ifenslave工具gcc -Wall -O -I kernel-XXX/include ifenslave.c -o ifenslave第二步:主要有两种可选择(第1种:实现网络负载均衡,第2种:实现网络冗余)例1:实现网络冗余(即:mod=1方式,使用eth0与eth1)(1)编辑虚拟网络接口配置文件(bond0),并指定网卡IPvi /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.0.254BROADCAST=192.168.0.255NETMASK=255.255.255.0NETWORK=192.168.0.0GATEWAY=192.168.0.1USERCTL=noTYPE=Ethernet注意:建议不要指定MAC地址vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes注意:建议不要指定MAC地址vi /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1BOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes注意:建议不要指定MAC地址(2)编辑模块载入配置文件(/etc/modprobe.conf),开机自动加载bonding模块到内核
vi /etc/modprobe.conf
alias bond0 bonding options bond0 miimon=100 mode=1
alias net-pf-10 off #关闭ipv6支持说明:miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3,4,5,6六种模式,常用为0,6,1三种,具体后面会介绍 mode=0,表示load balancing (round-robin)为负载均衡方式,两块网卡都工作,但是与网卡相连的交换必须做特殊配置( 这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址mode=6,表示load balancing (round-robin)为负载均衡方式,两块网卡都工作,但是该模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址mode=1,表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份 注意:bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用(4)重启并测试第一:由于bonding使用的模式为mod=1(网络冗余),所以eth0、eth1与虚拟的bond0同一个MAC地址注意:对比上面这两个图,可知mode=1模式下,eth0与eth1这两块网卡,只有一块网卡在工作(即:eth0),因为eth1网卡的RX与TX都没有在发生变化第二:测试,用ping指令ping虚拟网卡设备bond0的IP地址(192.168.0.254),然后禁用eth0设备看一下能够继续ping的通说明:如上图可得到,断开eth0(上图的右下角),还是可以ping的通的例2:实现网络负载均衡和网络冗余(即:mod=0方式,使用eth0与eth1)注意:VM中只能做mode=1的实验,其它的工作模式得用真机来实践跟例1的步骤一样,只需要修改模块载入配置文件(/etc/modprobe.conf),如下:
alias bond0 bonding options bond0 miimon=100 mode=0
(1)测试如下##目前两块网卡都处于连接状态root@Web:~# ifconfig | grep 'eth' | awk '{print $1}'eth0eth1##禁用了网卡eth0,用ping指令测试反之,也是一样的!例3:实现网络负载均衡和网络冗余(即:mod=6方式,使用eth0与eth1,其中eth0设置为primay)跟例1的步骤一样,只需要修改模块载入配置文件(/etc/modprobe.conf),如下:alias bond0 bonding options bond0 miimon=100 mode=6上图可知:mode=6时,eth0与eth1所使用的MAC是不一样的(1)测试如下##目前两块网卡都处于连接状态root@Web:~# ifconfig | grep 'eth' | awk '{print $1}'eth0eth1##禁用了网卡eth0,用ping指令测试四、bonding运用的注意事项1、bonding的模式:0-6,即:7种模式第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略)特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1....一直循环下去,直到最后一个传输完毕), 此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降第二种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略)特点:只有一个设备处于活动状态,当 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N第三种模式:mod=2,即:(balance-xor) XOR policy(平衡策略)特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力第四种模式:mod=3,即:broadcast(广播策略)特点:在每个slave接口上传输每个数据包,此模式提供了容错能力第五种模式:mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚合)特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应性。必要条件:条件1:ethtool支持获取每个slave的速率和双工设定条件2:switch(交换机)支持IEEE 802.3ad Dynamic link aggregation条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式第六种模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。该模式的必要条件:ethtool支持获取每个slave的速率第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。来自服务器端的接收流量也会被均衡。当本机发送ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave。使用ARP协商进行负载均衡的一个问题是:每次广播 ARP请求时都会使用bond的硬件地址,因此对端学习到这个硬件地址后,接收流量将会全部刘翔当前的slave。这个问题通过给所有的对端发送更新(ARP应答)来解决,应答中包含他们独一无二的硬件地址,从而导致流量重新分布。当新的slave加入到bond中时,或者某个未激活的slave重新激活时,接收流量也要重新分布。接收的负载被顺序地分布(round robin)在bond中最高速的slave上当某个链路被重新接上,或者一个新的slave加入到bond中,接收流量在所有当前激活的slave中全部重新分配,通过使用指定的MAC地址给每个 client发起ARP应答。下面介绍的updelay参数必须被设置为某个大于等于switch(交换机)转发延时的值,从而保证发往对端的ARP应答不会被switch(交换机)阻截。必要条件:条件1:ethtool支持获取每个slave的速率;条件2:底层驱动支持设置某个设备的硬件地址,从而使得总是有个slave(curr_active_slave)使用bond的硬件地址,同时保证每个bond 中的slave都有一个唯一的硬件地址。如果curr_active_slave出故障,它的硬件地址将会被新选出来的 curr_active_slave接管其实mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,....ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量2、bonding驱动选项Bonding驱动的选项是通过在加载时指定参数来设定的。可以通过insmod或modprobe命令的命令行参数来指定,但通常在/etc/modprobe.conf配置文件中指定,或其他的配置文件中下面列出可用的bonding驱动参数。如果参数没有指定,驱动会使用缺省参数。刚开始配置bond的时候,建议在一个终端窗口中运行"tail -f /var/log/messages"来观察bonding驱动的错误信息【译注:/var/log/messages一般会打印内核中的调试信息】有些参数必须要正确的设定,比如miimon、arp_interval和arp_ip_target,否则在链接故障时会导致严重的网络性能退化。很少的设备不支持miimon,因此没有任何理由不使用它们。有些选项不仅支持文本值的设定,出于兼容性的考虑,也支持数值的设定,比如,"mode=802.3ad"和"mode=4"效果是一样的具体的参数列表:1)primay指定哪个slave成为主设备(primary device),取值为字符串,如eth0,eth1等。只要指定的设备可用,它将一直是激活的slave。只有在主设备(primary device)断线时才会切换设备。这在希望某个slave设备优先使用的情形下很有用,比如,某个slave设备有更高的吞吐率注意: primary选项只对active-backup模式有效2)updelay指定当发现一个链路恢复时,在激活该链路之前的等待时间,以毫秒计算。该选项只对miimon链路侦听有效。updelay应该是miimon值的整数倍,如果不是,它将会被向下取整到最近的整数。缺省值为03)arp_interval指定ARP链路监控频率,单位是毫秒(ms)。如果APR监控工作于以太兼容模式(模式0和模式2)下,需要把switch(交换机)配置为在所有链路上均匀的分发网络包。如果switch(交换机)被配置为以XOR方式分发网络包,所有来自ARP目标的应答将会被同一个链路上的其他设备收到,这将会导致其他设备的失败。ARP监控不应该和miimon同时使用。设定为0将禁止ARP监控。缺省值为04)arp_ip_target指定一组IP地址用于ARP监控的目标,它只在arp_interval > 0时有效。这些IP地址是ARP请求发送的目标,用于判定到目标地址的链路是否工作正常。该设定值为ddd.ddd.ddd.ddd格式。多个IP地址通过逗号分隔。至少指定一个IP地址。最多可以指定16个IP地址。缺省值是没有IP地址5)downdelay指定一个时间,用于在发现链路故障后,等待一段时间然后禁止一个slave,单位是毫秒(ms)。该选项只对miimon监控有效。downdelay值应该是miimon值的整数倍,否则它将会被取整到最接近的整数倍。缺省值为06)lacp_rate指定在802.3ad模式下,我们希望的链接对端传输LACPDU包的速率。可能的选项:(1)slow 或者 0请求对端每30s传输LACPDU(2)fast 或者 1请求对端每1s传输LACPDU(3)缺省值是slow7)max_bonds为bonding驱动指定创建bonding设备的数量。比如:如果max_bonds为3,而且bonding驱动还没有加载,那么bond0,bond1,bond2将会被创建。缺省值为16)miimon指定MII链路监控频率,单位是毫秒(ms)。这将决定驱动检查每个slave链路状态频率0表示禁止MII链路监控。100可以作为一个很好的初始参考值。下面的use_carrier选项将会影响如果检测链路状态。更多的信息可以参考“高可靠性”章节。缺省值为08)mode指定bonding的策略。缺省是balance-rr (round robin,循环赛)。可选的mode包括:0,1,2,3,4,5,63、bonding链路监测方法官方文档里说有两种针对链路的监测方法(注意:这两种监测不能同时使用)第一种:miimon(这种方法是最常见的,此方法使用系统的mii-tool命令进行监测)模块加载设置(/etc/modprobe.conf):# Start of bonding configurealias bond0 bondingoptions bond0 miimon=100 mode=1注意:使用cat /proc/net/bonding/bond0,可查看Bonding Mode: load balancing (round-robin)状态options bond0 miimon=100 mode=0注意:使用cat /proc/net/bonding/bond0,可查看Bonding Mode: load balancing ((active-backup))状态 root@Web:~# mii-tooleth0: negotiated 100baseTx-HD, link oketh1: negotiated 100baseTx-HD, link ok缺点:这种方法,只能监测交换机与该网卡之间的链路;如果它们之外的链路的地方断了,而交换机本身没有问题,也就是说你的网卡和交换机之间还是UP状态,它是不会认为网络中断,除非你的网卡是DOWN状态,它才会把链路转到另一块网卡上,就像是拔掉网线一样,或者把交换机端口shutdown一样第二种:arp(这种方法比较实用,你可以把它看作是arp的ping(二层ping),但是可能会给网关造成一定的压力)模块加载:alias bond0 bondingoptions bond0 arp_interval=100 arp_ip_target=192.168.1.1 mode=active-backup primary=eth0解析如下:arp_interval=100,表示arp的检测时间,等同于miimon=100的作用arp_ip_target=192.168.1.1,表示arp检测的目标IP,必须是同网段的,最好就是网关注意:如果使用arp来ping网关不通,那么在/proc/net/bonding/bond0里会一会down,一会up的优点:使用arp这种方法,如果交换机的上出现问题,网络不通,它就会把链转到另一块网卡上,但是不管是哪种方法,在第一块网卡出现问题,链路转到第二块后,如果第一块恢复正常,链路自己不会恢复的
㈤ Pve bond后linux虚拟机设置
可以设置。
vmware虚拟机环境下linux网卡做bond配置,配置步骤,选择2个自己需要的网口,查看有哪些网口。编辑网口的配置文件。
bond是将多块网卡虚拟成为一块网卡的技术,通过bond技术让多块网卡看起来是一个单独的以太网接口设备并具有相同的ip地址。在linux下配置bond,通过网卡绑定技术既能增加服务器的可靠性,又增加了可用网络宽带,为用户提供不间断的网络服务。
㈥ linux怎么做bond
您好,方法
网卡bond的模式
网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6。 常用的有三种:
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
我就我的一次bonding经历,来给大家分享一下,如何做网卡bond,我这次做的是bond6,在centos6.0上完成。
三、网卡bond前期准备
1.由于服务器网卡比较多,逻辑顺序与物理顺序不一定一致。首先要确定哪几块网卡布置了网线,一般是有两块网卡对应两根网线,分别连接不同的交换机。查看所有网卡
$lspci|grep net
查看网卡2的信息,Link detected:yes表示有网线插入
$ethtool eth2
如果Link detected:no 的话,尝试用命令ifconfig eth2 up,如果用ethtool查看任然为no的话,才能说明此网卡确实没有网线插入。
2.注意如果ifcfg-bond0的配置文件如果是从其他网卡配置文件拷贝过来的,HWADDR地址一定要删除,《linux就该这么学》DEVICE名字要改。
3.NetworkManager要关闭,建议临时和永久都关闭一下。
$chkconfig NetworkManager off $service NetworkManager stop
四、更改要bond网卡的配置文件
eth2,eth3为bond前的网卡名称,bond0为bond后的网卡名称,我们需要对这三个配置文件做更改。
eth2:
$vi /etc/sysconfig/network-scripts/ifcfg-eth2 DEVICE=eth2 HWADDR=44:A8:42:25:7C:FE BOOTPROTO=none ONBOOT=yes SLAVE=yes MASTER=bond0 TYPE=Ethernet
eth3:
$vi /etc/sysconfig/network-scripts/ifcfg-eth3 DEVICE=eth3 HWADDR=44:A8:42:25:7D:01 BOOTPROTO=none ONBOOT=yes SLAVE=yes MASTER=bond0 TYPE=Ethernet
bond0:
$vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPADDR=100.100.100.100 NETMASK=255.255.255.0 GATEWAY=100.100.100.1 TYPE=Ethernet
5
五、配置模式为bond6
$vi /etc/modprobe.d/dist.conf
在最后添加下面2行
alias bond0 bonding options bond0 miimon=100 mode=6
也可以用下面的命令添加
$sed -i '$a alias bond0 bonding' /etc/modprobe.d/dist.conf $sed -i '$a options bond0 miimon=100 mode=6' /etc/modprobe.d/dist.conf
六、重启网络服务
$service network restart
6
七、用nload查看流量
$vim /root/.bash_profileexport PATH alias nload='nload -m -s 5 -u m -t 2000 bond0 eth2 eth3'$source /root/.bash_profile$nload
㈦ Linux双网卡内外网服务器IP配置
首先做双网卡绑定,具体步骤上网搜吧,很多,思路就是通过绑定的虚拟接口bond0进行通讯,bond0设置外网IP,在bond0上再开启一个子接口为内网IP。
用一台交换机做交换,很便宜的傻交换就行,将服务器两个网卡连接的此交换机上,外网网线和内网路由也连到此交换机上即可。
上述虽可达到你的要求,但安全性实际降低了,建议服务器增加一块网卡。两块做bond0连外网,1块连内网。
指定IP地址数据从网卡eth1发出需要添加静态路由,具体步骤网上搜去,也很多,最后加上eth1参数即可。
㈧ 在linux环境下实现双网卡绑定均衡负载
linux双网卡绑定一个IP教程
由于客户机比较多我们可以做到二块网卡同时工作。开始做了。
rh el 5测试通过。。
网卡1为eth0 网卡2为eth1 (这个大家都知道)
1.先修改eth0 和eht1这2个网卡配置文件.目录在(/etc/sysconfig/network-scripts/)如下:
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
BOOTPROTO=none (这个最好不要为DHCP 一点启动慢,二点你网吧有DHCP了,想想!呵呵)
2. eth1 也是同样的修改.如下:
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
BOOTPROTO=none (这个最好不要为DHCP 一点启动慢,二点你网吧有DHCP了,想想!呵呵)
3.新建一个虚拟网卡bond0,我们可以复制eth0的,复制后要修改内容.
复制 (cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0)修改内容为如下:
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.227
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
TYPE=Ethernet
4.修改/etc/modprobe.conf,添加内容如下:
alias bond0 bonding
options bond0 miimon=100 mode=1
注意:mode可以为0, 1, 0为负载均衡,1为失效保护, 我们只用到0
关于:modprobe.conf文件在AS版本里面有,linux9.0的是这个moles.conf文件
mode指定了bond0的工作模式,常用的是0和1,0表示负载均衡方式,1表示主从方式,可根据需要自行配置。常用的为0,1两种。mode=0表示 load balancing (round-robin)为负载均衡方式,两块网卡都工作。mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。 miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。
5:修改/etc/rc.d/rc.local,添加内容如下:
ifenslave bond0 eth0 eth1
route add -net 192.168.0.255 netmask 255.255.255.0 bond0
完成。。。。。。。。。。。
查看:
[root@LMsev ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ea:73:0f
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ea:73:19
如果bond关闭后,使用一下命令启动:
ifenslave bond0 eth0 eth1
㈨ 如何对suse linux 11进行双网卡绑定的配置,求高手
1、使用yast工具配置第一块网卡,此时在/etc/sysconfig/network下将生成一个配置文件(例如:ifcfg-eth-xx:xx:xx:xx:xx:xx)
2、cp /etc/sysconfig/network/ifcfg-eth-xx:xx:xx:xx:xx:xx /etc/sysconfig/network/ifcfg-bond0
3、编辑ifcfg-bond0文件:
加入如下几行:
BONDING_SLAVE_0='eth0'
BONDING_SLAVE_1='eth1'
BONDING_MASTER=yes
BONDING_MODULE_OPTS=
修改后的ifcfg-bond0文件如下:
BOOTPROTO='static'
BROADCAST='192.168.23.255'
IPADDR='192.168.23.6'
MTU=''
NETMASK='255.255.255.0'
NETWORK='192.168.23.0'
REMOTE_IPADDR=''
STARTMODE='onboot'
UNIQUE='WMHV.+EMLITqy0YF'
BONDING_MASTER=yes
BONDING_SLAVE_0='eth0'
BONDING_SLAVE_1='eth1'
BONDING_MODULE_OPTS='miimon=100 mode=1 use_carrier=0' --注:mode=1为网卡主备用,mode=0为负荷分担。
4、删除/etc/sysconfig/network下的已经绑定的网卡的配置文件(如:ifcfg-eth-xx:xx:xx:xx:xx:xx)
5、使用rcnetwork restart重起服务
6、使用ifconfig -a 命令查看bond0上是否已经有IP,而eth0和eth1上则没有IP地址。
最简便的方法:
a、不配置任何网卡,这样在/etc/sysconfig/network目录下就没有类似ifcfg-eth-xx:xx:xx:xx:xx:xx的文件,也就不用再删除了。
b、在 /etc/sysconfig/network目录下,新建文件ifcfg-bond0,内容如下:
BOOTPROTO='static'
BROADCAST='192.168.23.255'
IPADDR='192.168.23.6'
MTU=''
NETMASK='255.255.255.0'
NETWORK='192.168.23.0'
REMOTE_IPADDR=''
STARTMODE='onboot'
UNIQUE='WMHV.+EMLITqy0YF'
BONDING_MASTER=yes
BONDING_SLAVE_0='eth0'
BONDING_SLAVE_1='eth1'
c、使用rcnetwork restart 命令重启服务。
d、使用ifconfig -a 查看帮定结果就OK了。
如果还有另外两块网卡帮定,就把ifcfg-bind0复制成ifcfg-bond0,把IP信息和网络端口信息改一下,然后重启服务,就OK了,非常简单。
㈩ Linux如何配置双网卡绑定bond
sles:
# vi /etc/sysconfig/network/ifcfg-bond0 插入如下内容
BOOTPROTO='static'
IPADDR='10.34.81.21'
NETMASK='255.255.255.0'
STARTMODE='onboot'
BONDING_MASTER='yes'
BONDING_MODULE_OPTS='mode=1 miimon=200 use_carrier=1'
BONDING_SLAVE0='eth1'
BONDING_SLAVE1='eth2'
检查# /etc/sysconfig/network/ 下有没有eth1、eth2的MAC地址配置,若有,则删除
启动双网卡绑定# rcnetwork restart
其中:BONDING_MODULE_OPTS='mode=1 为主备 0为负荷分担
redhat:
创建一个ifcfg-bond0
# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BONDING_OPTS="mode=1 miimon=500"
BOOTPROTO=none
ONBOOT=yes
BROADCAST=192.168.0.255
IPADDR=192.168.0.180
NETMASK=255.255.255.0
NETWORK=192.168.0.0
USERCTL=no
其中:BONDING_OPTS="mode=1 为主备 0为负荷分担
修改/etc/sysconfig/ifcfg-ethX
这里说的ethX指要加入绑定网卡的名称,本例中是eth0、eth1。
# vi /etc/sysconfig/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no
# vi /etc/sysconfig/ifcfg-eth1
DEVICE=eth1BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no
配置/etc/modprobe.conf,添加alias bond0 bonding
# vi /etc/modprobe.conf
alias eth0 pcnet32
alias eth1 pcnet32
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias bond0 bonding
重启网络服务
#service network restart