linux双网卡做成bond
linux下双网卡绑定并设置双IP

linux下双网卡绑定并设置双IP环境:双网卡服务器RHEL AS5.4目的:双网卡绑定并设置双IP配置:分为2部分:一、双网卡绑定;二、给绑定后的网卡设置双IP一、双网卡绑定1,新建个ifcfg-bond0 (cp /etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-script/ifcfg-bond0)2,修改ifcfg-bond0文件,去掉mac地址相关信息(HW ADDR),给个ip地址,网络地址,广播地址如下:# cat ifcfg-bond0DEVICE= bond0BOOTPROTO=staticIPADDR=192.168.80.189 //*第一个IP地址*//NETMASK=255.255.255.0 //*网络掩码*//ONBOOT=yes:wq //*保存退出*//3,修改ifcfg-eth0和ifcfg-eth1,如下:cat ifcfg-eth0cat ifcfg-eth14,修改/etc/modprobe.conf,添加如下语句:alias bond0 bondingoptions bond0 miimon=100 mode=1注释:mode可以为0,1,0为负载均衡,1为失效保护如下图:5,修改/etc/rc.d/rc.local,添加如下内容:ifenslave bond0 eth0 eth1route add -net 192.168.1.255 netmask 255.255.255.0 bond0如下图:6,重启,看能否通过ssh登陆上服务器bond0得ip(192.168.1.136),如果成功登陆或者ping通了,再查看一下连接状态ifconfig,如下图:ifconfig查看连接状态7,尝试拔掉一根网线看是否能正常登陆上去(或ping得通),再查看一下更连接状态(cat /proc/net/bonding/bond0)如下图:8,尝试一下更换一下mode的值,再试一下。
Linux双网卡绑定和解除

Linux双⽹卡绑定和解除⼀、传统的bond模式⽹卡绑定⼀定要在服务管理中关闭NetworkManager服务并禁⽤⾃动启动,因为centos中NetworkManager服务与network服务冲突,默认是由NetworkManager接管⽹络服务,所以传统⽅式重启会出现启动失败,错误⽇志⼀般如下所⽰,管理员就得回到机房接显⽰器配置⽹络连接。
以绑定eth0和eth1为例1.通过vim设置eth0的IP地址和eth1的IP地址。
[root@x101 network-scripts]# vim ifcfg-eth0DEVICE=eth0ONBOOT=yesBOOTPROTO=noneTYPE=EthernetMASTER=bond0 //将⽹卡指向bond0SLAVE=yesUSERCTL=[yes|no](⾮root⽤户是否可以控制该设备)[root@x101 network-scripts]# vim ifcfg-eth1DEVICE=eth1ONBOOT=yesNETBOOT=yesBOOTPROTO=noneTYPE=EthernetMASTER=bond0 //将⽹卡指向bond0SLAVE=yesUSERCTL=[yes|no](⾮root⽤户是否可以控制该设备)2.新建 /etc/sysconfig/network-scripts/ifcfg-bond0绑定配置⽂件[root@x101 network-scripts]# cat ifcfg-bond0DEVICE=bond0ONBOOT=yesNETBOOT=yesBOOTPROTO=noneTYPE=EthernetIPADDR=192.168.0.106PREFIX=24DNS=192.168.0.1NM_CONTROLLED=no[root@x101 network-scripts]#5.创建⽹卡绑定的驱动⽂件/etc/modprobe.d/⾃定义.conf,使得绑定后的⽹卡bond0能够⽀持绑定技术(bonding),同时定义⽹卡以mode6模式进⾏绑定,且出故障时⾃动切换时间为100毫秒ms,添加alias bond0 bondingoptions bond0 mode=6 miimon=100 max_bonds=2miimon是指多久时间要检查⽹路⼀次,单位是ms(毫秒)。
Linux网卡Bonding配置

Linux⽹卡Bonding配置⼀、bonding技术简介 bonding(绑定)是⼀种将n个物理⽹卡在系统内部抽象(绑定)成⼀个逻辑⽹卡的技术,能够提升⽹络吞吐量、实现⽹络冗余、负载等功能,有很多优势。
Linux 系统下⽀持⽹络 Bonding,也叫 channel Bonding,它允许你将 2 个或者更多的⽹卡绑定到⼀起,成为⼀个新的逻辑⽹卡,从⽽实现故障切换或者负载均衡的功能,具体情况要取决于 mode 参数的具体配置。
Linux系统bonding技术是内核层⾯实现的,它是⼀个内核模块(驱动)。
使⽤它需要系统有这个模块, 我们可以modinfo命令查看下这个模块的信息, ⼀般来说都⽀持.modinfo bondingbonding的七种⼯作模式bonding技术提供了七种⼯作模式,在使⽤的时候需要指定⼀种,每种有各⾃的优缺点.balance-rr (mode=0) 默认, 有⾼可⽤ (容错) 和负载均衡的功能, 需要交换机的配置,每块⽹卡轮询发包 (流量分发⽐较均衡).active-backup (mode=1) 只有⾼可⽤ (容错) 功能, 不需要交换机配置, 这种模式只有⼀块⽹卡⼯作, 对外只有⼀个mac地址。
缺点是端⼝利⽤率⽐较低balance-xor (mode=2) 不常⽤broadcast (mode=3) 不常⽤802.3ad (mode=4) IEEE 802.3ad 动态链路聚合,需要交换机配置,没⽤过balance-tlb (mode=5) 不常⽤balance-alb (mode=6) 有⾼可⽤ ( 容错 )和负载均衡的功能,不需要交换机配置 (流量分发到每个接⼝不是特别均衡)详细说明请参考⽹络上其他资料,了解每种模式的特点根据⾃⼰的选择就⾏, ⼀般会⽤到0、1、4、6这⼏种模式。
⼆、RHEL6 下的 Boding 配置: 在所有的 RHEL 版本下,⽬前都不⽀持在 NetworkManager 服务协作下实现 Bonding 配置.所以要么直接关闭 NetworkManager 服务,并取消其开机启动,要么在所有涉及 Bonding 的⽹卡配置⽂件中(包含ethx 或者 bondY),显式地添加⼀⾏:NM_CONTROLLED=no 要配置⽹卡 Bonding,你必须在/etc/sysconfig/network-scripts/⽬录下建⽴逻辑⽹卡的配置⽂件 ifcfg-bondX,⼀般 X 从 0 开始,依次增加.具体的⽂件内容根据参与 Bonding 的⽹卡类型的不同⼜有所差别,以最最常见的 Ethernet 为例,配置⽂件⼤致是这样的:DEVICE=bond0IPADDR=192.168.0.1NETMASK=255.255.255.0ONBOOT=yesBOOTPROTO=noneUSERCTL=noBONDING_OPTS="bonding parameters separated by spaces"NM_CONTROLLED=no BONDING_OPTS 这⼀⾏填写你需要的 Bonding 模式,⽐如 BONDING_OPTS="miimon=100 mode=1" ,下⾯也会介绍⼏种常见的配置⽅式和它代表的意义,这⾥暂时不展开说明.为了⽅便称呼,我们把Bongding 后的逻辑⽹卡 bondX 称为主⽹卡(Master),参与 Bonding 的物理⽹卡 ethY 称为⼦⽹卡(Slave). 主⽹卡配置⽂件创建完毕以后,⼦⽹卡的配置⽂件也需要做相应的改变,主要是添加 MASTER=和SLAVE=这两项参数,我们假设 2 张⼦⽹卡为 eth0 和 eth1,那么他们的配置⽂件⼤致的样⼦会是这样⼦:DEVICE=ethXBOOTPROTO=noneONBOOT=yesMASTER=bond0SLAVE=yesUSERCTL=noNM_CONTROLLED=no 像这样,分别修改 ifcfg-eth0 和 ifcfg-eth1 配置⽂件,DEVICE=ethX 中的 X ⽤相应的值代替.然后我们重启⽹络服务.service network restart这样⼦,⼦⽹卡为 eth0 和 eth1,主⽹卡为 bond0,模式为 mode 1 的⽹络 Bonding 就完成了rhel6 bonding 实例展⽰系统: rhel6⽹卡: eth2、eth3bond0:10.200.100.90负载模式: mode1(active-backup) # 这⾥的负载模式为1,也就是主备模式.1、关闭和停⽌NetworkManager服务service NetworkManager stopchkconfig NetworkManager offps: 如果有装的话关闭它,如果报错说明没有装这个,那就不⽤管2、加载bonding模块modprobe --first-time bonding3、创建基于bond0接⼝的配置⽂件[root@rhel6.6 network-scripts]# cat ifcfg-bond0DEVICE=bond0BOOTPROTO=noneIPADDR=10.200.100.90NETMASK=255.255.255.0ONBOOT=yesNM_CONTROLLED=noUSERCTL=noBONDING_OPTS="mode=1 miimon=200"4、SLAVE⽹卡的配置⽂件两种⼦⽹卡的配置⽂件如下[root@rhel6.6 network-scripts]# cat ifcfg-eth2DEVICE=eth2#HWADDR=14:58:D0:5A:0F:76NM_CONTROLLED=no#UUID=3b718bed-e8d4-4b64-afdb-455c8c3ccf91ONBOOT=yes#NM_CONTROLLED=yesBOOTPROTO=noneMASTER=bond0SLAVE=yesUSERCTL=no[root@rhel6.6 network-scripts]# cat ifcfg-eth3DEVICE=eth3#HWADDR=14:58:D0:5A:0F:77NM_CONTROLLED=no#UUID=988835c2-8bfa-4788-9e8d-e898f68458f0ONBOOT=yes#NM_CONTROLLED=yesBOOTPROTO=noneMASTER=bond0SLAVE=yesUSERCTL=no5、bonding信息查看重启⽹络服务器后bonding⽣效[root@rhel6.6 network-scripts]# ip a4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000link/ether c4:34:6b:ac:5c:9e brd ff:ff:ff:ff:ff:ff5: eth3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000link/infiniband a0:00:03:00:fe:80:00:00:00:00:00:00:00:02:c9:03:00:0a:6f:ba brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff10: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UPlink/ether c4:34:6b:ac:5c:9e brd ff:ff:ff:ff:ff:ffinet 10.200.100.90/24 brd 10.212.225.255 scope global bond0inet6 fe80::c634:6bff:feac:5c9e/64 scope linkvalid_lft forever preferred_lft forever[root@rhel6.6 network-scripts]# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)Bonding Mode: fault-tolerance (active-backup) # bond0接⼝采⽤mode1Primary Slave: NoneCurrently Active Slave: eth2MII Status: upMII Polling Interval (ms): 200Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth2MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: c4:34:6b:ac:5c:9eSlave queue ID: 0Slave Interface: eth3MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: c4:34:6b:ac:5c:9fSlave queue ID: 0进⾏⾼可⽤测试,拔掉其中的⼀条⽹线看丢包和延时情况, 然后在插回⽹线(模拟故障恢复),再看丢包和延时的情况.三、RedHat7配置bonding系统: Red Hat Enterprise Linux Server release 7.6 (Maipo)⽹卡: eno3、eno4bonding:bond0负载模式: mode1(active-backup)服务器上两张物理⽹卡eno3和eno4, 通过绑定成⼀个逻辑⽹卡bond0,bonding模式选择mode1注: ip地址配置在bond0上, 物理⽹卡不需要配置ip地址.1、关闭和停⽌NetworkManager服务RedHat7默认安装了NetworkManager,在配置前先关掉NetworkManager服务,否则可能会对bonding或造成问题。
在LINUX(REDHAT)下双网卡负载均衡(LACP)

在LINUX(REDHAT)下双网卡负载均衡(LACP)(一)linux配置#cat/boot/config-kernel-version|grep-i bondingCONFIG_BONDING=m返回CONFIG_BONDING=m表示支持,否则需要编译内核使它支持bonding也可以用:查看一下内核是否已经支持bonding:modinfo bonding第一步:创建一个ifcfg-bondX#touch/etc/sysconfig/network-scripts/ifcfg-bond0新建一个bond0配置文件#cat/etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0BOOTPROTO=staticIPADDR=1.1.1.2NETMASK=255.255.255.0BROADCAST=1.1.1.255NETWORK=1.1.1.0GATEWAY=1.1.1.1ONBOOT=yesTYPE=Ethernet编辑ifcfg-bond0如上第二步:修改/etc/sysconfig/network-scripts/ifcfg-ethX这个实验中把网卡1和2绑定,修改/etc/sysconfig/network-scripts/ifcfg-ethX相应网卡配置如下:#cat/etc/sysconfig/network-scripts/ifcfg-eth1TYPE=EthernetDEVICE=eth1HWADDR=00:d0:f8:40:f1:a0网卡1macBOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes#cat/etc/sysconfig/network-scripts/ifcfg-eth2TYPE=EthernetDEVICE=eth2HWADDR=00:d0:f8:00:0c:0c网卡2macBOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes第三步:配置/etc/modprobe.conf,添加alias bond0bonding #cat/etc/modprobe.confalias eth0e100alias snd-card-0snd-intel8x0options snd-card-0index=0options snd-intel8x0index=0remove snd-intel8x0{/usr/sbin/alsactl store0>/dev/null2>&1||:;};/sbin/modprobe-r --ignore-remove snd-intel8x0alias eth18139toooptions3c501irq=3alias eth2tulip上面是三网卡本身的配置如果要绑定和做lacp只要再加上下面两条配置alias bond0bonding绑定options bond0miimon=100mode=4mode=4是lacp第四步:配置/etc/rc.d/rc.local,添加需要绑定的网卡#cat/etc/rc.d/rc.localtouch/var/lock/subsys/local配置本身就有这条命令ifenslave bond0eth1eth2这条命令是添加需要绑定的网卡1和2 到这里就完成bonding的配置了可以查看一下第五步:重启网络服务和重启pc#service network restart重启网络服务#shutdown-r now重启pc重启后可以查看bonding情况:网卡1和2都绑定上了,模式为802.3ad#cat/proc/net/bonding/bond0Ethernet Channel Bonding Driver:v3.0.3(March23,2006)Bonding Mode:IEEE802.3ad Dynamic link aggregationTransmit Hash Policy:layer2(0)MII Status:upMII Polling Interval(ms):100Up Delay(ms):0Down Delay(ms):0802.3ad infoLACP rate:slowActive Aggregator Info:Aggregator ID:1Number of ports:2Actor Key:9Partner Key:1Partner Mac Address:00:d0:f8:22:33:baSlave Interface:eth1MII Status:upLink Failure Count:0Permanent HW addr:00:d0:f8:40:f1:a0Aggregator ID:1Slave Interface:eth2MII Status:upLink Failure Count:0Permanent HW addr:00:d0:f8:00:0c:0cAggregator ID:1接口配置信息:新增了bond0的配置信息,接口bond0和eth1,eth2,绑定后三个接口使用的mac都是同一个:00:D0:F8:40:F1:A0 #ifconfigbond0Link encap:Ethernet HWaddr00:D0:F8:40:F1:A0inet addr:1.1.1.2Bcast:1.1.1.255Mask:255.255.255.0inet6addr:fe80::2d0:f8ff:fe40:f1a0/64Scope:LinkUP BROADCAST RUNNING MASTER MULTICAST MTU:1500Metric:1RX packets:128errors:0dropped:0overruns:0frame:0TX packets:259errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RX bytes:15466(15.1KiB)TX bytes:39679(38.7KiB)eth0Link encap:Ethernet HWaddr00:11:11:EB:71:E2inetaddr:192.168.180.8Bcast:192.168.180.15Mask:255.255.255.240 inet6addr:fe80::211:11ff:feeb:71e2/64Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500Metric:1 RX packets:311errors:0dropped:0overruns:0frame:0TX packets:228errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RX bytes:30565(29.8KiB)TX bytes:35958(35.1KiB)eth1Link encap:Ethernet HWaddr00:D0:F8:40:F1:A0inet6addr:fe80::2d0:f8ff:fe40:f1a0/64Scope:LinkUP BROADCAST RUNNING SLAVE MULTICASTMTU:1500Metric:1RX packets:54errors:0dropped:0overruns:0frame:0TX packets:97errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RX bytes:6696(6.5KiB)TX bytes:13821(13.4KiB)Interrupt:209Base address:0x2e00eth2Link encap:Ethernet HWaddr00:D0:F8:40:F1:A0inet6addr:fe80::2d0:f8ff:fe40:f1a0/64Scope:LinkUP BROADCAST RUNNING SLAVE MULTICAST MTU:1500Metric:1RX packets:74errors:0dropped:0overruns:0frame:0TX packets:162errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RX bytes:8770(8.5KiB)TX bytes:25858(25.2KiB)Interrupt:201Base address:0x2f00lo Link encap:Local Loopbackinet addr:127.0.0.1Mask:255.0.0.0inet6addr:::1/128Scope:HostUP LOOPBACK RUNNING MTU:16436Metric:1RX packets:6283errors:0dropped:0overruns:0frame:0TX packets:6283errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RX bytes:9783674(9.3MiB)TX bytes:9783674(9.3MiB)(二)锐捷交换机配置:lacp system-priority100全局配置lacp优先级interface GigabitEthernet0/23no switchportlacp port-priority100接口的lacp优先级port-group1mode active接口下开启lacp主动模式interface GigabitEthernet0/24no switchportlacp port-priority100port-group1mode activeinterface AggregatePort1no switchportno ip proxy-arpip address1.1.1.1255.255.255.0和linux成功建立lacp后状态信息如下:Show lacp summarySystem Id:100,00d0.f822.33baFlags:S-Device is requesting Slow LACPDUs F-Device is requesting Fast LACPDUs. A-Device is in active mode.P-Device is in passive mode.Aggregate port1:Local information:LACP port Oper Port Port Port Flags State Priority Key Number State----------------------------------------------------------------------Gi0/23SA bndl1000x10x170x3dGi0/24SA bndl1000x10x180x3d Partner information:LACP port Oper Port Port Port Flags Priority Dev ID Key Number State---------------------------------------------------------------------Gi0/23SA25500d0.f840.f1a00x90x20x3dGi0/24SA25500d0.f840.f1a00x90x10x3d State表示状态信息:bndl表示lacp建立成功,sup表示不成功。
linux双网卡绑定

一、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,它是系统中第一块网卡的配置文件。
Linux系统配置双网卡绑定bond0

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、验证⽹络的连通性没有丢包,⽹络连通性可。
麒麟系统双网卡绑定配置

麒麟操作系统技术总结一、网卡绑定当系统中有多个网卡需要进行设置时,建议将网卡的MAC地址与ethX 文件种的HWADDR一一对应,否则系统重启后网卡的eth号很可能会发生改变,在设置了网卡绑定的生成系统中,这是非常危险的。
网卡绑定配置(如将网卡eth1和eth3绑定为bond0的操作步骤):(1)使用service NetworkManage stop命令关闭NetworkManage服务,使用chkconfig NetworkManage off命令使NetworkManage服务在系统开机时不自动启动;(2)修改被绑定网卡eth1的配置。
打开终端,使用cd /etc/sysconfig/network-scripts命令进入network-scripts目录,使用gedit ifcfg-eth1命令打开ifcfg-eth1文件,修改以下内容,修改完成后保存并关闭ifcfg-eth1文件。
DEVICE=eth1BOOTPROTO=noneHWADDR=”: ::::”ONBOOT=yesTYPE=EthernetUSERCTL=noIPV6INIT=noPEERDNS=yesSLA VE=yesMASTER=bond0备注:DEVICE=<name>:<name>表示物理设备的名称,对于动态寻址的PPP设备则是指它的逻辑名称。
BOOTPROTO=<protocol><protocol>的值有以下几种:none——不自定启用协议bootp——使用BOOTP协议dhcp——使用DHCP协议HWADDR:网卡的MAC地址ONBOOT=<yes | no>:yes表示系统启动时激活设备;no表示系统启动时不激活设备USERCTL=<yes | no>:yes表示允许非root用户控制这个设备;no表示不允许非root用户控制这个设备;PEERDNS=<yes | no>:yes表示使用DNS选项的值代替/etc/resolv.conf中的配置。
bonding双网卡配置

网络设备热备方案为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡(或者其所连接的交换机)出现故障,也不会导致连接中断。
在Linux下叫bonding,效果是将两块或更多的网卡当做一块网卡使用,可以提高冗余性。
测试方案将服务器的eth0和eth1绑定成虚拟网卡bond0,bongding1服务器的虚拟网卡ip为192.168.3.60;bonding2服务器的虚拟网卡ip为192.168.3.61。
如图:一、配置双网卡绑定同一个ip地址:1.插件安装:apt-get install ifenslave2.在/etc/modules文件末尾加入:bonding3.编辑网卡配置:vi/etc/network/inerfaces:auto loiface lo inet loopbackauto bond0iface bond0 inet staticaddress 192.168.3.60netmask 255.255.252.0network 192.168.0.0broadcast 192.168.3.255gateway 192.168.0.66bond-mode 1bond-miimon 100bond-slaves nonepost-up /sbin/ifenslave bond0 eth0 eth1pre-down /sbin/ifenslave -d bond0 eth0 eth1auto eth0iface eth0 inet manualbond-master bond0bond-primary eth0 eth1auto eth1iface eth1 inet manualbond-maser bond0bond-primary eth0 eth1说明:miimon是用来进行链路监测的。
比如:miimon 100,那么系统每100 ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,常用的为0,1两种。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
l i n u x双网卡做成b o n d 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-
双网卡做成b o n d0的方法说明
所谓bond,就是把多个物理网卡绑定成一个逻辑上的网卡
好处:增加带宽接入,还可以实现主备功能,当其中一个网卡挂掉,不会影响网络连接。
并且节约IP。
实施案例讲解
我们的测试服务器
双网卡
E
我们需要将这2个网卡做成一个bond0网卡
1.编辑eth1.
vi/etc/sysconfig/network-scripts/ifcfg-eth1
修改为
我们去掉了IP,MAC,掩码网关,bootproto设置为none
2.编辑eth2
同样这样更改eth2,如下图所示
3.创建并且编辑bond0网卡
vi/etc/sysconfig/network-scripts/ifcfg-bond0
增加如下参数
可以看到,和我们平时用的eth1网卡配置差不多,只是少了MAC地址。
编辑vi/etc/modprobe.conf文件
添加如下参数
编辑好了之后重启网卡,会发现eth1eth2无IP,依然通了外网
至此,我们的bond0已经创建成功
接下来我们需要去编辑启动文件添加一行
vi/etc/rc.local
添加ifenslavebond0eth1eth2
重启服务器,测试是否能成功
多个bond
如果是创建多个bond的时候,我们修改vi/etc/modprobe.conf配置文件的时候依照下图添加,依次增加
Eth2eth3….等修改方式同上。
如果bond的模式(请查看参数讲解)不同,那么修改为
这种情况遇到较少,我们了解就好
参数讲解
Bond有7种模式,我们常用的是
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
七种bond模式说明:
第一种模式:mod=0?,即:(balance-rr)Round-robinpolicy(平衡抡循环策略)
特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降
第二种模式:mod=1,即:?(active-backup)Active-backuppolicy(主-备份策略)
特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。
mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。
此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有?N?个网络接口的情况下,资源利用率为1/N
第三种模式:mod=2,即:(balance-xor)XORpolicy(平衡策略)
特点:基于指定的传输HASH策略传输数据包。
缺省的策略是:(源MAC 地址?XOR?目标MAC地址)%slave数量。
其他的传输策略可以通过
xmit_hash_policy选项指定,此模式提供负载平衡和容错能力
第四种模式:mod=3,即:broadcast(广播策略)
特点:在每个slave接口上传输每个数据包,此模式提供了容错能力
第五种模式:mod=4,即:
(802.3ad)IEEE802.3adDynamiclinkaggregation(IEEE802.3ad?动态链接聚合)
特点:创建一个聚合组,它们共享同样的速率和双工设定。
根据802.3ad 规范将多个slave工作在同一个激活的聚合体下。
外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。
需要注意的?是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。
不同的实现可能会有不同的适应?性。
必要条件:
条件1:ethtool支持获取每个slave的速率和双工设定
条件2:switch(交换机)支持IEEE802.3adDynamiclinkaggregation
条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式
第六种模式:mod=5,即:(balance-
tlb)Adaptivetransmitloadbalancing(适配器传输负载均衡)
特点:不需要任何特别的switch(交换机)支持的通道bonding。
在每个slave上根据当前的负载(根据速度计算)分配外出流量。
如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。
该模式的必要条件:ethtool支持获取每个slave的速率
第七种模式:mod=6,即:(balance-alb)Adaptiveloadbalancing(适配器适应性负载均衡)
特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receiveloadbalance,rlb),而且不需要任何switch(交换机)的支持。
接收负载均衡是通过ARP协商实现的。
bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。
来自服务器端的接收流量也会被均衡。
当本机发送ARP请求时,bonding 驱动把对端的IP信息从ARP包中复制并保存下来。
当ARP应答从对端到达时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave。
使用ARP协商进行负载均衡的一个问题是:每次广播?ARP请求时都会使用bond的硬件地址,因此对端学习到这个硬件地址后,接收流量将会全部流向当前的slave。
这个问题可以通过给所有的对端发送更新(ARP应答)来解决,应答中包含他们独一无二的硬件地址,从而导致流量重新分布。
当新的slave加入到bond中时,或者某个未激活的slave重新?激活时,接收流量也要重新分布。
接收的负载被顺序地分布(roundrobin)在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个口只占了小部分流量
miimon?监视网络链接的频度,单位是毫秒,我们设置的是100毫秒。
max_bonds?配置的bond口个数,我们这里没有演示,实际当存在2个bond的时候,我们除了上面讲解到的方法,还可以以下方法
modebond模式,主要有以下几种,在一般的实际应用中,0和1,6用的比较多。