Linux 多网卡绑定和网络组

  • Linux 多网卡绑定和网络组已关闭评论
  • 30 次浏览
  • A+
所属分类:linux技术
摘要

把多块网卡逻辑上绑在一块使用,对外就相当于一块网卡,他们共享一个ip地址。


多网卡绑定:

把多块网卡逻辑上绑在一块使用,对外就相当于一块网卡,他们共享一个ip地址。

好处:

防止一块网卡坏了就无法使用,提升带宽。

工作模式:

  • mod=0:轮询模式,两个网卡轮流处理数据包。 --- 提升带宽和容错性

  • mod=1:主备模式,住在一个网卡上处理,主坏了就使用备用的。 --- 只提升了容错性
    注:某些模式(0、2、3)需要在交换机上配置。(1、5、6)不需要配置。

范例:主备模式的配置(配置文件实现)

#通过修改配置文件的方式实现。 #1.创建一张虚拟网卡,并指定工作模式 /etc/sysconfig/network-scripts/ifcfg-bond0 #创建的虚拟网卡 NAME=bond0 TYPE=bond DEVICE=bond0 BOOTPROTO=none IPADDR=10.0.0.100 PREFIX=8 #miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路  #model=1 选用model1这种模式 BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"   #2.对两张网卡进行配置(不配置地址,地址都配置到虚拟网卡上面去了) /etc/sysconfig/network-scripts/ifcfg-eth0 NAME=eth0 DEVICE=eth0 BOOTPROTO=none MASTER=bond0 #网卡并非独立网卡,而是附属到bond0上,网卡的设置由bond0来进行控制 SLAVE=yes #SLAVE:从设备 ONBOOT=yes   /etc/sysconfig/network-scripts/ifcfg-eth1 NAME=eth1 DEVICE=eth1 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes 

范例:主备模式的配置(nmcli命令实现)

#nmcli的最终结果就是生成配置文件  #添加bonding接口  #mode active-backup模式--model=1这个模式 nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.100/24   #将物理网卡加入到bond设备里面 #ifname:指定物理网卡的接口名 nmcli con add type bond-slave ifname ens7 master bond0 nmcli con add type bond-slave ifname ens3 master bond0 #注:没有给物理网卡指定连接名时,则该名称是接口名称加类型构成 con-name:连接名 ifname:接口名  #要启动绑定,则必须首先启动从属接口 nmcli con up bond-slave-eth0 nmcli con up bond-slave-eth1  #启动绑定 nmcli con up mybond0  

查看创建的bond0的状态:

/proc/net/bonding/bond0

删除bond0:

方法一: ifconfig bond0 down  方法二: rmmod bonding  

网络组

bond这种实现方案比较老了,从CentOS7开始就推出了新的技术:team(网络组)
效果和bond功能是一样的,内核实现和命令上面发生了改变。

工作模式:

  • broadcast

  • roundrobin

  • activebackup --主备模式

  • loadbalance --- 负载均衡

  • lacp (implements the 802.3ad Link Aggregation Control Protocol)

nmcli实现team

#1.创建网络组接口  # ifname INAME 这个接口名是自己虚拟出来的接口 nmcli con add type team con-name CNAME ifname INAME 工作模式(json格式) #CNAME 连接名 #INAME 接口名 #JSON 指定runner方式,格式:'{"runner": {"name": "METHOD"}}' #METHOD 可以是broadcast, roundrobin, activebackup, loadbalance, lacp  #2.把物理网卡加入进来让它成为一个从的设备 nmcli con add type team-slave con-name CNAME ifname INAME master TEAM #CNAME 连接名,连接名若不指定,默认为team-slave-IFACE #INAME 网络接口名 #TEAM 网络组接口名  #3.启动网卡(都要启动) nmcli con up CNAME  #启动网卡  #断开连接的方法: nmcli dev dis INAME   #删除 删除的时候会把配置文件也一起闪出掉 nmcli con delete Name(连接名) 

范例

#1。 添加一个team设备 nmcli con add type team con-name myteam0 ifname team0 config '{"runner":  {"name": "loadbalance"}}' ipv4.addresses 192.168.1.100/24 ipv4.method manual  #2. 将物理网卡计入team中让他成为team的成员 nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0 nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0  #3.启动生效 nmcli con up myteam0 nmcli con up team0-eth1 nmcli con up team0-eth2  #查看使用的是那种模式 teamdctl team0 state #team0表示创建的team名字 ping -I team0 192.168.0.254  #禁用某一张网卡的方法: nmcli dev dis eth1