Linux下的网卡Bonding
1. 网卡Bonding一共有0-6七种mode,具体区别请自行搜索;
2. 建议通过nmtui命令在交互模式下配置,这样不会落下重要的字段,也不用去记忆到底有哪些字段;
3. 我的实验环境是VMWare Workstation+CentOS7,想实现网卡容错,所以选了mode 1(有些文章用了mode 6,但实测不行)。以下是配置文件:
[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
NAME=ens32
UUID=93557b68---beeb-dc206f497946
DEVICE=ens32
ONBOOT=yes
MASTER=0e3677f7-6ba2--bdf3-44e18b5cfa1b
SLAVE=yes [root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
NAME=ens34
UUID=05aab6ff--40b7-b0e2-15b04f2089e4
DEVICE=ens34
ONBOOT=yes
MASTER=0e3677f7-6ba2--bdf3-44e18b5cfa1b
SLAVE=yes [root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
DNS1=10.197.80.104
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0
UUID=0e3677f7-6ba2--bdf3-44e18b5cfa1b
ONBOOT=yes
BONDING_OPTS="updelay=0 resend_igmp=1 use_carrier=1 miimon=100 arp_all_targets=any ad_user_port_key=0 min_links=0 tlb_dynamic_lb=1 downdelay=0 xmit_hash_policy=layer2 packets_per_slave=1 primary_reselect=always arp_validate=none fail_over_mac=none ad_actor_sys_prio=65535 mode=1 lp_interval=1 lacp_rate=slow primary=ens32 all_slaves_active=0 arp_interval=0 ad_select=stable num_unsol_na=1 num_grat_arp=1"
IPADDR=10.199.89.30
PREFIX=
GATEWAY=10.199.89.1
4. 按照以上配置,重启网络服务时VMWare Workstation会报以下错误,因为此时你会发现两块物理网卡的mac地址一样了,所以我们要使用另一种办法:fail_over_mac=1,通过这个参数控制bond0使用active网卡的mac地址,而不去修改物理网卡自身的mac地址。(附上转来的解释)
解释一:linux网卡bonding的备份模式实验在真实物理机做完全没问题(前提是linux内核支持),但是在VMware Workstation虚拟机中做就会出现bond0能够正常启动也能够正常使用,只不过没有起到备份模式的效果。当使用ifconfig eth0 down后,网络出现不通现象。VMware Workstation给出提示:这个MAC地址是eth0的,eth1不能使用。
这种现象需要利用Linux的内核知识解决:bond0获取mac地址有两种方式:一种是从第一个活跃网卡中获取mac地址,然后其余的SLAVE网卡的mac地址都使用活跃网卡的mac地址;另一种是使用fail_over_mac参数,是bond0使用当前活跃网卡的mac地址,mac地址随着活跃网卡的状态转换而变化。VMware Workstation不支持第一种获取mac地址的方式,所以为了达到网卡绑定的效果,必须加上fail_over_mac=1的参数。
解释二:默认fail_over_mac=none,当发生错误时,只改slave的mac不改bond;fail_over_mac=1时,只改bond不改slave。
5. 查看Bonding的状态:cat /proc/net/bonding/bond0
6. 切换主从网卡可以采用拔插网线,ifdown/ifup,还有个办法是 ifenslave --change bond0 eth34(据网友说此法不会引起网络闪断,但是我实测偶尔还是闪断)
Linux下的网卡Bonding的更多相关文章
- Linux下双网卡绑定(bonding技术)
Linux网卡绑定探析 2013-08-20 15:39:31 现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景.linux操作系统下自带的 ...
- Linux下多网卡同网段多IP网络分流设定方法
Linux下多网卡同网段多IP网络分流设定方法 -- :: 标签:Linux下多网卡同网段多IP网络分流设定方法 当服务器需要较高的网络流量时,在其它资源不造成瓶颈的情况下无疑会用到多网卡. 第1选项 ...
- Linux下设置网卡静态ip
Linux下设置网卡静态ip 如果是服务器版,没有图形界面只用用命令行修改配置文件 如果是客户端版本,可以用图形界面 配置的前提是要在root用户下才能重启网卡服务 图形界面: system-conf ...
- Linux下修改网卡IP、DNS和网关
Linux下修改网卡IP和网关 建议通过终端字符方式下来修改 一.修改IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOO ...
- Linux 下修改网卡MAC地址
Linux下修改网卡MAC地址 by:授客 QQ:1033553122 例子:修改网卡接口eth0的mac地址 #停用网卡接口,比如eth0 # ifconfig eth0 down #编辑对应的网卡 ...
- Linux 下修改网卡接口名
Linux下修改网卡接口名 by:授客 QQ:1033553122 (测试环境:CentOS-6.0-x86_64-bin-DVD1.iso+Vmware) 作用 可以用于解决类似如下Device n ...
- Linux下查看网卡驱动和版本信息
Linux下查看网卡驱动和版本信息 查看网卡生产厂商和信号 查看基本信息:lspci 查看详细信息:lspci -vvv # 3个小写的v 查看网卡信息:lspci | grep Ethernet 查 ...
- (笔记)Linux下检测网卡与网线连接状态
http://blog.chinaunix.net/space.php?uid=20357359&do=blog&cuid=1798479 Linux下检测网卡与网线连接状态,使用io ...
- linux下一个网卡配置多个ip【虚拟ip】
Linux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配置多个ip.什么场合增加ip别名能派上用场?布网需要.多ip访问测试.特定软件对多ip的需要...and so on. ...
随机推荐
- 11 stark组件之delete按钮、filter过滤
1.构建批量删除按钮 1.admin中每个页面默认都有 2.stark之构建批量删除 3.coding {% extends 'base.html' %} {% block title %} < ...
- 洛咕 P3965 [TJOI2013]循环格
同tjoi2010 打扫房间,每个点入度,出度都为1,可以向相邻4个点连边,但只有原来存在的边费用为0. // luogu-judger-enable-o2 #include<bits/stdc ...
- 树莓派 Zero WH 初使用体验
12号买了一个树莓派 Zero WH,这个是什么型号呢?其实和树莓派Zero是同一系列的,加上W则表示多了无线Wifi和蓝牙模块,加上H则表示在板子上已经焊接好了2x20的排针. 这个Zero真的很迷 ...
- h5 和之前版本的区别
html5和之前版本的区别就是:以前版本多采用<tr><td>等标签,对于webapp的开发不是很好把控.H5采用<div>等标签直接进行布局(且多了许多标签功能很 ...
- Linux日常积累
1. /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量,写在 /etc/profile 里面的是对所有用户永久 ...
- CentOS安装GoAccess
官网 https://goaccess.io/ yum -y install glib2 glib2-devel ncurses ncurses-devel GeoIP GeoIP-devel安装依赖 ...
- 保留mysql数据库中的最新1000条记录
<?php mysql_connect("localhost","root","root");mysql_select_db(&quo ...
- Siki_Unity_3-7_AssetBundle从入门到掌握
Unity 3-7 AssetBundle从入门到掌握 任务1&2&3:课程介绍 AssetBundle -- 用于资源的更新 为了之后的xLua (Lua热更新的框架)打下基础 任务 ...
- Netty源码分析第3章(客户端接入流程)---->第3节: NioSocketChannel的创建
Netty源码分析第三章: 客户端接入流程 第三节: NioSocketChannel的创建 回到上一小节的read()方法: public void read() { //必须是NioEventLo ...
- 简介make命令和makefile文件
一.为什么要用到 make 命令和 makefile 文件 在 Linux 下编写一个程序,每次编译都需要在命令行一行一行的敲命令.如果是一个很小的程序还好说,命令不怎的复杂,编译速度也挺快,但是对于 ...