HPUX双网卡绑定笔记
- 格式:docx
- 大小:27.77 KB
- 文档页数:1
Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP 地址而并行链接聚合成一个逻辑链路工作。
其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。
bonding技术的最早应用是在集群——beowulf上,为了提高集群节点间的数据传输而设计的。
下面我们讨论一下bonding 的原理,什么是bonding需要从网卡的混杂(promisc)模式说起。
我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。
但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。
bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。
然后把相应的数据帧传送给bond驱动程序处理。
绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片1.创建虚拟网卡编辑虚拟网络接口配置文件,指定网卡IPvi /etc/sysconfig/ network-scripts/ ifcfg-bond0[root@rhas5 root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 2.编辑虚拟网卡和物理网卡#vi ifcfg-bond0将第一行改成DEVICE=bond0# cat ifcfg-bond0DEVICE=bond0BOOTPROTO=staticIPADDR=172.31.0.13NETMASK=255.255.252.0BROADCAST=172.31.3.254ONBOOT=yesUSERCTL=noTYPE=Ethernet这里要注意,不要指定单个网卡的IP 地址、子网掩码或网卡ID。
中标麒麟V6双网卡绑定文档方法一:1 添加虚拟网卡vim /etc/sysconfig/network-scripts/ifcfg-bond0cat /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0 设备名称BOOTPROTO=static IP获取方式ONBOOT=yes 是否随网络服务启动eth0设备设置生效IPADDR=192.168.0.1 IP地址NETMASK=255.255.255.0 掩码GATEWAY=192.168.0.254 网关USERCTL=no 是否允许非root用户控制该设备2 配置本地网卡信息vim /etc/sysconfig/network-scripts/ifcfg-eth0vim /etc/sysconfig/network-scripts/ifcfg-eth1cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"TYPE=EthernetBOOTPROTO=noneONBOOT="yes"MASTER=bond0SLAVE=yesUSERCTL=nocat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE="eth1”TYPE=EthernetBOOTPROTO=noneONBOOT="yes"MASTER=bond0SLAVE=yesUSERCTL=no3 配置Bonding配置文件/etc/modprobe.d/bond0.conf cat /etc/modprobe.d/bond0.confalias bond0 bondingoptions bond0 mode=1 millmon=1004 防止机器只有一条链路启动,无法初始化bond0cat /etc/rc.localifup eth0ifup eth15 重启网络服务,使配置生效service network restartservice NetworkManager stopchkconfig NetworkManager off 开机不启动ifconfig bond0 查看信息cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2015) Bonding Mode: load balancing (round-robin)MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth1MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:50:56:27:46:11Slave queue ID: 0Slave Interface: eth2MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:50:56:2f:33:82Slave queue ID: 0miimon是指多久时间要检查网路一次,单位是ms(毫秒) 这边的100,是100ms,即是0.1秒意思是假设其中有一条网路断线,会在0.1秒内自动备援mode共有七种(0~6)mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
Linux下双⽹卡绑定(bonding技术)2013-08-20 15:39:31现在很多服务器都⾃带双千兆⽹⼝,利⽤⽹卡绑定既能增加⽹络带宽,同时⼜能做相应的冗余,⽬前应⽤于很多的场景。
linux操作系统下⾃带的⽹卡绑定模式,Linux bonding驱动提供了⼀个把多个⽹络接⼝设备捆绑为单个⽹络接⼝设置来使⽤,⽤于⽹络负载均衡及⽹络冗余。
当然现在⽹卡产商也会出⼀些针对windows操作系统⽹卡管理软件来做⽹卡绑定(windows操作系统没有⽹卡绑定功能需要第三⽅⽀持)。
我们公司是做分布式⽂件系统的,很多项⽬都⽤到⽹卡绑定来提⾼性能。
在⽹络找了很多资料,也做了⼤量的测试,下⾯就⽹卡绑定谈⼀下⾃⼰的看法。
⼀、 Bonding的应⽤1、⽹络负载均衡对于bonding的⽹络负载均衡是我们在⽂件服务器中常⽤到的,⽐如把三块⽹卡,当做⼀块来⽤,解决⼀个IP地址,流量过⼤,服务器⽹络压⼒过⼤的问题。
如果在内⽹中,⽂件服务器为了管理和应⽤上的⽅便,⼤多是⽤同⼀个IP地址。
对于⼀个百M的本地⽹络来说,⽂件服务器在多个⽤户同时使⽤的情况下,⽹络压⼒是极⼤的,为了解决同⼀个IP地址,突破流量的限制,毕竟⽹线和⽹卡对数据的吞吐量是有限制的。
如果在有限的资源的情况下,实现⽹络负载均衡,最好的办法就是bonding 。
2、⽹络冗余对于服务器来说,⽹络设备的稳定也是⽐较重要的,特别是⽹卡。
⼤多通过硬件设备的冗余来提供服务器的可靠性和安全性,⽐如电源。
bonding 也能为⽹卡提供冗余的⽀持。
把⽹个⽹卡绑定到⼀个IP地址,当⼀块⽹卡发⽣物理性损坏的情况下,另⼀块⽹卡也能提供正常的服务。
⼆、 Bonding的原理什么是bonding需要从⽹卡的混杂(promisc)模式说起。
我们知道,在正常情况下,⽹卡只接收⽬的硬件地址(MAC Address)是⾃⾝Mac的以太⽹帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。
但是⽹卡也⽀持另外⼀种被称为混杂promisc的模式,可以接收⽹络上所有的帧,⽐如说tcpdump,就是运⾏在这个模式下。
Linux下双网卡绑定bond0一:原理:linux操作系统下双网卡绑定有七种模式。
现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多。
而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在网卡产商也会出一些针对w indows操作系统网卡管理软件来做网卡绑定(windows操作系统没有网卡绑定功能需要第三方支持)。
进入正题,linux有七种网卡绑定模式:0. round robin,1.ac tive-backup,2.load balancing (xor), 3.fault-tolerance (broadcast),cp,5.transmit load balancing,6.adaptive load balancing。
二:案例一:mode=1(active-backup):一个网卡处于活动状态,一个处于备份状态,所有流量都在主链路上处理。
当活动网卡down掉时,启用备份的网卡。
1:[root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #编辑该设备eth0如图:[root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1 #编辑该设备eth1 如图:2:[root@lyt ~]# cd /etc/sysconfig/network-scripts/[root@lyt network-scripts]# cp ifcfg-eth0 ifcfg-bond0 #生成一个bond0的虚拟网卡[root@lyt network-scripts]# vim ifcfg-bond0 #编辑该网卡内容3:[root@lyt network-scripts]# vim /etc/modprobe.conf #编辑该配置文件下图中1表示系统在启动时加载bonding模块,对外虚拟网络接口设备为bond0;miimon=100表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。
linux下多网卡绑定假定将eth0,eth1,eth2,eth3绑定成bond0,步骤如下:(1) #vi /etc/modprobe.conf, 添加如下2行:alias bond0 bondingoptions bonding miimon=100 mode=4当mode=0时,交换机相应端口不需要做trunk,但是从节点上ping网关(192.*.*.*)有较大的延时。
解决此问题的办法是把mode改成4,同时配置交换机相应端口开启链路聚合并捆绑为trunk。
在modprobe.conf文件中,miimon参数用来监测网卡物理连接,建议至少设为100mode参数用来设置绑定模式0 负载均衡(round robin策略)1 active/backup模式,同一时间只有一块网卡使用。
2 负载均衡(xor算法)3 广播模式4 802.3ad模式,lagp协议,带宽翻倍。
模式不能写错这里很容易出现不稳定的情况,多半是这里模式选择错了,所以在实施的时候需要小心,把模式确定了,然后在动手。
(2)修改/etc/sysconfig/network-scripts/目录下的ifcfg-bond0, ifcfg-eth0, i fcfg-eth1,ifcfg-eth2,ifcfg-eth3. 具体内容如下:[root@io102 network-scripts]# pwd/etc/sysconfig/network-scripts[root@io102 network-scripts]# cat ifcfg-bond0DEVICE=bond0BOOTPROTE=staticONBOOT=yesIPADDR=192.*.*.*NETMASK=255.255.255.0USERTCL=noGATEWAY=192.*.*.*[root@io102 network-scripts]# cat ifcfg-eth0DEVICE=eth0BOOTPROTO=noneONBOOT=yesTYPE=EthernetUSERTCL=noMASTER=bond0SLAVE=yes[root@io102 network-scripts]# cat ifcfg-eth1 DEVICE=eth1BOOTPROTO=noneONBOOT=yesTYPE=EthernetUSERTCL=noMASTER=bond0SLAVE=yes[root@io102 network-scripts]# cat ifcfg-eth2 DEVICE=eth2BOOTPROTO=noneONBOOT=yesTYPE=EthernetUSERTCL=noMASTER=bond0SLAVE=yes[root@io102 network-scripts]# cat ifcfg-eth3 DEVICE=eth3BOOTPROTO=noneONBOOT=yesTYPE=EthernetUSERTCL=noMASTER=bond0SLAVE=yes(3)查看bond0的状态[root@io102 ~]# more /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v2.6.3-rh (June 8, 2005)Bonding Mode: IEEE 802.3ad Dynamic link aggregationMII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0802.3ad infoLACP rate: slowActive Aggregator Info:Aggregator ID: 1Number of ports: 4Actor Key: 17Partner Key: 480Partner Mac Address: 00:12:f2:cd:68:00Slave Interface: eth0MII Status: upLink Failure Count: 0Permanent HW addr: 00:1e:0b:73:56:26Aggregator ID: 1Slave Interface: eth1MII Status: upLink Failure Count: 0Permanent HW addr: 00:1e:0b:73:56:a2Aggregator ID: 1Slave Interface: eth2MII Status: upLink Failure Count: 0Permanent HW addr: 00:1e:0b:d5:34:d2Aggregator ID: 1Slave Interface: eth3MII Status: upLink Failure Count: 0Permanent HW addr: 00:1e:0b:d5:34:d0Aggregator ID: 1然后在交换机(这里的交换机是Foundry)端做TRUNK将同一台服务器的多个网卡捆绑成一条逻辑的线路来使用,提高服务器与交换机之间的带宽,并且能够负载均衡多个网卡上的流量,以及多个网卡之间的冗余当其中一个网卡坏了其它的网卡会平分坏网卡上的流量,并不影响服务器与交换机之间的数据转发。
Linux系统配置双⽹卡绑定bond01、bonding简述双⽹卡配置设置虚拟为⼀个⽹卡实现⽹卡的冗余,其中⼀个⽹卡坏掉后⽹络通信仍可正常使⽤,实现⽹卡层⾯的负载均衡和⾼可⽤性。
现在⼀般的企业都会使⽤双⽹卡接⼊,这样既能添加⽹络带宽,同时⼜能做相应的冗余,可以说是好处多多。
⽽⼀般企业都会使⽤linux操作系统下⾃带的⽹卡绑定模式,当然现在⽹卡产商也会出⼀些针对windows操作系统⽹卡管理软件来做⽹卡绑定(windows操作系统没有⽹卡绑定功能需要第三⽅⽀持)。
1.1 bonding原理⽹卡⼯作在混杂(promisc)模式,接收到达⽹卡的所有数据包,tcpdump⼯作⽤的也是混杂模式(promisc),将两块⽹卡的MAC地址修改为相同接收特定MAC的数据帧,然后把相应的数据帧传送给bond驱动程序进⾏处理。
1.2 Bonding模式(bonding mode)轮询策略(round robin),mode=0,按照设备顺序依次传输数据包,提供负载均衡和容错能⼒主备策略(active-backup),mode=1,只有主⽹卡处于⼯作状态,备⽹卡处于备⽤状态,主⽹卡坏掉后备⽹卡开始⼯作,提供容错能⼒异或策略(load balancing (xor)),mode=2,根据源MAC地址和⽬的MAC地址进⾏异或计算的结果来选择传输设备,提供负载均衡和容错能⼒⼴播策略(fault-tolerance (broadcast)),mode=3,将所有数据包传输给所有接⼝通过全部设备来传输所有数据,⼀个报⽂会复制两份通过bond下的两个⽹卡分别发送出去,提供⾼容错能⼒动态链接聚合(lacp),mode=4,按照802.3ad协议的聚合⾃动配置来共享相同的传输速度,⽹卡带宽最⾼可以翻倍,链路聚合控制协议(LACP)⾃动通知交换机聚合哪些端⼝,需要交换机⽀持 802.3ad协议,提供容错能⼒输出负载均衡模式(transmit load balancing),mode=5,输出负载均衡模式,只有输出实现负载均衡,输⼊数据时则只选定其中⼀块⽹卡接收,需要⽹卡和驱动⽀持ethtool命令输⼊/输出负载均衡模式(adaptive load balancing),mode=6,输⼊和输出都实现负载均衡,需要⽹卡和驱动⽀持ethtool命令2、⽹卡配置⽂件的配置2.1 配置环境 环境:系统CentOS 6.7 + 虚拟机 VMware 12 ⾄少两块物理⽹卡(VMware上添加eth0,eth1) 2.2 需要添加或修改的配置⽂件有5个(mode=1) 这5个配置⽂件是: /etc/sysconfig/network-scripts/ifcfg-eth{0,1} /etc/sysconfig/network-scripts/ifcfg-bond0 /etc/modprobe.d/dist.conf /etc/rc.local2.2.1 /etc/sysconfig/network-scripts/ifcfg-{eth0,eth1,bonding0}修改或添加提⽰:先备份好eth0和eth1,再修改这⼏个⽂件以下是修改好的三个⽹卡配置⽂件的参数[root@ant network-scripts]# vimdiff ifcfg-eth0 ifcfg-eth1 ifcfg-bond02.2.2 修改/etc/modprobe.d/dist.conf⽂件在此⽂件中添加以下内容:alias bond0 bonding,表⽰系统在启动时加载bonding模块,对外虚拟⽹络接⼝设备为 bond0miimon=100,表⽰系统每100ms监测⼀次链路连接状态,如果有⼀条线路不通就转⼊另⼀条线mode=1,表⽰绑定模式为1primary=eth0,系统⾸先eth0作为bond0接⼝与外界信息的传输接⼝2.2.3 修改配置⽂件/etc/rc.local在此⽂件中添加以下内容:modprobe bonding miimon=100 mode=12.2.4 重启⽹络(service network restart),并查看三个接⼝的mac地址使⽤ifconfig命令显⽰,bond0,eth1,eth2物理地址相同,提⽰三个⽹卡均通过⼀个ip主机端⼝与外界通信但是,我们可以看到,在mode=1的情况下,当前bond0采⽤eth0通信,实际的物理⽹卡地址见下图:3、验证⽹络的连通性没有丢包,⽹络连通性可。
Linux双网卡绑定实现.txt*一篇一篇的翻着以前的的签名,那时候的签名有多幼稚就有多么的幼稚。
你连让我报复的资格都没有-〞好想某天来电显示是你的号码。
好想某天你的状态是为我而写。
有些人,我们明知道是爱的,也要去放弃,因为没结局Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。
其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux 的2.4.x的内核中也采用这这种技术,被称为bonding。
bonding技术的最早应用是在集群——beowulf上,为了提高集群节点间的数据传输而设计的。
下面我们讨论一下bonding 的原理,什么是bonding需要从网卡的混杂(promisc)模式说起。
我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。
但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。
bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。
然后把相应的数据帧传送给bond驱动程序处理。
说了半天理论,其实配置很简单,一共四个步骤:实验的操作系统是Redhat Linux Enterprise 3.0绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片。
1.编辑虚拟网络接口配置文件,指定网卡IPvi /etc/sysconfig/ network-scripts/ ifcfg-bond0[root@redflag root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 2 #vi ifcfg-bond0将第一行改成 DEVICE=bond0# cat ifcfg-bond0DEVICE=bond0BOOTPROTO=staticIPADDR=172.31.0.13NETMASK=255.255.252.0BROADCAST=172.31.3.254ONBOOT=yesTYPE=Ethernet这里要主意,不要指定单个网卡的IP 地址、子网掩码或网卡 ID。
(Linux6.1/6.5下双网卡绑定的好处,0模式,可以实现双网卡的负载均衡,就是比如单网卡的网速是100M,双网卡就是200M,不过我们千兆网卡的双网卡绑定最大是140~150M,1模式,双网卡的主/备切换)。
1、检查系统配置上是否支持bonding:cat /boot/config-xxxxxxxx | grep -i bondingCONFIG_BONDING=m(返回CONFIG_BONDING=m 表示支持,否则需要编译内核使他支持bonding,需要编译时再百度)2、为防止出错,可以先备份网卡配置目录。
3、配置bond0/etc/sysconfig/network-scripts/下创建一个ifcfg-bond0,内容如下:DEVICE=bond0BOOTPROTO=staticNM_CONTROLLED=no (这里一定要是no)ONBOOT=yesIPADDR=192.168.1.51NETMASK=255.255.255.0GATEWAY=192.168.1.1USERCTL=noBONDING_OPTS="mode=0 miimon=200" (这里就是配置下绑定模式)3、修改ifcfg-em1 (一般机器是ifcfg-eth0,名字嘛,随便叫什么都没有关系)和ifcfg-em2 ,内容如下vim ifcfg-em1DEVICE=em1BOOTPROTO=staticMASTER=bond0SLAVE=yesONBOOT=yesUSERCTL=novim ifcfg-em2DEVICE=em2BOOTPROTO=staticMASTER=bond0SLAVE=yesONBOOT=yesUSERCTL=no4、修改/etc/modprobe.d/dist.conf文件,最后加上alias bond0 binding5、修改/etc/rc.d/rc.local文件,最后加上ifenslave bond0 eth0 eth16、关闭NetworkManager服务service NetworkManager stopchconfig NetworkManager off7、reboot机器,最好重启机器,不是重启网卡8、ifconfig,查看em1,em2的MAC地址是否与bond0一致9、查看bond0的运行状态cat /proc/net/bonding/bond0ser。
------------------------网卡绑定------------------------cd /etc/sysconfig/network-scripts/1、检查系统配置上是否支持bonding:cat config-2.6.32-431.el6.x86_64 | grep -i bondingCONFIG_BONDING=m(返回CONFIG_BONDING=m 表示支持,否则需要编译内核使他支持bonding,需要编译时再百度)2、为防止出错,可以先备份网卡配置目录。
3、配置bond0/etc/sysconfig/network-scripts/下创建一个ifcfg-bond0,内容如下:DEVICE=bond0BOOTPROTO=staticNM_CONTROLLED=noONBOOT=yesIPADDR=10.7.101.92NETMASK=255.255.255.0GATEWAY=10.7.101.1USERCTL=noBONDING_OPTS="mode=1 miimon=200" (这里就是配置下绑定模式)3、修改ifcfg-em1 (一般机器是ifcfg-eth0,名字嘛,随便叫什么都没有关系)和ifcfg-em2 ,内容如下修改完会自动断网vi ifcfg-eth0BOOTPROTO=static #修改MASTER=bond0 #新增SLAVE=yes #新增ONBOOT=yes #修改USERCTL=no #新增vi ifcfg-eth1BOOTPROTO=static #修改MASTER=bond0 #新增SLAVE=yes #新增ONBOOT=yes #修改USERCTL=no #新增去掉旧网卡上的IP地址,此处会断网DEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME="System eth0"IPADDR=10.7.101.70PREFIX=24GATEWAY=10.7.101.1若提示if ipaddress already in used*** ,可以在相应的网卡配置文件中加上下行配置(确认确实没问题的前提下):ARPCHECK=no4、修改/etc/modprobe.d/dist.conf文件,最后加上alias bond0 binding5、修改/etc/rc.d/rc.local文件,最后加上ifenslave bond0 eth0 eth16、关闭NetworkManager服务service NetworkManager stopchkconfig NetworkManager off7、reboot机器,最好重启机器,不是重启网卡8、ifconfig,查看em1,em2的MAC地址是否与bond0一致9、查看bond0的运行状态cat /proc/net/bonding/bond0[root@NMZY-DB network-scripts]# cat ifcfg-eth0DEVICE=eth0TYPE=EthernetUUID=fd122443-1c07-4598-ad13-4b1fee3da008ONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticHWADDR=6C:92:BF:11:95:40#IPADDR=10.7.101.91#PREFIX=24#GATEWAY=10.7.101.1DEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME="System eth0"MASTER=bond0ARPCHECK=noSLAVE=yesUSERCTL=noservice network restart--重启后网卡启动可以正常,但重启网络服务就异常service NetworkManager stopchkconfig iptables offchkconfig NetworkManager offservice network restart--/etc/modprobe.d/modprobe.confalias bond0 bonding/var/lock/subsys/localifenslave bond0 eth0 eth1。
一、L inux bonding研究及实现Linux Bonding本文介绍Linux(具体发行版本是CentOS5.6)下的双卡绑定的原理及实现。
Linux双网卡绑定实现是使用两块网卡虚拟成为一块网卡设备,这简单来说,就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。
这项技术在Sun和Cisco中分别被称为Trunking和Etherchannel技术,在Linux的2.4.x及其以后的内核则称为Bonding 技术。
bonding的前提条件:网卡应该具备自己独立的BIOS芯片,并且各网卡芯片组型号相同。
同一台服务器上的网卡毫无疑问是是符合这个条件的。
Bonding原理bonding的原理:在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身MAC的以太网帧,过滤别的数据帧,以减轻驱动程序的负担;但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,bonding就运行在这种模式下,而且修改了驱动程序中的mac地址,将两块网卡的MAC地址改成相同,可以接收特定MAC的数据帧。
然后把相应的数据帧传送给bond驱动程序处理。
为方便理解bonding的配置及实现,顺便阐述一下Linux的网络接口及其配置文件。
在Linux 中,所有的网络通讯都发生在软件接口与物理网络设备之间。
与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于 /etc/sysconfig/netwrok-scripts/目录下。
网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络设备的控制。
当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如何对这些接口进行配置。
接口配置文件的名称通常类似于 ifcfg-<name>,其中 <name> 与配置文件所控制的设备的名称相关。
在所有的网络接口中,最常用的就是以太网接口ifcfg-eth0,它是系统中第一块网卡的配置文件。
1.1 确认网卡配置信息现场的HP刀片配置了四块网卡,编号为eth0、eth1、eth2、eth3。
按照规划使用其中两块网卡(eth0、eth1)绑定后承载业务IP,另外两块网卡(eth2、eth3)绑定后配置DCN网络的IP地址,供管理服务器使用。
步骤如下:步骤1:确认物理连线是否正确(从服务器eth0、eth1网卡出的网线应分别接到主备业务交换机,从服务器eth2、eth3网卡出的网线应分别接到主备网管交换机)。
步骤2:察看服务器配置的网卡信息是否与上述情况相同# ifconfig -a1.2 配置业务平面的双网卡绑定步骤1:查找业务平面网卡的总线号以业务平面网卡eth0为例,通过ethtool得到网卡的“bus-info”,网卡总线号以“bus-pci-”为前缀,后面加上“bus-info”,因此,eth0对应的总线号为“bus-pci-0000:04:00.0”。
# ethtool -i eth0driver: e1000version: 7.3.15-NAPIfirmware-version: 2.1-7bus-info: 0000:04:00.0步骤2:以root用户编辑/etc/sysconfig/network/ifcfg-bond0文件,增加以下行:【内容示例】BOOTPROTO='static'IPADDR='192.168.9.100'NETMASK='255.255.255.224'STARTMODE='onboot'BONDING_MASTER='yes'BONDING_MODULE_OPTS='mode=1 miimon=200 use_carrier=1'BONDING_SLAVE0='bus-pci-0000:04:00.0'BONDING_SLAVE1='bus-pci-0000:04:00.1'●IPADDR:主用网卡IP●NETMASK:子网掩码●BONDING_SLAVE0:eth0的网卡总线号,例如“bus-pci-0000:04:00.0”●BONDING_SLAVE1:eth1的网卡总线号,例如“bus-pci-0000:04:00.1”【注意】对于做网卡绑定的网卡,比如eth0和eth1,还需要检查/etc/sysconfig/network目录下,有没有对应这个网卡的MAC地址的配置文件,比如eth0的硬件地址是00:18:82:50:6c:6a,则如果该目录下有名称为“ifcfg-eth-id-00:18:82:50:6c:6a”的网卡配置文件,则需要删除,或者移到备份目录中。
HP ProLiant服务器系列- Windows 系统下的网卡绑定方法DL380G4 主板集成网卡进行网卡绑定,需要使用HP Network Configration utility(NCU)工具进行绑定。
如果服务器是通过HP SmartStart光盘引导安装的,在系统安装完成后右下角会有一个网卡绑定的图标(如图)。
如果是直接用操作系统光盘引导安装的操作系统,也可以通过单独安装NCU 工具来进行网卡绑定。
NCU 工具在SmartStart光盘compaq/csp/nt/ 目录下。
如果网卡驱动版本过低会有报错提示,更新网卡驱动到最新再尝试安装即可。
网卡绑定:1. 双击图标,运行工具。
2. 选中网卡,TEAM 绑定,Y 确认继续。
3. SAVE 保存。
4. 绑定中。
5. 确认完成。
6. 在网络连接里可以查看到已经生成的虚拟网卡,至此网卡绑定成功。
这项技术在Sun和Cisco的设备中早已存在,分别被称为Trunking和Etherchannel,在Linux中这种技术被称为Bonding。
Bonding运行在网卡的混杂(promiscuous )模式下而且它将两块网卡的MAC地址修改为一样的。
利用Bonding技术配置双网卡绑定的前提条件是两块网卡芯片组型号相同。
多网卡绑定的优点不少,首先,可以增大带宽,假如一个网卡的带宽是100M,理论上两块网卡就是200M,三块就是300M,当然实际上的效果是不会是这样简单的增加的,不过经实际测试使用多个网卡对于增加带宽,保持带宽的稳定性肯定是有裨益的,如果交换机等相关条件不错的话,这个效果还是很能令人满意;其次,可以形成网卡冗余阵列、分担负载,双网卡被绑定成“一块网卡”之后,同步一起工作,对服务器的访问流量被均衡分担到两块网卡上,这样每块网卡的负载压力就小多了,抗并发访问的能力提高,保证了服务器访问的稳定和畅快,当其中一块发生故障的时候,另一块立刻接管全部负载,过程是无缝的,服务不会中断.适用范围:Proliant ML ,DL 系列服务器操作步骤:1. 从网上下载或是从光盘里安装HP Network Configuration Utility 程序,安装后,右下角任务栏回出现相应的图标。
Linux-双⽹卡绑定bond详解1、什么是bond⽹卡bond是通过多张物理⽹卡绑定为⼀个逻辑⽹卡,实现本地⽹卡的冗余,带宽扩容和负载均衡,在⽣产场景中是⼀种常⽤的技术。
Kernels 2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。
可以通过以下命令确定内核是否⽀持 bonding:[root@lixin network-scripts] #cat /boot/config-2.6.32-573.el6.x86_64 |grep -i bondingCONFIG_BONDING=m[root@lixin network-scripts] #2、bond的模式bond的模式常⽤的有两种:mode=0(balance-rr)表⽰负载分担round-robin,并且是轮询的⽅式⽐如第⼀个包⾛eth0,第⼆个包⾛eth1,直到数据包发送完毕。
优点:流量提⾼⼀倍缺点:需要接⼊交换机做端⼝聚合,否则可能⽆法使⽤mode=1(active-backup)表⽰主备模式,即同时只有1块⽹卡在⼯作。
优点:冗余性⾼缺点:链路利⽤率低,两块⽹卡只有1块在⼯作bond其他模式:mode=2(balance-xor)(平衡策略)表⽰XOR Hash负载分担,和交换机的聚合强制不协商⽅式配合。
(需要xmit_hash_policy,需要交换机配置port channel)特点:基于指定的传输HASH策略传输数据包。
缺省的策略是:(源MAC地址 XOR ⽬标MAC地址) % slave数量。
其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能⼒mode=3(broadcast)(⼴播策略)表⽰所有包从所有⽹络接⼝发出,这个不均衡,只有冗余机制,但过于浪费资源。
此模式适⽤于⾦融⾏业,因为他们需要⾼可靠性的⽹络,不允许出现任何问题。
需要和交换机的聚合强制不协商⽅式配合。
Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig 来设置IP,用route来配置默认网关,用hostname来配置主机名,但是重启后会丢失。
1.相关的配置文件:/ect/hosts 配置主机名和IP地址的对应/etc/sysconfig/network 配置主机名和网关/etc/sysconfig/network-scripts/ifcfg-eth0 eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推2.网卡配置假设我们要配置主机名为test,eth0的IP地址192.168.168.1/24,网关地址192.168.168.250 则/etc/sysconfig/network文件内容如下:NETWORKING=yesHOSTNAME=testGATEWAY=192.168.168.250eth0对应的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0内容如下:DEVICE=eth0设备名称BOOTPROTO=static地址配置方式:static、dhcp、noneIPADDR=192.168.168.1NETMASK=255.255.255.0TYPE=Ethernet网络类型ONBOOT=yes系统开机是否自启动HWADDR=MAC地址2.多个网卡绑定成一块虚拟网卡为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。
比如我们可以将eth0和eth1绑定成虚拟网卡bond0。
网卡绑定步骤如下:2.1首先用ifconfig命令查看系统网卡信息,进行网卡绑定规划,比如我们选定eth0和eth12.2网卡绑定前要关闭系统的NetworkManager服务service NetworkManager stop停止服务chkconfig NetworkManager off开机自启动关掉chkconfig|grep NetworkManager检查服务是否彻底关掉2.3在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下:DEVICE=bond1ONBOOT=yesBOOTPROTO=none地址配置方式noneIPADDR=22.1.82.63NETMASK=255.255.255.0USERCTRL=noGATEWAY=22.1.82.253BONDING_OPTS="mode=0 miimon=50 fail_over_mac=0"虚拟网卡参数,mode为网卡策略,目前有七种(详细介绍在下面)miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡。
MIC3321 双网口绑定技术研华IAG FAE史红杰2011-2研华客户在RedHat9下使用MIC3321,欲使两个网口同时连接到外围设备。
要求其中一个网口中断时,整个网络通讯不会中断。
其难点在于如何让网络通讯从一个网口迅速转移到另一个网口,而不影响网络通讯。
一种简单的办法,就是绑定两个网卡到一个虚拟网口上,对外具有一个唯一的IP,能够解决这个问题。
具体操作方法如下:1. 编辑/etc/modules.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为bond0alias eth0 e1000ealias eth1 e1000ealias bond0 bondingoptions bonding mode=1 miimon=100不同模式行为不一样,mode=1指定工作模式为1,所以两块网卡的工作方式是active,backup方式,即主备的工作方式,mode=0为负载均衡方式.Mode of operation :0 for balance-rr1 for active-backup2 for balance-xor3 for broadcast4 for 802.3ad5 for balance-tlb,6 for balance-alb2. 编辑虚拟网络接口配置文件,指定网卡IPvi /etc/sysconfig/ network-scripts/ ifcfg-bond0DEVICE=bond0IPADDR=192.168.1.45NETMASK=255.0.0.0NETWORK=192.168.1.0BROADCAST=192.168.1.255ONBOOT=yesBOOTPROTO=noneUSERCTL=no3. 编辑物理网络接口配置文件,并指向虚拟网络接口bond0.物理网络接口配置文件位于/etc/sysconfig/network-scripts, ifcfg-eth0对应第一个千兆网口,ifcfg-eth1对应第二个千兆网口。