一、 Linux bonding 研究及实现 Linux Bonding 本文介绍 Linux(具体发行版本是 CentOS5
6)下的双卡绑定的原理及实现
Linux双网卡绑定实现是使用两块网卡虚拟成为一块网卡设备,这简单来说,就是两块网卡具有相同的 IP 地址而并行链接聚合成一个逻辑链路工作
这项技术在 Sun 和 Cisco 中分别被称为 Trunking 和 Etherchannel 技术,在 Linux的 2
x及其以后的内核则称为 Bonding 技术
bonding 的前提条件:网卡应该具备自己独立的 BIOS 芯片,并且各网卡芯片组型号相同
同一台服务器上的网卡毫无疑问是是符合这个条件的
Bonding 原理 bonding 的原理:在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身 MAC 的以太网帧,过滤别的数据帧,以减轻驱动程序的负担;但是网卡也支持另外一种被称为混杂promisc 的模式,可以接收网络上所有的帧,bonding 就运行在这种模式下,而且修改了驱动程序中的 mac 地址,将两块网卡的 MAC 地址改成相同,可以接收特定 MAC 的数据帧
然后把相应的数据帧传送给 bond 驱动程序处理
为方便理解 bonding 的配置及实现,顺便阐述一下 Linux的网络接口及其配置文件
在 Linux 中,所有的网络通讯都发生在软件接口与物理网络设备之间
与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于 /etc/sysconfig/netwrok-scripts/ 目录下
网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络设备的控制
当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如何对这些接口进行配置
接口配置文件的名称通常类似于 ifcfg-,其中 与配置文件所控