一、Linux中双网卡绑定实现的原理
Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡;linux设置bond网卡绑定---有些用。
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.编辑虚拟网络接口配置文件,指定网卡IP
Linux two-net card binding is done using two web cards that have the same IP address and are integrated into a logical link. In fact, this technology already exists in Sun and Cisco, and
the Bondnet card binding -- some uses.
Linux two-net card binding is implemented using two web cards that are virtualized into a web card, and the equipment that has been assembled appears to be a separate e-net interface device,
the bbr> popular word is that the two web cards have the same IP address and are integrated into a logical link. This technology already exists in Sun and Cisco;
the netting and Ethchannel technology is known to be used in Linux's 2.4.x inner core, known as binbuld.
这里要主意,不要指定单个网卡的IP 地址、子网掩码或网卡 ID。将上述信息指定到虚拟适配器(bonding)中即可。
Here's the idea: do not specify an IP address, subnet mask or netcard ID for a single web card. Assign this information to the virtual adapter (bonding).
3 # vi /etc/modules.conf
编辑 /etc/modules.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0
加入下列两行
alias bond0 bonding
options bond0 miimon=100 mode=1
说明:miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;
mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。
mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.
bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,
那么bonding会认为链路没有问题而继续使用
4 # vi /etc/rc.d/rc.local
加入两行
ifenslave bond0 eth0 eth1
route add -net 172.31.3.254 netmask 255.255.255.0 bond0
到这时已经配置完毕重新启动机器.
重启会看见以下信息就表示配置成功了
3 #vi/etc/modules.conf
Editor /etc/modules.conf
br=mord0 value means the following two rows
;
humans Bond0 Bonding
number >bond0 miimon = 100 mode
indicates that miimon is used for link monitoring; for example: miimon = 100, the system monitors the network connectivity status for every 100 m2 of the system; if one line is not connected to another;
但是还有需要注意的,就是shorewall防火墙的设置,这个设置最好在配置负载平衡前进行,因为 shorewall在webmin下配置最简单,
负载平衡启动后原来的设置的“网卡界面”里面的网卡就应该由eht* 改成了bond0 了 。不改设置全部通讯都会断掉。
用service shorewall stop 也不能停掉防火墙,因为shorewall关掉后它就会启动“关闭规则(routerstopped)”。“关闭规则”默认的是不允许任何通讯。
所以建议在配置负载平衡前建立防火墙规则。否则只能通过手工来改shorewall的配置文件了。
以上的实现方法已经在QuickLinux as4 2.6.11-8内核下实现,网卡为双intel pro1000 速度相
当令人满意,服务器双网卡和两台客户计算机所都连接到同一个普通交换机上,两台客户机网同时从
SMB上用totle copy拷贝大文件速度都能达到10000KB/S以上。
Linux下双网卡绑定实现负载均衡
我们在这介绍的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.编辑虚拟网络接口配置文件,指定网卡IP:
But what needs to be noted is the set-up of the shorewall firewall, which is best done before the deployment of the load balance, because the shorewall has the simplest set-up of the web-card interface under the webmin. The
net in the original set-up of the net-card interface after the load-balance has been activated should have been changed from the eht* to the bind0. The
二、案例1 mode=1(注:mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.)
ii. Case 1 mode=1 (note: mode=1 indicates that redundancy is provided by means of the main method of work, i.e., by default, only one webcard and one back-up.)
1、编辑虚拟机 给虚拟机添加一个网卡
1. Edit the virtual machine. Add a web card to the virtual machine.
网卡添加后该虚拟机拥有双网卡 The virtual machine has a double-net card when the net card is added. 2、查看各网卡的ip地址 2. View the ip address of the web cards 4、给eth0配置临时ip地址 4. Configure temporary ip addresses for eth0 5、将双网卡均选择host-only方式连接 5. Connecting both webcards by host-only 6、切换到该目录下编辑eth0 6. Switch to Edit eth0 under the directory 编辑结果如下图所示 The results are shown in the figure below. 7、编辑eth1 7. Editor eth1 编辑结果如下图所示 The results are shown in the figure below. 8、将ifcfg-eth0拷贝成ifcfg-bond0 8. Copy ifcfg-eth0 as ifcfg-bond0 编辑ifcfg-bond0 结果如下图所示 Edit ifcfg-bond0 the results are shown in the figure below. 9、编辑模块配置文件 9. Edit Module Profiles 添加bond0和模块参数 结果如下图所示 Add Bond0 and module parameters & nbsp; & nbsp; results as shown in the figure below 10、编辑rc.local 10, rc.local 将eth0和eth1绑定到bond0中 Tie eth0 and eth1 to Bond0. 11、重启系统 11. Reboot the system 下图结果中bond0、eth0、eth1的mac地址相同 Here's the same Mac address for Bond0, Eth0, Eth1. 12、查看网卡信息 12. View information on the Internet card 测试 Test >/strong 断开eth0 Disconnect eth0 断开eth0后 中间超时一次立即恢复正常 After the break-up of Eth 0, it's timed out in the middle to get back to normal immediately. 连接eth0后断开eth1无影响 一直为ping通状态 When you connect to eth0, you break eth1 without effect, and you've been in ping state. eth0、eth1均断开 不能ping通 Eth0 and Eth1 are all disconnected. 断开eth0后网卡信息 Disconnect eth0 netcard information 三、案例2 mode=0(注:mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。) Case 2 mode=0 (note: mode=0 indicates a load-balanced approach, both of which work. mode=0模式的配置步骤与mode=1配置步骤完全相同,只需将mode的值改为0即可 结果如下图所示 The configuration step for mode =0 is exactly the same as the configuration step for mode =1, with just changing the value of mode to 0, as shown in the figure below. 测试 Test >/strong 断开eth0和eth1中任何一个网卡均正常平通,不会出现超时 Disconnects any of the eth0 and eth1 net cards. They're flattened. There's no timeout. 断开eth1的网卡信息 Disconnect Eth1's webcard information 断开eth0的网卡信息 Disconnect eth0's webcard information 转载于:https://blog.51cto.com/yunxia/962750 Available at https://blog.51cto.com/yunxia/962750
注册有任何问题请添加 微信:MVIP619 拉你进入群
打开微信扫一扫
添加客服
进入交流群
发表评论