Linux 双网卡绑定一个IP原理及实

Linux 双网卡绑定一个IP原理及实


这里介绍的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驱动程序处理。 

接下来是创建步骤:

1.#sudo vim /etc/network/interfaces

Linux 双网卡绑定一个IP原理及实_第1张图片


注:若有多卡网卡绑定,则如#开头,类似添加eth2,eth3... ifenslave 是一款linux下的负载均衡工具 up ifenslave bond0 eth0 eth1 down ifenslave -d bond0 eth0 the1 //新建bond0虚拟设备,使用我们设置的IP,此时eth0,eth1的工作模式变成了混杂模式,什么数据都收 2.#sudo vim /etc/modules    // 加载模块列表 bonding miimon=100 mode=1 注:miimon=100 mode=1 为可选参数, miimon是毫秒数,用来进行监测链路稳定的。miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。 mode的值表示工作模式 mode=0 (也可以写成mode=round-robin)表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。 

mode=1也可以写成mode=active-backup)表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.  3.#sudo modprobe bonding    //加载bondig模块 4.#sudo /etc/init.d/networking restart    //重启网卡 最终效果

Linux 双网卡绑定一个IP原理及实_第2张图片



你可能感兴趣的:(ubuntu,ubuntu,网卡绑定)