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

 
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. C语言字符串拷贝

    C语言字符串拷贝利用指针操作,要清楚知道指针的指向 代码如下: #include <stdio.h> #include <assert.h> #include <stri ...

  2. oracle 脱敏和加密

     脱敏:在此只是对数据如姓名,身份证号码等进行简单粗暴的脱敏,即改变数据 针对于number类型的数据:update table_name set conlunm_name =  substr (co ...

  3. Asp.net GridView控件使用纪要

    1:数据绑定 GridView 支持数据绑定的数据源格式比较多,例如可以使用ObjectDataSource绑定数据源, Dataset,datatable,List<T>等 2:列绑定 ...

  4. (转)oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”

    Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQLalter user XXX account lock; ...

  5. HibernateTemplate的一些常用方法总结

    1:get/load存取单条数据 public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.get ...

  6. property

    一.property用法 property(fget=None, fset=None, fdel=None, doc=None) -> property attribute fget is a ...

  7. #include <cstdio>

    #include <cstdio> using namespace std; int main() { int gx; gx=6; printf("%d\n",gx); ...

  8. 搭建dns域名服务器过程

    在用TCP/IP协议族架设的网络中,每一个节点都有一个唯一的IP地址,用来作为它们唯一的标志.然而,如果让使用者来记住这些毫无记忆规律的IP地址将是不可想象的.人们就需要一种有记忆规律的字符串来作为唯 ...

  9. Windows结构化异常

    不错的总结: http://hi.baidu.com/wangxvfeng101/item/518f6efdab4e5616ff35820e http://www.vckbase.com/index. ...

  10. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP           参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...