Linux 双网卡绑定一个 IP 原理与实现
这里介绍的 Linux 双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起
来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的 IP 地址
而并行链接聚合成一个逻辑链路工作。其实这项技术在 sun 和 Cisico 中早已存在,被称为
Trunking 和 Etherchannel 技术,在 Linux 的 2.4.X 的内核中也采用了这种技术,被称为
bonding。
Bonding 技术的最早应用是在集群--beowulf 上,为了提高集群节点间的数据传输而设
计的。下面我们讨论 bonding 的原理,什么是 bonding 需要从网卡的混杂(promisc)模式说起。
我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身 Mac 的以太
网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为
混杂模式,可以接收网络上所有的帧,比如说 tcpdump,就是运行在这个模式下。bonding
也运行在这个模式下,而且修改了驱动程序中的 mac 地址,将两块网卡的 Mac 地址改成相
同,可以接收特定 mac 的数据帧。然后相应的数据帧送给 bond 驱动程序处理。
服务器基本上都是有两个网卡
接下来是创建步骤
1.系统->管理->网络,打开网络配置工具
2.删除网络配置工具上显示的所有配置文件
3.重启计算机
4.打开网络配置工具,将所有的有效网卡都加到网络配置工具中来,
5.逐个取消加入网卡设备的“当计算机启动时激活”。
6.打开 shell 命令框,输入 ethtool -p eth0 等命令,检测你所插网线,并且将对应的网口修改
名称,(如接入主交换机的网口命名为 main,接入从交换机的网口命名为 slave,接入到心跳
的命名为 heartbeat。这一点希望大家能够统一起来,这样别人去维护的时候会比较便利
了)。
7.根据对应的网口按如下修改/etc/sysconfig/network-script/下的脚本(只是修改,请大家不
要将原有的配置删除)。
1.新建/etc/sysconfig/network-scripts/ifcfg-bond0 文件(可以把其它网卡的文件复制一份再改
名)
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.23
NETMASK=255.255.255.224
GATEWAY=192.168.128.233
USERCTL=no
2.更改/etc/sysconfig/network-scripts/ifcfg-eth0 网卡属性
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
评论0