浅谈bond及实验Linux下双网卡绑定


  网卡bond是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡。
  将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。 通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址,在应用部署中是一种常用的技术。
Bond的工作室模式有以下七种,常用的是0 1 6

  • Mode=0(balance-rr) 轮询策略round-robin(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),本模式提供负载均衡和容错的能力,和交换机的聚合强制不协商的方式配合,从头到尾顺序的在每一个slave接口上面发送数据包
  • Mode=1(active-backup) 表示主备模式,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱,此时绑定的MAC地址只有一个外部端口上可见
  • Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)
  • Mode=3(broadcast) 表示所有包从所有interface发出,这个不均衡,只有冗余机制…和交换机的聚合强制不协商方式配合。
  • Mode=4(802.3ad) 表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)
  • Mode=5(balance-tlb) 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave
  • Mode=6(balance-alb) 在5的tlb基础上增加了rlb。

  5和6不需要交换机端的设置,网卡能自动聚合。4需要支持802.3ad。0,2和3理论上需要静态聚合方式,但实测中0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。


用文件来配置来实现Bonding

  • 创建bonding设备的配置文件
vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BOND_OPTS="millon=100 mode=0"
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=bond0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
  • 查看bond0的状态
    cat /proc /net /bonding /bond0
  • miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测
    一次链路连接状态,如果有一条线路不通就转入另一条线路
  • 删除bond0配置
    ifconfig bond0 down
    rmmod bonding

用nmcli实现bonding

  • 添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
  • 添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
  • 要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
  • 启动绑定
nmcli con up mybond0

实验多网卡绑定

  实验网卡绑定,先做绑定然后再把绑定后的网卡配置成桥接:

  • 准备一个虚拟机并增加一块网卡
    在这里插入图片描述
  • 配置bond0
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-bond0
vim ifcfg-bond0
DEVICE=bond0
NAME=bond0
ONBOOT=yes
BOOTPROTO=dhcp
BONDING_OPTS="miimon=100 mode=1"
  • 配置eth0
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
NAME=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
  • 配置eth1
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1
DEVICE=eth1
NAME=eth1
TYPE=Ethernet
ONBOOT=yes
MASTER=bond0
SLAVE=yes
  • 重启网络服务
service network restart   #这里用的是centos6做的实验
  • 查看bond0状态
cat /proc/net/bonding/bond0
  • 删除bond0
ifconfig bond0 down
rmmod bonding

**完**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值