网络接口配置-bonding

bonding

     就是将多块网卡绑定同一个IP地址对外提供服务,可以实现高可用或是负载均衡,当 然,直接给两块网卡设置同一个IP地址是不可能的,通过bonding,虚拟一块网卡对外提供链接,这样即使一块网卡坏了可以经行自动切换,而不会影响业务的正常的通信

Bonding的工作模式

mode 0

轮转(round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力(负载均衡时需要交换的硬件作支撑)物理网卡被修改为相同的mac地址

mode 0bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多 个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannelfoundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.我们的解 决办法是,两个网卡接入不同的交换机即可。

 blob.png

mode 1 active-backup

活动备份策略:在绑定中只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的mac地址只有一个外部端口上可见

blob.png

 mode 3broadcast

广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力

Bonding 配置

创建banding 设备的配置文件ifcfg-bond0

      /etc/sysconfig/network-scripts/ifcfg-bond0   //

      DEVICE=bond0

      BOOTPROTO=none

      BONDING_OPTS= miimon=100 mode=0//这里的mode就是改变mode

创建bind的网卡eth0

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none //激活此接口时使用什么协议来配置接口属性,常用的有dhcp bootp static none

MASTER=bond0

SLAVE=yes

USERCTL=no

创建bind的网卡eth1

/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth0

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

USERCTL=no

网络接口配置-bonding     blob.png

  mode=6平衡负载模式,有自动备援,不必”Switch”支援及设定。mode6模式下无需配置交换机,因为                 做bonding的这两块网卡是使用不同的MAC地址。

网卡别名

我们都知道在生活中有一个这样一个场景,我们出差到其他地方或是没有那么方便去接入一个有线网络的时候(因为流动性很大,不可能为你提供特定的一个有线网络),我们能用到的只有无线网,但是是回到家里又的自己改回静态网络,又的手工分配地址,这时候该怎么办呢?在windows中我们会这样做,利用windows提供的备用设备这一项来进行设定,把备用设备改成家里的静态地址就可以满足上面的场景。但是在linux中我们依然有解决办法,这的用到网卡别名。

如图所示,把网卡etc1设置成自动获取地址,把网卡别名设置成静态地址,同样也可以满足上述场景。值得一说的是只能把备用地址设置成静态地址,把etc1网卡设置成动态地址。在linux中有更强大的功能,可以把一张网卡地址设置有多个网卡别名,而且这几个网卡地址是同时生效的,这远远比windows灵活的多

linux实现方式如下图:

网络接口配置-bonding blob.png

具体配置:

  blob.png

   blob.png

windows实现方式:如下图

  blob.png

原创文章,作者:yywan1314,如若转载,请注明出处:http://www.178linux.com/43068

(0)
yywan1314yywan1314
上一篇 2016-09-05
下一篇 2016-09-05

相关推荐

  • shell脚本中变量与运算及简单编程示例

    一、变量         在Linux shell脚本的变量中,分为系统定义的变量和用户定义的变量。这些变量是用来调用一个数值或字符值。定义变量时,不需要声明变量类型。 1、系统变量         …

    Linux干货 2016-08-15
  • 【福利贴-招聘】- 高级运维工程师

    职位描述 岗位描述:1、负责业务应用系统的审核、部署、发布、监控、维护和优化;2、负责突发事件管理,问题跟踪与管理,保障系统24×7稳定运行;3、负责应用系统的性能分析与系统优化,不断提高系统运行效率;4、协调开发部门,配置管理,基础运维,更好提供服务。 职位要求:1、专科及以上学历,计算机或相关专业;2、能够独立安装配置及维护linux平台的各种服务,dh…

    Linux干货 2015-03-20
  • 0809行编辑器sed

    sed :Stream EDitor, 行编辑器  sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出或者使用-i选…

    Linux干货 2016-08-10
  • 学习宣言

            学习计划:每天至少2个小时的学习,循序渐进,先通读再精读。         学习目标:成为运维的高手,走上人生巅峰。      &nb…

    Linux干货 2016-10-25
  • class15磁盘管理(二) 高级磁盘管理(一)

    挂载点和/etc/fstab 配置文件系统体系 被mount、fsck和其它程序使用 系统重启时保留文件系统体系 可以在设备栏使用文件系统卷标 使用mount -a命令挂载  /etc/fstab 中的所有文件系统 文件挂载配置文件 /etc/fstab每行定义一个要挂载的文件系统;   &nbsp…

    Linux干货 2016-09-05
  • shell脚本语言中的选择执行

    shell脚本语言中的选择执行 概述 程序执行过程分为顺序执行、选择执行和循环执行。顺序执行是指程序按照步骤一步一步地运行。选择执行是指程序根据特定条件选择两项或者多项中的一项运行。循环执行是指程序根据特定条件重复执行直到某个节点结束,继续运行其他步骤。本篇文章从判断条件和条件判断式简要说明shell脚本语言中程序选择执行的用法。 shell脚本中的判断条件…

    Linux干货 2017-04-17

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-05 11:43

    写的不错,图文并貌,有理论也有实践。继续保持。