linux网卡绑定技术

这方面当然还是书上介绍的比较详细,记录下来,额,这是个优点。大笑
 
       linux双网卡绑定一个IP地址,实质工作就是使用两块网卡虚拟为一块,使用同一个IP地址,是我们能够得到更好的更快的服务。其实这项技术 在 Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为 bonding。   
   1、bonding 的原理:
  什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接 收网络上所有的帧,比如说tcpdump,就是运行在这个模式下.bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的 Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。
  2、bonding模块工作方式:
  bonding mode=1 miimon=100.miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0-6 七种模式,常用的为0,1,6三种。
 
  mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定
 
  mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
 
  mode=6:平衡负载模式,有自动备援,不需要”Switch”支援及设定。
 注意:
 
MODE=0测试结论:如果交换机未配置链路聚合则会发生MAC动荡的情况,在配置了链路聚合后不会出现,发出数据包的MAC为Bond0的MAC
MODE=6测试结论:此时交换机无需特殊配置,即可实现负载均衡。2个网卡发出的包使用的是各自的MAC,因此也不会造成交换机MAC地址表的动荡
 
  3、debian系统的安装配置
 
  3.1、安装ifenslave
 
  apt-get install ifenslave
 
  3.2、让系统开机自动加载模块bonding
 
  sudo sh -c "echo bonding mode=1 miimon=100 >> /etc/modules"
 
  3.3、网卡配置
 
  sudo vi /etc/network/interfaces
 
  #实例内容如下:
 
  auto lo
 
  iface lo inet loopback
 
  auto bond0
 
  iface bond0 inet static
 
  address 192.168.1.110
 
  netmask 255.255.255.0
 
  gateway 192.168.1.1
 
  dns-nameservers 192.168.1.1
 
  post-up ifenslave bond0 eth0 eth1
 
  pre-down ifenslave -d bond0 eth0 eth1
 
  3.4、重启网卡,完成配置
 
  #如果安装ifenslave后你没有重启计算机,必须手动加载bonding模块。
 
  sudo modprobe bonding mode=1 miimon=100
 
  #重启网卡
 
  sudo /etc/init.d/networking restart
 
  4、redhat系统的安装配置
 
  4.1、安装ifenslave
 
  redhat默认一般已经安装。未安装的要先安装。
 
  yum install ifenslave
 
  4.2、让系统开机自动加载模块bonding
 
  sudo sh -c "echo alias bond0 bonding >> /etc/modprobe.conf"
 
sudo sh -c "echo options bond0 miimon=100 mode=1 >> /etc/modprobe.conf"
 
  4.3、网卡配置
 
  sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
 
  #eth0配置如下
 
  DEVICE=eth0
 
  ONBOOT=yes
 
  BOOTPROTO=none
 
  sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1
 
  #eth1配置如下
 
  DEVICE=eth1
 
  ONBOOT=yes
 
  BOOTPROTO=none
 
  sudo vi /etc/sysconfig/network-scripts/ifcfg-bond0
 
  #bond0配置如下
 
  DEVICE=bond0
 
  ONBOOT=yes
 
  BOOTPROTO=static
 
  IPADDR=192.168.1.110
 
  NETMASK=255.255.255.0
 
  GATEWAY=192.168.1.1
 
  SLAVE=eth0,eth1
 
  TYPE=Ethernet
 
  #系统启动时绑定双网卡
 
  sudo sh -c "echo ifenslave bond0 eth0 eth1 >> /etc/rc.local"
 
  4.4、重启网卡,完成配置
 
  #如果安装ifenslave后你没有重启计算机,必须手动加载bonding模块。
 
  sudo modprobe bonding mode=1 miimon=100
 
  #重启网卡
 
  sudo /etc/init.d/network restart
 
  5、交换机etherChannel配置
 
  使用mode=0时,需要交换机配置支持etherChannel。
 
  Switch# configure terminal
 
  Switch(config)# interface range fastethernet 0/1 - 2
 
  Switch(config-if-range)# channel-group 1 mode on
 
  Switch(config-if-range)# end
 
  Switch#copy run start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值