多块网卡绑在一起,作为一个网卡用,实现负载均衡和提高带宽

 
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

Linux网卡bounding详解的更多相关文章

  1. linux网卡设置详解

    centos7安装之后是需要在网卡配置文件中开始网络连接 onboot =yes 刚开始时网卡获取IP模式是dhcp 你会发现ifconfig不能用,猜测是废弃了,你要yum install net- ...

  2. linux 网卡配置文件详解2018-03-07

    转自:https://www.cnblogs.com/ienino/p/7717092.html 配置文件位置:/etc/sysconfig/network-scripts/ifcfg-eth0 1. ...

  3. linux 网卡配置文件详解

    配置文件位置:/etc/sysconfig/network-scripts/ifcfg-eth0 1. DEVICE=eth0 网卡的名字 2. HWADDR=00:0c:29:90:89:d9 HW ...

  4. 网卡配置文件详解 用户管理与文件权限篇 文件与目录权限 软连接 tar解压命令 killall命令 linux防火墙 dns解析设置 计划任务crond服务 软件包安装 阿里云 yum源 安装

    Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ...

  5. Linux /dev目录详解和Linux系统各个目录的作用

    Linux /dev目录详解(转http://blog.csdn.net/maopig/article/details/7195048) 在linux下,/dev目录是很重要的,各种设备都在下面.下面 ...

  6. linux iostat命令详解 磁盘操作监控工具

    Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视. 它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...

  7. Linux网络配置文件详解

    --Linux网络配置文件详解----------------------2013/10/03 目前在企业级服务器的Linux系统中,RHEL占有绝对的优势,不管是曾经在互联网公司还是在目前测试Vir ...

  8. freebsd网卡驱动程序详解

    freebsd网卡驱动程序详解 来源 https://blog.csdn.net/h_cszc/article/details/7776116 /* 注释:xie_minix */ /*此处为BSD申 ...

  9. (转)linux route命令详解

    linux route命令详解 原文:https://www.cnblogs.com/lpfuture/p/5857738.html   &&   http://blog.csdn.n ...

随机推荐

  1. 安卓开发 想要获取某个View的高度(我是在做滚动浮层的时候用到的)

    1.activity中有个onWindowFocusChanged()方法,可以获取控件的大小,别的地方可能会调用过早导致获取不到实际的大小 @Override public void onWindo ...

  2. HTML5离线篇收藏--- cache manifest

    自从翻译了<解读 HTML5:建议.技巧和技术>,就一直没有时间去看 HTML5 相关的东西.上周一次偶然的工作间隙折腾了下 Cache Manifest .当时直接拿博客当测试环境,虽然 ...

  3. Python3利用BeautifulSoup4批量抓取站点图片的代码

    边学边写代码,记录下来.这段代码用于批量抓取主站下所有子网页中符合特定尺寸要求的的图片文件,支持中断. 原理很简单:使用BeautifulSoup4分析网页,获取网页<a/>和<im ...

  4. 查看oracle表中列的数据类型

    一. SQLPLUS中,直接用 DESC[ribe] tablename 即可. 二.在外部应用程序调用查看ORACLE中的表结构时,只能用下面的语句代替: 1.看字段名与数据类型 select * ...

  5. Spring bean的作用域和生命周期

    bean的作用域 1.singleton,prototype, web环境下:request,session,gloab session 2.通过scope="" 来进行配置 3. ...

  6. Linux下Java安装与配置

    一.卸载系统自带的JDK 如果Linux已经自带OpenJdk,我们需要将它卸载掉,否则可以直接[安装JDK] 查看Linux自带的JDK是否已安装,输入如下命令查看JAVA版本信息. java -v ...

  7. Python Decorator分析

    decorator本身是一个函数,这个函数的功能是接受被修饰的函数(decorated)作为参数,返回包装函数(wrapper)替换被修饰函数(decorated). @decorator func ...

  8. Sanarus公司的Cassi微创乳房活检设备投入使用

    这种新型可转动的大核心乳房活检设备,是一种全自动一次性的手工操作的设备.该设备对乳房造成的创伤最小,是传统乳房活检设备很好的替代选择. 该设备被称作Cassi,操作方便而且无需准备时间.无需固定设备的 ...

  9. spring aop实现

    Spring 有如下两种选择来定义切入点和增强处理. 基于 Annotation 的"零配置"方式:使用@Aspect.@Pointcut等 Annotation 来标注切入点和增 ...

  10. iOS多线程 GCD常见用法

    Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法. dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispat ...