1 捆绑介绍

网卡,又称网络适配器。在网络中,如果没有网卡,那么这台设备将得不到服务器所提供的任何服务。当然,如果服务器没有网卡,那也就称不上是服务器了。

网卡捆绑,也叫网卡绑定,就是将几块网卡虚拟成为一个网卡,这个聚合起来的设备看起来是一个单独的网卡,几块网卡具有相同的IP地址而进行链路聚合成一个逻辑链路工作,以提供负载均衡或者冗余,增加带宽的作用,当一块网卡坏掉时,不会影响业务。

2 网卡捆绑

2.1 检查系统

在做捆绑之前,首先要看Linux是否支持bonding,CentOS 6.5已经默认支持了。

[root@node2 ~]# modinfo bonding
filename:       /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/bonding/bonding.ko
author:         Thomas Davis, tadavis@lbl.gov and many others
description:    Ethernet Channel Bonding Driver, v3.6.0
version:        3.6.0
license:        GPL
srcversion:     353B1DC123506708446C57B
depends:        8021q,ipv6
vermagic:       2.6.32-431.el6.x86_64 SMP mod_unload modversions
………………
………………

2.2 捆绑步骤

(1)编辑/etc/sysconfig/network-scripts/ifcfg-bond0,配置虚拟网络接口IP地址

DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=1.2.6.201
BROADCAST=1.255.255.255
NETMASK=255.0.0.0
NETWORK=1.0.0.0
GATEWAY=1.0.0.254
USERCTL=no
TYPE=Ethernet
ARPCHECK=no

注意:建议不要指定MAC地址

(2)编辑/etc/sysconfig/network-scripts/ifcfg-eth4、/etc/sysconfig/network-scripts/ifcfg-eth5,这是要绑定的网卡

DEVICE=eth4
HWADDR=8C:DC:D4:00:92:08
TYPE=Ethernet
UUID=05069419-2b97-456b-98c3-db82df224fcc
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes

(3)(可选)编辑/etc/sysconfig/network-scripts/ifcfg-eth0,配置好之后重启网络会出现Determining if ipaddress 1.2.6.101 is already in use for device eth0…,但ip确实没有问题,可以访问,没有地址冲突,这是Linux网卡配置arp检查导致的,把这个关闭即可

添加ARPCHECK=no

(4)编辑/etc/modprobe.d/dist.conf,配置绑定类型

添加alias bond0bonding

options bond0 miimon=100 mode=0

说明:miimon=100是指多久时间要检查网络一次,单位是ms(毫秒),这边是100ms

mode共有七种(0~6)

1)mode=0,即:(balance-rr))Round-robin policy(平衡轮询环策略)。特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1....一直循环下去,直到最后一个传输完毕), 此模式提供负载平衡和容错能力。

2)mode=1,即: (active-backup) Active-backup policy(主-备份策略)。特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力。

3)mode=2,即:(balance-xor) XOR policy(平衡策略)。特点:基于指定的传输HASH策略传输数据包。

4)mode=3,即:broadcast(广播策略)。特点:在每个slave接口上传输每个数据包,此模式提供了容错能力

5)mode=4,即:(802.3ad) IEEE 802.3ad Dynamic linkaggregation(IEEE 802.3ad 动态链接聚合)。第五种模式:mod=4,即:(802.3ad) IEEE 802.3ad Dynamic linkaggregation(IEEE 802.3ad 动态链接聚合)。特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。

必要条件:

条件1:ethtool支持获取每个slave的速率和双工设定

条件2:switch(交换机)支持IEEE 802.3ad Dynamic linkaggregation

条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式

6)mode=5,即:(balance-tlb)Adaptive transmit load balancing(适配器传输负载均衡)。特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。

必要条件:ethtool支持获取每个slave的速率

7)mode=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)。特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。

必要条件:

条件1:ethtool支持获取每个slave的速率

条件2:底层驱动支持设置某个设备的硬件地址,从而使得总是有个slave(curr_active_slave)使用bond的硬件地址,同时保证每个bond 中的slave都有一个唯一的硬件地址。

(5)编辑/etc/rc.d/rc.local,系统启动时将虚拟网卡和捆绑的物理网卡绑定

添加ifenslave bond0 eth4 eth5

配置完成,重启服务器,就可以看到一张bond0的新网卡。

2.3 验证

[root@node1 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0Slave Interface: eth4
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 64:51:06:f0:27:e0
Slave queue ID: 0Slave Interface: eth5
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 64:51:06:f0:27:e4
Slave queue ID: 0

通过验证查看,可以看到绑定后的虚拟网卡bond0,说明配置成功。

3 注意事项

如果在RHEL6下执行:

servicenetwork restart时,报如下错误:

Bringing up interface bond0: Error: Connection activation failed: Device not managed by NetworkManager

此错误是因为系统中默认由NetworkManager服务管理网络,可以将其停止:

[root@Hostname ~]#chkconfig NetworkManager off
[root@Hostname ~]#service NetworkManager stop
[root@Hostname ~]#chkconfig network on
[root@Hostname ~]#service network restart

注意NetworkManager区分大小写。

附shell脚本

read -p "input your bond interface(eth0 eth1): " eth
echo $eth > /mnt/eth.txt
read -p "input your IPADDR(1.2.6.200): " IPADDR
read -p "input your BROADCAST(1.255.255.255): " BROADCAST
read -p "input your NETMASK(255.0.0.0): " NETMASK
read -p "input your NETWORK(1.0.0.0): " NETWORK
read -p "input your GATEWAY(1.0.0.254): " GATEWAY
read -p "input your mode(0-6): " modeservice NetworkManager stop
chkconfig NetworkManager offfor i in $(cat /mnt/eth.txt)doecho "USERCTL=no" >> /etc/sysconfig/network-scripts/ifcfg-$iecho "MASTER=bond0" >> /etc/sysconfig/network-scripts/ifcfg-$iecho "SLAVE=yes" >> /etc/sysconfig/network-scripts/ifcfg-$idone
rm -rf /mnt/eth.txtcd /etc/sysconfig/network-scripts
rm -rf ifcfg-bond0
touch ifcfg-bond0
echo "DEVICE=bond0" > ifcfg-bond0
echo "ONBOOT=yes" >> ifcfg-bond0
echo "BOOTPROTO=static" >> ifcfg-bond0
echo "IPADDR=$IPADDR" >> ifcfg-bond0
echo "BROADCAST=$BROADCAST" >> ifcfg-bond0
echo "NETMASK=$NETMASK" >> ifcfg-bond0
echo "NETWORK=$NETWORK" >> ifcfg-bond0
echo "GATEWAY=$GATEWAY" >> ifcfg-bond0
echo "USERCTL=no" >> ifcfg-bond0
echo "TYPE=Ethernet" >> ifcfg-bond0
echo "ARPCHECK=no" >> ifcfg-bond0echo "alias bond0 bonding" >> /etc/modprobe.d/dist.conf
echo "options bond0 miimon=100 mode=$mode" >> /etc/modprobe.d/dist.conf
echo "ifenslave bond0 $eth" >> /etc/rc.d/rc.localchkconfig network on
service network restart

CentOS6.5服务器端口捆绑相关推荐

  1. PVE服务器端口捆绑

    查看端口IP信息 如果IP不是在网卡下面,是在vmbr0的,需要先绑定在网卡下面. 端口捆绑 1.新建bond 2.帮两个需要捆绑的物理网卡手动填写 3.在vmbr0那里把桥接端口改成刚刚新建的bon ...

  2. 扫描服务器端口信息工具,服务器端口扫描工具

    服务器端口扫描工具 内容精选 换一换 2.3.2 端口扫描Internet上的大部分服务都使用一种基于TCP/IP协议的客户机/服务器的模式.在这种模式下,服务器端在某个TCP或UDP(User Da ...

  3. Tomcat服务器端口的配置

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  4. 请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同...

    异常详细信息: System.Web.HttpException: 无法向会话状态服务器发出会话状态请求.请确保已启动 ASP.NET State service,并且客户端和服务器端口是相同的.如果 ...

  5. Postman请求linux服务器报错:503Forwarding failure,由于服务器端口未开放;服务器端口开放与关闭

    Postman请求linux服务器报错:503Forwarding failure,由于服务器端口未开放:服务器端口开放与关闭 文章目录: 1 问题分析 2 在Centos上开启和关闭端口 2.1 C ...

  6. 我的世界服务器端口文件夹,我的世界手机版服务器ip端口地址大全

    我的世界手机版服务器ip端口地址大全.我的世界最让人着迷的地方就是联机啦,然而网上大部分我的世界服务器地址都是电脑版的,手机版是没有办法使用的,所以小编收集一些我的世界手机版服务器ip地址,下面就让我 ...

  7. linux—用nc命令监控检测服务器端口

    前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口), 现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警 ...

  8. X-Mas Musings –在Grails集成测试中不要使用随机服务器端口

    对许多人来说,十二月是反思或思考的时期. 所以我决定在去年的事情和想法,以反映- 每一天 ,直到圣诞节. 这是第四天 对于Grails集成测试,了解应用程序当前在哪个端口上运行非常有用. Spring ...

  9. flume监听服务器文件,flume监听服务器端口数据库

    flume监听服务器端口数据库 内容精选 换一换 本章节为您介绍以下内容:准备弹性云服务器作为GDS服务器在使用GDS导入导出数据之前,需要准备一台或多台与GaussDB(DWS) 集群在相同VPC内 ...

  10. java定时器检测状态_java 定时检测服务器端口状态方法(一)

    最近在写运维管理平台的定时检测集群中各台服务器端口开放状态来判断进程状态的定时任务.顺便整理了下java如何检测服务器一个或者多个端口,以及如何加到定时任务中. 一.java中用Socket检测服务器 ...

最新文章

  1. 增强现实技术的9个最新应用趋势
  2. day15-pymysql模块的使用
  3. java并发之CopyOnWirteArrayList
  4. ElasticSearch 集群监控
  5. Python之父再度发声:我们能为中国的“996”程序员做什么?
  6. VMware 苹果虚拟机 Xcode真机调试失败 设备不信任该机器
  7. 阿里云服务器的80端口被封了么?
  8. face_recognition库的安装以及学习
  9. demo解析 小程序node.js_小程序基于疼讯qcloud的nodejs开发服务器部署
  10. python中pd是什么意思_何时申请(pd.to_numeric)以及何时在python中使用...
  11. java5的新特性fore和可变参数
  12. 定制ROM不好用?Android原生系统用户暴涨2.5倍
  13. Linux云计算架构-使用LAMP搭建ecshop电商平台,并测试网站所能承受并发数
  14. Spark—15分钟教程
  15. 小白普及:云主机与传统服务器的区别
  16. 操作系统原理与Linux实践教程【第一章 操作系统概论】
  17. 图形学(8)二维三维图形变换
  18. C++:求1000以内能被2,7,11同时整除的所有整数
  19. 谷歌浏览器升级到91出现跨域问题,导致cookie保存的sessionId不一样
  20. Vue动画——使用最新版Animate.css教程

热门文章

  1. Boot Device简介
  2. 谷歌gmail注册入口_Gmail,日历和其他Google Apps即将出现的外观如下
  3. 【202209秋招软开银行面试C++】
  4. python PIL 图像处理库简介(一)
  5. 关于cdd文件的配置
  6. Jenkins(二)之自定义Robot Framework结果报告
  7. nas 微型计算机,商为家用的利器 希捷BS 2- Bay NAS
  8. HDFS Rack Awareness详解
  9. 央视国际节目定价发布接口规范C2
  10. 凑微分公式_高等数学–求积分的一些方法(IV 凑微分法)