说明:经过查阅,原来双网卡绑定一个IP的专业名词叫做bond,可以实现负载均衡;如果想要实现两张网卡绑定到一个网桥,基本思路是两张网卡设置同一个网桥是行不通的,但如果先实现bond,然后将bond绑定到这个网桥上是行的。关键看你配置的思路。网桥一般情况用不到,主要是用在KVM上。

双网卡绑定单个IP地址为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。

在Linux下叫bonding,IBM称为etherchanel,broadcom叫team,但是名字怎么变,效果都是将两块或更多的网卡当做一块网卡使用,在增加带宽的同时也可以提高冗余性。比如我们在CentOS 6.9下可以将eth0和eth1绑定成虚拟网卡bond0。

如图:

实验配置:

mode=1:表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,其中一块网卡在工作(若eth0断掉),则自动切换到另一个块网卡(eth1做备份)。

系 统

设备名称

IP地址

子网掩码

CentOS 6.9_64bit

eth0

 

eth1

 

bond0

10.1.3.210

255.255.255.0

1、查看主机网卡

  1. [root@web ~]# cd /etc/sysconfig/network-scripts/
  2. [root@web1 network-scripts]# ll
  3. total
  4. -rw-r--r--. root root Mar : ifcfg-eth0
  5. -rw-r--r-- root root Mar : ifcfg-eth1

2、复制ifcfg-bond0

  1. [root@web network-scripts]# cp ifcfg-eth0 ifcfg-bond0
  2. [root@web network-scripts]# ll
  3. total
  4. -rw-r--r-- root root Mar : ifcfg-bond0
  5. -rw-r--r--. root root Mar : ifcfg-eth0
  6. -rw-r--r-- root root Mar : ifcfg-eth1

3、编辑ifcfg-bond0、ifcfg-eth0、ifcfg-eth1

  1. [root@web network-scripts]# vim ifcfg-bond0
  2. DEVICE=bond0
  3. BOOTPROTO=static
  4. IPADDR=10.1.3.210
  5. NETMASK=255.255.255.0
  6. GATEWAY=10.1.3.254
  7. ONBOOT=yes
  8. USERCTL=no
  9.  
  10. [root@web1 network-scripts]# vim ifcfg-eth0
  11. DEVICE=eth0
  12. ONBOOT=yes
  13. BOOTPROTO=none
  14. MASTER=bond0
  15. SLAVE=yes
  16. USERCTL=no
  17.  
  18. [root@web1 network-scripts]# vim ifcfg-eth1
  19. DEVICE=eth1
  20. ONBOOT=yes
  21. BOOTPROTO=none
  22. MASTER=bond0
  23. SLAVE=yes
  24. USERCTL=no

4、模块加载

  1. [root@web1 ~]# vim /etc/modprobe.d/dist.conf

在最后添加以下内容:

#加载bonding模块,对外虚拟网络接口设备为bond0

  1. alias bond0 bonding
  2. options bond0 miimon= mode=

查看

  1. [root@web1 ~]# grep bond0 /etc/modprobe.d/dist.conf
  2. alias bond0 bonding
  3. options bond0 miimon= mode=

说明:

miimon是用来进行链路监测的。 比如:miimon=100,单位是ms(毫秒)这边的100,是100ms,即是0.1秒那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0、1两种。

mode共有七种(0~6),这里解释两个常用的选项。

mode=0:表示load balancing (round-robin)为负载均衡方式,两块网卡都在工作。

mode=1:表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,其中一块网卡在工作(若eth0断掉),则自动切换到另一个块网卡(eth1做备份)。

bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。

5、重启网络服务,使配置生效

  1. [root@web1 ~]# service network restart
  2. Shutting down interface eth0: [ OK ]
  3. Shutting down interface eth1: [ OK ]
  4. Shutting down loopback interface: [ OK ]
  5. Bringing up loopback interface: [ OK ]
  6. Bringing up interface bond0: RTNETLINK answers: File exists
  7. Error adding address 10.1.3.210 for bond0.
  8. RTNETLINK answers: File exists [ OK ]

6、查看bond0接口状态

  1. [root@web1 ~]# cat /proc/net/bonding/bond0
  2. Ethernet Channel Bonding Driver: v3.6.0 (September , )
  3. Bonding Mode: fault-tolerance (active-backup)
  4. Primary Slave: None
  5. Currently Active Slave: eth0 // eth0主模式
  6. MII Status: up
  7. MII Polling Interval (ms):
  8. Up Delay (ms):
  9. Down Delay (ms):
  10. Slave Interface: eth0
  11. MII Status: up
  12. Speed: Mbps
  13. Duplex: full
  14. Link Failure Count:
  15. Permanent HW addr: :0c::c9:6d:
  16. Slave queue ID:
  17. Slave Interface: eth1
  18. MII Status: up
  19. Speed: Mbps
  20. Duplex: full
  21. Link Failure Count:
  22. Permanent HW addr: :0c::c9:6d:
  23. Slave queue ID:

7、查看中路由表状态:

  1. [root@web1 ~]# route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 10.1.3.0 0.0.0.0 255.255.255.0 U bond0
  5. 169.254.0.0 0.0.0.0 255.255.0.0 U bond0
  6. 0.0.0.0 10.1.3.254 0.0.0.0 UG bond0
  7.  
  8. [root@web1 ~]# lsmod | grep bond
  9. bonding

8、测试

选择一台windows 7机器ping测试机,然后停掉当前使用的网卡eth0,查看是否能够继续ping通;

测试结果:丢失一个包。

查看bond0接口状态

  1. [root@web1 ~]#cat /proc/net/bonding/bond0
  2. Ethernet Channel Bonding Driver: v3.6.0 (September , )
  3. Bonding Mode: fault-tolerance (active-backup)
  4. Primary Slave: None
  5. Currently Active Slave: eth1 //eth1为主模式
  6. MII Status: up
  7. MII Polling Interval (ms):
  8. Up Delay (ms):
  9. Down Delay (ms):
  10. Slave Interface: eth0
  11. MII Status: down
  12. Speed: Unknown
  13. Duplex: Unknown
  14. Link Failure Count:
  15. Permanent HW addr: :0c::c9:6d:
  16. Slave queue ID:
  17. Slave Interface: eth1
  18. MII Status: up
  19. Speed: Mbps
  20. Duplex: full
  21. Link Failure Count:
  22. Permanent HW addr: :0c::c9:6d:
  23. Slave queue ID:

配置完成!

9、支持NetworkManager的centos系统

只需要通过界面配置即可以完成多块网卡的绑定

10、一个网桥、bond实例

/etc/sysconfig/network-scripts/下的文件:

ifcfg-ebr:

  1. vi
  2.  
  3. DEVICE=ebr
  4. STP=yes
  5. BRIDGING_OPTS=priority=
  6. TYPE=Bridge
  7. BOOTPROTO=none
  8. IPADDR=192.168.1.2
  9. NETMASK=255.255.255.0
  10. GATEWAY=192.168.1.1
  11. DNS1=
  12. DNS2=
  13. DEFROUTE=yes
  14. IPV4_FAILURE_FATAL=no
  15. NAME=ebr
  16. UUID=1ce71742-a273-42fe-b358-3b0a0ee77c50
  17. ONBOOT=yes
 ifcfg-ebrbond:
  1. DEVICE=ebrbond
  2. BONDING_OPTS="miimon=100 mode=balance-alb"
  3. TYPE=Bond
  4. BONDING_MASTER=yes
  5. BRIDGING_OPTS="priority=50 path_cost=33"
  6. NAME=ebrbond
  7. UUID=d0baebf0-282b-4dfe-b6d4-f6ff30ad81d1
  8. ONBOOT=yes
  9. BRIDGE=ebr

ifcfg-eth0

  1. DEVICE=eth0
  2. HWADDR=:B1:1C:6E:AE:
  3. TYPE=Ethernet
  4. NAME=eth0
  5. UUID=c2eee5d8-34ee-4c0c-8d77-90029520b249
  6. ONBOOT=yes
  7. MASTER=ebrbond
  8. SLAVE=yes

ifcfg-eth1

  1. DEVICE=eth1
  2. HWADDR=:::EA:9E:FC
  3. TYPE=Ethernet
  4. NAME=eth1
  5. UUID=71ee5282-ce19-49f4-972d-37ab030b8011
  6. ONBOOT=yes
  7. MASTER=ebrbond
  8. SLAVE=yes

参考:

http://blog.csdn.net/taiyang1987912/article/details/46550857(以上内容转自此篇文章)

https://www.cnblogs.com/wonux/p/5555953.html

https://www.cnblogs.com/weifeng1463/p/7549951.html

 

CentOS 6.9下双网卡绑定单个IP地址及装网卡绑定到一个网桥(转)的更多相关文章

  1. vmware虚拟机下linux centos6.6只有lo,没有eth0网卡、随机分配ip地址,固定ip地址等问题

    这个问题卡了我一天多的时间,百度上搜出来的问题五花八门,反而把我给搞糊涂了.最后总算是实践成功了,记录一下配置的过程. 配置网卡和随机分配ip地址 我安装的是basic server版本,用的是NAT ...

  2. ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接

    问题描述: ubuntu下仅仅获取网卡一的ip地址 问题背景: eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost | 问题描述: 已知字 ...

  3. 虚拟机下Linux系统如何设置IP地址

    虚拟机下Linux系统设置IP地址三种方法 文章来源:https://jingyan.baidu.com/article/ea24bc399ffeb9da62b3318f.html 工具/原料   V ...

  4. 烂泥:更换ESXI5.0管理网卡及管理IP地址

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 公司的服务器基本上都是在IDC机房里面的,为了更有效的利用服务器性能.所以有几台服务器,安装的是ESXI5.0做成虚拟化. 注意目前这些服务器都是双网卡 ...

  5. CentOS工作内容(三)配置网络IP地址

    CentOS工作内容(三)配置网络IP地址 用到的快捷键 tab 自动补齐(有不知道的吗) ctrl+a 移动到当前行的开头(a ahead) ctrl+u 删除(剪切)此处至开始所有内容 vim 末 ...

  6. 我家用的网络IP地址给定,MAC绑定,我买了个无线路由器,请问怎么设定能让我的电脑和手机都能上网

    我家用的网络IP地址给定,MAC绑定,我买了个无线路由器,请问怎么设定能让我的电脑和手机都能上网   房东给的IP地址是:192.168.1.5 255.255.255.0 192.168.1.1 2 ...

  7. GetAdaptersInfo获取网卡配置和Ip地址信息

    一台机器上可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址:如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种:因此,如果要获得本机所有网卡的IP和M ...

  8. Ubuntu 为网卡配置静态IP地址

    为网卡配置静态IP地址编辑文件/etc/network/interfaces:sudo vi /etc/network/interfaces并用下面的行来替换有关eth0的行:# The primar ...

  9. Windows下通过脚本快速修改IP地址

    Windows下通过脚本快速修改IP地址 如果通过Windows的网络属性修改Ip/网关,真是太麻烦了. 经常要切换ip,所以我写了两个脚本: c:\办公室.bat netsh interface i ...

随机推荐

  1. IT界天才少年:比肩雷军、叫板任正非,自己作死了

    两点之间,走弯路和走直路到达的终点是一样的,而他只是走了弯路,他曾在华为身居高位.后又创业.做投资,完全是不差钱的主. 他跌宕起伏的人生中充满传奇,成功.失败.遗憾.矛盾,每个词都不足以形容他,只有这 ...

  2. TCP之Nagle算法与延迟ACK

    (一)Nagle算法 为了减少网络中小分组的数目,减少网络拥塞的情况.Nagle算法要求在一条TCP连接上最多只能有一个未被确认的未完成小分组,在该分组ACK到达之前不能够发送其他的小分组,发送端需要 ...

  3. python爬虫模块之URL管理器模块

    URL管理器模块 一般是用来维护爬取的url和未爬取的url已经新添加的url的,如果队列中已经存在了当前爬取的url了就不需要再重复爬取了,另外防止造成一个死循环.举个例子 我爬www.baidu. ...

  4. Javascript正则表达式详细讲解和示例,通俗易懂

    正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 •替换文本.可以在文档中使用一个正则表达式 ...

  5. sicily 1016. 排队接水--课程作业

                                                                                    1016. 排队接水 Time Limi ...

  6. 查看linux 下进程运行时间(转)

    原文地址:http://blog.csdn.net/tspangle/article/details/11731317 可通过ps 来查看,通过参数 -o 来查看 如: ps -eo pid,tty, ...

  7. django celery异步框架

    描述:实现运维平台的异步执行与定时任务,以下简单描述了安装过程及使用.   安装django和celery pip install django pip install celery pip inst ...

  8. hdu 2444(染色法判断二分图+最大匹配)

    The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  9. Go语言标准库之log包

    用来作日志log输出的, 比较易懂. 今天周六啊,在公司加班学习一下呀. package main import ( "log" ) func init() { log.SetPr ...

  10. react与mox-react的shouldComponentUpdate 理解

    react性能优化中,提到的就是通过 React.PureComponent 替换 React.Component 组件进行编程. 两个组件之间的不同主要就是PureComponent做了should ...