Debian 下通过Bonding 实现双网卡单IP

      Debian 下通过Bonding 实现双网卡单IP冗余

Linux 双网卡绑定一个IP地址,实现网卡冗余,将两个网卡虚拟为一块。使用同一个IP地址。本文介绍了 bonding 的原理,及如何在 Debian 下通过bonding 实现双网卡单IP的操作。


Linux 双卡绑定一个IP地址,实质工作是使用两块网卡虚拟为一块,使用同一个IP地址,是我们能够得到更稳定的连接。在Linux2.4.x 中内核也采用这种技术,被称为 bonding.

bonding 的原理:

     在正常情况下,网卡只接受目的硬件地址是自身Mac的以太网帧,对于别的数据帧都过滤掉,以减轻驱动程序的负担。但是网卡也支持混杂模式,可以接受网络上所有的帧(如抓包工具sniffer)。bonding也运行在这个模式下,并且修改了MAC地址,将两块网卡的MAC地址改为相同,可以接受特定MAC的数据帧。然后把响应的数据帧传送给bond驱动程序处理。

    bonding mode 工作方式:

bonding 有0~6 共七种工作方式,常用的工作方式是0,1,6 三种:

mode = 0 :表示负载均衡模式(两个网卡都工作),但需要交换机支持,并且交换机进行相应配置。

mode = 1 :表示提供冗余功能,默认情况下只有一块网卡工作,另一块做备份

mode = 6 :表示负载均衡模式(两个网卡都工作),不需要交换机支持。

    bonding 配置

apt-get install ifenslave

让系统开机自动加载模块 bonding , 其中miimon 用于链路监测,miimon=100 表示每100ms 监测一次链路状态,如果有一条不通,则自动转入另一条线路。

sh -c "echo bonding mode=6 miimon=100 >> /etc/modules"

修改 /etc/network/interfaces 文件为如下内容:

auto lo

iface lo inet loopback

auto bond0

iface bond0 inet static #虚拟网卡的TCP/IP配置

address 192.168.58.100

netmask 255.255.255.0

gateway 192.168.58.1

dns-nameservers 192.168.58.1

post-up ifenslave bond0 eth0 eth1

pre-down ifenslave -d bond0 eth0 eth1


重启计算机 或者手动加载bonding 模块

modprobe bonding mode=6 miimon=100

/etc/init.d/networking restart




你可能感兴趣的:(Debian,bonding,下通过,实现双网卡单IP,负载均衡工作)