UbuntuBonding(网卡绑定)

绑定,也称为端口聚合或链路聚合,意味着将多个网络接口(NIC)组合到单个链路,从而提供高可用性,负载平衡,最大吞吐量或这些组合。
注意bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外(如防火墙等)的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。

一、安装网卡绑定所需要的负载均衡软件fenslave,它是一款linux下的负载均衡工具,可以将数据包有效的分配到bonding驱动。

1、查看软件fenslave是否安装
root@ubuntu:~# dpkg -l | grep fenslave
ii  ifenslave    2.7ubuntu1    all      configure network interfaces for parallel routing (bonding)

通过上面的信息可以知道软件已经安装

2、如果没安装,可以通过apt源安装,有外网就用外网源,没有的话用本地DVD源。
root@ubuntu:~# apt-get install ifenslave

三、检查 bonding 模块是否正常加载
root@ubuntu:~# lsmod | grep bonding
bonding               147456  0
root@ubuntu:~#

四、添加bonding模块开机启动,编辑/etc/modules配置文件如下

root@ubuntu:~# vi /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
bonding       #添加的内容,使该模块开机启动

root@ubuntu:~#

五、配置网络接口

1、确保您的网络已关闭:
root@ubuntu:~# systemctl stop  networking.service

2、然后加载绑定内核模块:
root@ubuntu:~# modprobe bonding     #如果上面查看模块时已经加载,这里可以不执行

3、编辑网络配置文件

root@ubuntu:~# vi /etc/network/interfaces

举例1:要使用简单的主备模式设置,将enp4s0f0和enp4s0f1作为绑定网卡,绑定的接口为bond0,并将作为enp4s0f0主接口:
绑定前需要先通过ifconfig -a 命令查看可以的网卡,配置文件如下:
--------------------------------------------------------------------------
# enp4s0f0 is manually configured, and slave to the "bond0" bonded NIC
auto enp4s0f0                      #要绑定的主网卡
iface enp4s0f0 inet manual
    bond-master bond0
    bond-primary enp4s0f0

# enp4s0f1 ditto, thus creating a 2-link bond.
auto enp4s0f1                      #要绑定的备网卡
iface enp4s0f1 inet manual
    bond-master bond0

# bond0 is the bonding NIC and can be used like any other normal NIC.
# bond0 is configured using static network information.
auto bond0                        #绑定的网卡名
iface bond0 inet static           #静态地址
    address 192.168.3.30          #IP
    gateway 192.168.3.1           #网关
    netmask 255.255.255.0         #子网
    bond-mode active-backup       #模式主备
    bond-miimon 100               #miimon是100毫秒监测一次网卡状态,如果有一条线路不通就切换另一条线路。
    bond-slaves none
-------------------------------------------------------------------------

举例2 :要使用自适应负载均衡模式(模式6)设置,将enp4s0f0和enp4s0f1作为绑定网卡,绑定的接口为bond0,
配置文件如下:

# enp4s0f0 is manually configured, and slave to the "bond0" bonded NIC
auto enp4s0f0
iface enp4s0f0 inet manual
    bond-master bond0

# enp4s0f1 ditto, thus creating a 2-link bond.
auto enp4s0f1
iface enp4s0f1 inet manual
    bond-master bond0

# bond0 is the bonding NIC and can be used like any other normal NIC.
# bond0 is configured using static network information.
auto bond0
iface bond0 inet static
    address 13.181.3.30
    gateway 13.181.3.254
    netmask 255.255.255.0
    bond-mode 6                       #绑定模式为6
    bond-miimon 100
    bond-slaves  enp4s0f0  enp4s0f1    #绑定的从属的网卡
------------------------------------------------------------------------------

六、启动网卡
root@ubuntu:~# systemctl start networking.service

七、查看bond0的工作情况

root@ubuntu:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)           #bond模式为主备
Primary Slave: enp4s0f0 (primary_reselect always)
Currently Active Slave: enp4s0f0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: enp4s0f0
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 50:5d:ac:49:08:3f
Slave queue ID: 0

Slave Interface: enp4s0f1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 50:5d:ac:49:08:40
Slave queue ID: 0
root@ubuntu:~#

八、bonding一共有7种工作模式(mode):

0:(balance-rr) Round-robin policy: (平衡轮询策略):传输数据包顺序是依次传输,直到最后一个传输完毕,此模式提供负载平衡和容错能力。

1:(active-backup) Active-backup policy:(活动备份策略):只有一个设备处于活动状态。一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。此模式提供了容错能力。

2:(balance-xor) XOR policy:(平衡策略):传输根据[(源MAC地址xor目标MAC地址)mod设备数量]的布尔值选择传输设备。 此模式提供负载平衡和容错能力。

3:(broadcast) Broadcast policy:(广播策略):将所有数据包传输给所有设备。此模式提供了容错能力。

4:(802.3ad) IEEE 802.3ad Dynamic link aggregation. IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。此模式提供了容错能力。每个设备需要基于驱动的重新获取速度和全双工支持;如果使用交换机,交换机也需启用 802.3ad 模式。

5:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡):通道绑定不需要专用的交换机支持。发出的流量根据当前负载分给每一个设备。由当前设备处理接收,如果接受的设 备传不通就用另一个设备接管当前设备正在处理的mac地址。

6:(balance-alb) Adaptive load balancing: (适配器负载均衡):包括mode5,由 ARP 协商完成接收的负载。bonding驱动程序截获 ARP在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。

Ubuntu Bonding(16.04网卡绑定)的更多相关文章

  1. Ubuntu server 16.04安装,无网卡驱动解决

    因为使用一个软件必须要在ubuntu server 16.04上安装,因此先在裸机上安装ubuntu server 16.04,具体信息: 镜像版本:ubuntu-16.04.6-server-amd ...

  2. Ubuntu Server 16.04修改IP、DNS、hosts

    本文记录下Ubuntu Server 16.04修改IP.DNS.hosts的方法 -------- 1. Ubuntu Server 16.04修改IP sudo vi /etc/network/i ...

  3. Ubuntu Server 16.04.1系统安装

    一.Ubuntu Server 16.04.1系统安装 Ubuntu分为桌面版(desktop)和服务器版(Server),下面为大家介绍服务器版本Ubuntu Server 16.04.1的详细安装 ...

  4. Raspberry 2B && Ubuntu mate 16.04 && *** 完美透明代理

    Raspberry 2B && Ubuntu mate 16.04 && *** 完美透明代理 关键词:Raspberry 2B, Ubuntu mate 16.04 ...

  5. 从零到一,利用kubeadm在ubuntu server 16.04 64位系统离线安装kubernetes v1.10.0

    说明 初步接触kubernets,记录学习过程 本教程目的利用kubeadm在ubuntu server 16.04 64位系统离线安装kubernets v1.10.0 环境信息 节点IP地址 角色 ...

  6. ubuntu kylin 16.04系统的基本安装

    系统版本:ubuntu kylin 16.04 硬件状况:500G HDD+120G SSD 已安装操作系统:WIN 10专业版(craked) ——WIN 10系统是装在SSD的第一个盘符内的.以前 ...

  7. Ubuntu Server 16.04下ASP.NET Core Web Api + MySql + Dapper在 Jexus、nginx 下的简单测试

    一.环境及工具 1.服务器 VirtualBox5.1.4 安装 Ubuntu Server 16.04 amd64 MySql Ver 14.14 Distrib 5.6.21 Jexus 5.8. ...

  8. Ubuntu Server 14.04升级Ubuntu Server 16.04

    Ubuntu Server 14.04升级Ubuntu Server 16.04 :转 http://blog.csdn.net/chszs 1.终端下执行命令 $ sudo apt-get upda ...

  9. [原创]在HP DL380 G7服务器上部署基于Ubuntu Server 16.04 和 VirtualBox的云平台

    对于一线开发人员来说,一提到虚拟机平台,往往会让人联想到在价格昂贵的服务器上部署VMware vSphere之类软件来实现. 笔者作为一个资深码农,也是一直梦寐着在自己家中打造一个真正的家庭私有云,秒 ...

随机推荐

  1. 11.Laravel5学习笔记:扩展 Validator 类

    简单介绍 在 Laravel5 中,本身已经提供了丰富的验证规则供我们使用,可是天下应用奇葩多,做为程序猿你会发现永远都有新的验证规则诞生,光是组合已经解救不了你的项目了.这个时候就须要我们扩展 Va ...

  2. Android ADB工具-截图和录制视频(五)

    Android ADB工具-截图和录制视频(五) 标签(空格分隔): Android ADB 7. 截图和录制视 命令 功能 adb shell screencap –p <path/file& ...

  3. Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)

    Python的变量和数据类型 1 .python的变量是不须要事先定义数据类型的.能够动态的改变 2. Python其中一切皆对象,变量也是一个对象,有自己的属性和方法 我们能够通过 来查看变量的类型 ...

  4. ASIHTTPRequest 框架的导入

    刚接触ios 对一切都不熟悉  记录一下ASIHTTPRequest 框架的导入 步骤 以便日后再用 1.首先下载ASIHTTPRequest:点击下载 2.在project中导入下面文件: 导入方式 ...

  5. 【剑指Offer面试题】 九度OJ1371:最小的K个数

    题目链接地址: http://ac.jobdu.com/problem.php?pid=1371 题目1371:最小的K个数 时间限制:1 秒内存限制:32 兆特殊判题:否提交:5938解决:1265 ...

  6. 86.express里面的app.configure作用

    以下摘自 express 3.0 的 文档 app.configure([env], callback) Conditionally invoke callback when env matches ...

  7. 使用goroutine+channel和java多线程+queue队列的方式开发各有什么优缺点?

    我感觉很多项目使用java或者c的多线程库+线程安全的queue数据结构基本上可以实现goroutine+channel开发能达到的需求,所以请问一下为什么说golang更适合并发服务端的开发呢?使用 ...

  8. UVa 10305 Ordering Tasks【拓扑排序】

    题意:给出n件事情,m个二元组关系,求它们的拓扑序列 用的队列来做 #include<iostream> #include<cstdio> #include<cstrin ...

  9. Linux企业运维人员最常用150个命令汇

    近来老男孩发现新手学习Linux记不住命令,不会分类.不会筛选重点,胡子眉毛一把抓当然记不住了. 特别整理Linux运维最常用150个命令和大家分享,大家学习命令不用在盲目了,根据分类,然后逐步学习! ...

  10. 优秀的Linux文本编辑器 (转载)

    想要挑起狂热Linux爱好者之间的激烈争辩吗?那就问问他们最喜欢的文本编辑器是什么吧.在开源社区中,选择一个用来写文本,或者更进一步,用来写代码的编辑器,比选择一个球队或者游戏控制器还要重要.但是任何 ...