当前位置 : 主页 > 编程语言 > 其它开发 >

Linux 多网卡绑定和网络组

来源:互联网 收集:自由互联 发布时间:2022-07-12
多网卡绑定: 把多块网卡逻辑上绑在一块使用,对外就相当于一块网卡,他们共享一个ip地址。 好处: 防止一块网卡坏了就无法使用,提升带宽。 工作模式: mod=0:轮询模式,两个网
多网卡绑定:

把多块网卡逻辑上绑在一块使用,对外就相当于一块网卡,他们共享一个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

网友评论