Linux bonding研究及实现
Linux Bonding 保持服务器的高可用性是企业级IT环境的首要因素,其中最主要的一点是服务器网络连接的高可用性.在这样的背景下,单网卡已是捉襟见肘,于是冗余技术层出不穷.如果资源有限,网卡(NIC)绑定技技术将有助于保证高可用性特征并提供其他优势以提高网络性能.本文介绍Linux(具体发行版本是CentOS5.6)下的双卡绑定的原理及实现. Linux双网卡绑定实现是使用两块网卡虚拟成为一块网卡设备,这简单来说,就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作.这项技术在Sun和Cisco中分别被称为Trunking和Etherchannel技术,在Linux的2.4.x及其以后的内核则称为Bonding技术. bonding的前提条件:网卡应该具备自己独立的BIOS芯片,并且各网卡芯片组型号相同.同一台服务器上的网卡毫无疑问是是符合这个条件的. Bonding原理 bonding的原理:在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身MAC的以太网帧,过滤别的数据帧,以减轻驱动程序的负担;但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,bonding就运行在这种模式下,修改了驱动程序中的mac地址,将两块网卡的MAC地址改成相同,可以接收特定MAC的数据帧.然后把相应的数据帧传送给bond驱动程序处理. 为方便理解bonding的配置及实现,顺便阐述一下Linux的网络接口及其配置文件.在 Linux 中,所有的网络通讯都发生在软件接口与物理网络设备之间.与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于 /etc/sysconfig/netwrok-scripts/ 目录下.网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络设备的控制.当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如何对这些接口进行配置.接口配置文件的名称通常类似于 ifcfg-<name>,其中 <name> 与配置文件所控制的设备的名称相关. 在所有的网络接口中,最常用的就是以太网接口ifcfg-eth0,它是系统中第一块网卡的配置文件.虽然在不同的系统之间,文件的类型和数量并不一定相同,但各种的网络设备都需要用到这些文件保证设备的正常运作.bonding技术,就是通过配置文件建立绑定接口,从而实现多个物理网卡绑定到一个虚拟网卡. 测试环境 本次作业环境中,使用的是CentOS5.6,其系统信息如下: 可以通过modinfo bonding命令查看Linux是否支持bonding,据资料介绍,RHEL4已默认支持了,RHEL5、CentOS5毫无疑问也是支持的.系统有类似下面的信息输出,就说明已支持了. Bonding配置 通过在 /etc/sysconfig/network-scripts/ 目录下创建 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |