关闭

Linux双网卡绑定(bonding)实现

发表于:2015-2-09 10:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ccpw_cn    来源:51Testing软件测试网采编

  我们在这介绍的Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。
  bonding技术的最早应用是在集群——beowulf上,为了提高集群节点间的数据传输而设计的。下面我们讨论一下bonding的原理,什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MACAddress)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。
  直接给两块网卡设置同一IP地址是不可能的。Kernels2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。
  一、编辑虚拟网络接口配置文件,指定网卡IP
  假设eth0是对外服务的网卡,已经调试好网络;eth1是希望与eth0同时对外提供服务的网卡。
  # cd /etc/sysconfig/network-scripts/
  # vi ifcfg-bond0
  写入如下信息和原来 ifcfg-eth0的配置其实差不多。
  所以我建议执行如下语句,将ifcfg-eth0复制一份再改。
  # cp ifcfg-eth0 ifcfg-bon0
  将ifcfg-bon0的信息修改大致如下:
DEVICE=bond0
BOOTPROTO=static
IPADDR=[IP]
NETMASK=[MASK]
BROADCAST=[BROADCAST]
GATEWAY=[GATEWAY]
ONBOOT=yes
TYPE=Ethernet
  二、配置真实网卡
  修改ifcfg-eth0如下:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0 #如果不写,则必须做第四步
SLAVE=yes #如果不写,则必须做第四步
USERCTL=yes
  类似地修ifcfg-eth1如下:
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0 #如果不写,则必须做第四步
SLAVE=yes #如果不写,则必须做第四步
USERCTL=yes
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号