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

 
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. 第三节 Hello world --python初体验

    祭旗--hello world 据说简单优雅.功能强大是python的魅力所在,这里看到简单了,优雅是什么样的,接下来的学习中慢慢体会吧! print ("Hello world" ...

  2. Windows 10通过本地镜像离线安装.NET 3.5

    在Windows10中,当我们安装某些软件的时候会提示"你的电脑上的应用需要使用以下Windows功能:.NET Framework 3.5(包括.NET 2.0和3.0)",由于 ...

  3. java多线程详解(1)-多线程入门

    一.多线程的概念 线程概念 线程就是程序中单独顺序的流控制. 线程本身不能运行,它只能用于程序中. 说明:线程是程序内的顺序控制流,只能使用分配给程序的资源和环境. 进程:操作系统中执行的程序 程序是 ...

  4. DNS弹窗广告遭遇

    事情是这样的,不久前,我跟往常一样打开某新闻网页的时候,发现右下角有弹窗广告,并且在原页面任意位置点击,都会打开一个广告页面,然后原页面才能正常点击,手法太低劣了,不像是网站挂的广告,然后打开其它网页 ...

  5. android中将EditText改成不可编辑的状态

    今天在做项目的时候,要想实现一个将EditText变成不可编辑的状态,通过查找博客,发现一个好方法,对于单独的EditText控件我们可以单独设置 1.首先想到在xml中设置Android:edita ...

  6. 解决服务器Active Directory环境里Windows登录性能问题办法

    Windows登录性能因素 当查找登录性能问题的原因时,考虑大量因素很重要.一些因素包括: 域控制器太接近用户 网络连接与可用的带宽 数据中心上的硬件资源(x64 vs.x86.内存等) 应用于用户和 ...

  7. RHEL7学习之NTP配置

    一,安装NTP [root@localhost ~]# yum install ntp Loaded plugins: product-id, subscription-manager This sy ...

  8. IIS 7 Web服务器上部署ASP.NET网站(转)

    IIS 7 Web服务器上部署ASP.NET网站小记 摘自:http://swanmsg.blog.sohu.com/162111073.html 网上查找了很久关于iis7配置asp.net配置问题 ...

  9. python day1 变量的命名和赋值

    变量 一.变量的命名 1.不能以数字进行开头 2.不能包含特殊字符 3.不能是python内部的某些关键字 a = 123print(a)123 --------------------------- ...

  10. mysql解压缩安装(一)

    MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英文提示),一般MySQL将会安装在C:\P ...