Linux系统下网卡绑定模式及配置方法详解

Linux系统下网卡绑定模式及配置方法详解本文主要详细介绍了 Linux 系统下网卡聚合的几种模式 以及不同操作系统下详细配置方式及示例 以及如何给网卡配置 VLAN 标记 网卡绑定

大家好,欢迎来到IT知识分享网。

目录

一、网卡绑定模式

1.1 绑定模式介绍

1.2 xmit_hash_policy绑定参数

二、配置方法

2.1 通过网卡配置文件方式配置网卡绑定 

2.1.1 redhat¢os&rocky Linux系列

2.1.2 Debian系(Ubuntu) 

2.2 使用nmtui配置网卡绑定

2.2.1 redhat¢os&rocky Linux系列

2.2.2 Debian系(Ubuntu)

2.3 其它配置方式 

三、配置VLAN标签

3.1 redhat系列

3.1.1 单网卡配置VLAN标记

3.1.2 给聚合绑定网卡配置VLAN标记

 3.2 Debian系(Ubuntu)

3.2.1 聚合端口配置VLAN标签

3.2.2 单端口配置VLAN标签


一、网卡绑定模式

Linux 绑定驱动程序提供链路聚合。绑定是并行聚合多个网络接口以提供单个逻辑绑定接口的过程。绑定接口的操作取决于绑定策略,该策略也称为模式。不同的模式提供负载均衡或热备用服务。

1.1 绑定模式介绍

根据要使用的绑定模式,您必须配置交换机上的端口:

绑定模式 交换机上的配置

0 – balance-rr

需要启用静态 EtherChannel,而不是链路聚合控制协议 (LACP) 协商。

1 – active-backup

交换机上无需进行任何配置。

2 – balance-xor

需要启用静态 EtherChannel,而不是 LACP 协商。

3 – broadcast

需要启用静态 EtherChannel,而不是 LACP 协商。

4 – 802.3ad

需要启用 LACP 协商的 EtherChannel。

5 – balance-tlb

交换机上无需进行任何配置。

6 – balance-alb

交换机上无需进行任何配置。

有关如何配置交换机的详细信息,请参阅交换机的文档。 

  • Balance-rr(模式 0)

Balance-rr使用循环算法,该算法按顺序将数据包从第一个可用端口传输到最后一个端口。此模式提供负载均衡和容错功能。

此模式需要交换机配置端口聚合组,也称为 EtherChannel 或类似的端口分组。EtherChannel 是一种端口链路聚合技术,用于将多个物理以太网链路分组到一个逻辑以太网链路。

此模式的缺点是它不适合繁重的工作负载,并且如果 TCP 吞吐量或有序数据包传输是必不可少的。

  • Active-backup主备模式(mode 1)

Active-backup使用确定绑定中只有一个端口处于活动状态的策略。此模式提供容错功能,不需要任何交换机配置。

如果活动端口发生故障,备用端口将变为活动端口。绑定向网络发送无偿地址解析协议 (ARP) 响应。无偿 ARP 强制 ARP 帧的接收方更新其转发表。Active-backup模式传输免费 ARP,以宣布新的路径以保持主机的连接。

primary选项定义绑定接口的首选端口。

  • Balance-xor(mode 2)

Balance-xor使用选定的传输哈希策略发送数据包。此模式提供负载均衡、容错功能,并且需要交换机配置以设置 Etherchannel 或类似的端口分组。

要更改数据包传输和平衡传输,此模式使用xmit_hash_policy选项。根据接口上流量的来源或目标,接口需要额外的负载均衡配置。请参阅粘接参数xmit_hash_policy说明。

  • Broadcast(mode 3)

Broadcast使用在所有接口上传输每个数据包的策略。此模式提供容错功能,并且需要交换机配置来设置 EtherChannel 或类似的端口分组。

此模式的缺点是它不适合繁重的工作负载,并且如果 TCP 吞吐量或有序数据包传输是必不可少的。

  • 802.3ad(mode 4)

802.3ad使用同名的IEEE标准动态链路聚合策略。此模式提供容错能力。此模式需要交换机配置来设置链路聚合控制协议 (LACP) 端口分组。

此模式创建共享相同速度和双工设置的聚合组,并利用活动聚合器中的所有端口。根据接口上流量的来源或目标,此模式需要额外的负载均衡配置。

默认情况下,传出流量的端口选择取决于传输哈希策略。使用传输哈希策略的xmit_hash_policy选项来更改端口选择并平衡传输。

802.3ad Balance-xor之间的区别在于合规性。802.3ad策略在端口聚合组之间协商 LACP。请参阅粘接参数xmit_hash_policy说明

  • Balance-tlb(mode 5)

Balance-tlb使用传输负载均衡策略。此模式提供容错、负载均衡,并建立不需要任何开关支持的通道绑定。

活动端口接收传入流量。如果活动端口发生故障,另一个端口将接管故障端口的 MAC 地址。要确定哪个接口处理传出流量,请使用以下模式之一:

0:使用哈希分配策略在不进行负载均衡的情况下分配流量

1:通过负载均衡将流量分配到每个端口
在绑定选项tlb_dynamic_lb=0的情况下,这种绑定模式使用xmit_hash_policy绑定选项来平衡传输。primary选项定义了绑定接口的首选端口。

  • Balance-alb(mode 6)

Balance-alb使用自适应负载均衡策略。此模式提供容错、负载均衡,并且不需要任何特殊的开关支持。

此模式包括 IPv4 和 IPv6 流量的平衡-传输负载均衡 (balance-tlb) 和接收-负载均衡。绑定拦截本地系统发送的 ARP 应答,并覆盖绑定中其中一个端口的源硬件地址。ARP协商管理接收-负载均衡。因此,不同的端口对服务器使用不同的硬件地址。

primary选项定义绑定接口的首选端口。使用tlb_dynamic_lb=0绑定选项时,此绑定模式使用xmit_hash_policy绑定选项来平衡传输。请参阅粘接参数xmit_hash_policy说明。

1.2 xmit_hash_policy绑定参数

 xmit_hash_policy负载均衡参数用于在balance-xor、802.3ad、balance-alb和balance-tlb模式中选择传输哈希策略。仅当tlb_dynamic_lb参数为0时,该参数适用于模式5和6。该参数的可能值包括layer2、layer2+3、layer3+4、encap2+3、encap3+4以及vlan+srcmac。

有关详细信息,请参阅下表:

策略层或网络层

Layer2 Layer2+3 Layer3+4 encap2+3 encap3+4

VLAN+srcmac

使用

源和目标MAC地址的XOR以及以太网协议类型

源和目标 MAC 地址以及 IP 地址的 XOR

源端口和目标端口以及 IP 地址的异或

对源MAC地址和目标MAC地址以及支持的隧道内的IP地址进行XOR运算,例如虚拟可扩展局域网(VXLAN)。该模式依赖于skb_flow_dissect()函数来获取报文头字段 对源端口和目标端口以及支持的隧道内的IP地址进行XOR运算,例如VXLAN。该模式依赖于skb_flow_dissect()函数来获取报文头字段

VLAN ID 和源 MAC 供应商和源 MAC 设备的 XOR

流量放置

流向同一底层网络接口上的特定网络对等体的所有流量

发往同一底层网络接口上特定 IP 地址的所有流量

发往同一底层网络接口上特定 IP 地址和端口的所有流量

第一选择

如果网络流量在此系统与同一广播域中的多个其他系统之间

如果此系统与多个其他系统之间的网络流量通过默认网关

如果此系统与另一个系统之间的网络流量使用相同的 IP 地址,但通过多个端口

封装的流量在源系统与使用多个 IP 地址的多个其他系统之间进行

封装的流量在源系统和使用多个端口号的其他系统之间进行

如果绑定传输来自多个容器或虚拟机 (VM) 的网络流量,这些流量将其 MAC 地址直接暴露给外部网络(如桥接网络),则无法为模式 2 或模式 4 配置交换机

第二选择

如果网络流量主要在此系统与默认网关后面的多个其他系统之间

如果网络流量主要在此系统和另一个系统之间

兼容的

802.3ad

802.3ad

不是 802.3ad

默认策略

如果未提供任何配置,则这是默认策略

对于非IP流量,该公式与layer2层传输策略相同

对于非 IP 流量,公式与layer2层传输策略的公式相同

二、配置方法

2.1 通过网卡配置文件方式配置网卡绑定 

2.1.1 redhat&centos&rocky Linux系列

网卡配置文件位置在/etc/sysconfig/network-scripts/目录下

示例1:以网卡1和网卡2配置网卡绑定模式为802.3ad 也就是mode 4为例,对应交换机端配置LACP动态链路聚合,

步骤1、编辑文件/etc/sysconfig/network-scripts/ ifcfg-bond1,将以下内容写入并保存

DEVICE=bond1 NAME=bond1 TYPE=bond ONBOOT=yes BOOTPROTO=none BONDING_OPTS="mode=4 lacp_rate=1 miimon=100 xmit_hash_policy=layer3+4" BONDING_MASTER=yes IPADDR=ip address NETMASK=netmask NM_CONTROLLED=no USERCTL=no 

步骤2、分别修改网卡1跟网卡2的配置文件,将以下内容写入并保存

网卡1配置文件示例

DEVICE=device_name TYPE=Ethernet ONBOOT=yes BOOTPROTO=none MASTER=bond1 SLAVE=yes NM_CONTROLLED=no USERCTL=no 

网卡2配置文件示例

DEVICE=device_name TYPE=Ethernet ONBOOT=yes BOOTPROTO=none MASTER=bond1 SLAVE=yes NM_CONTROLLED=no USERCTL=no 

步骤3、启用配置,重启网络服务

# systemctl restart network

示例2、 以网卡1和网卡2配置网卡绑定模式为Active-backup主备模式 也就是mode 1为例,

步骤1、修改绑定网络接口bond2的网络配置文件,编辑文件“/etc/sysconfig/network-scripts/ ifcfg-bond2”,内容如下:

DEVICE=bond2 NAME=bond2 TYPE=bond ONBOOT=yes BOOTPROTO=static BONDING_MASTER=yes BONDING_OPTS="mode=1 miimon=100" IPADDR=ip_address NETMASK=netmask IPV6INIT=yes NM_CONTROLLED=no USERCTL=no 

步骤2、修改网卡1跟网卡2配置文件,内容如下

DEVICE=网卡1 TYPE=Ethernet ONBOOT=yes BOOTPROTO=none MASTER=bond2 SLAVE=yes NM_CONTROLLED=no USERCTL=no 
DEVICE=网卡2 TYPE=Ethernet ONBOOT=yes BOOTPROTO=none MASTER=bond2 SLAVE=yes NM_CONTROLLED=no USERCTL=no 

步骤3、启用配置,重启网络服务

# systemctl restart network

2.1.2 Debian系(Ubuntu) 

示例1、以网卡ens36与37配置mode4为例,对应交换机端配置LACP动态链路聚合

注意:

Ubuntu系统从17.10版本开始,默认使用的网络管理工具从ifupdown转变为了Netplan。在这之后的版本中,不再使用传统的/etc/network/interfaces文件来配置网络,而是使用YAML格式的配置文件,通常位于/etc/netplan/目录下。

如果你需要在Ubuntu 17.10或更高版本中配置静态IP地址,你应该编辑Netplan配置文件,而不是修改interfaces文件。

  • Ubuntu17.10之前版本配置方法

步骤1:修改配置文件/etc/network/interfaces,内容如下:

vi /etc/network/interfaces source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback auto ens36 iface ens36 inet manual bond-master bond0 auto ens37 iface ens37 inet manual pre-up sleep 5 bond-master bond0 auto bond0 iface bond0 inet static address 192.168.10.2 netmask 255.255.255.0 gateway 192.168.10.254 bond-mode 4 bond-miimon 100 bond-lacp-rate 1 bond-slaves ens36 ens37

步骤2:重启网络服务

#service network restart 或 #/etc/init.d/networking restart
  • Ubuntu17.10以后版本配置方法:

修改/etc/netplan/ 01-network-manager-all.yaml文件或新创建yaml文件,文件内容如下:

network: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: no enp2s0: dhcp4: no enp3s0: dhcp4: no optional: true enp4s0: dhcp4: no optional: true enp5s0: dhcp4: no optional: true enp6s0: dhcp4: no optional: true bonds: bond-guanli: interfaces: [enp2s0, enp3s0] addresses: [192.168.93.2/24] parameters: mode: 802.3ad mii-monitor-interval: 1 bond-yewu: interfaces: [enp1s0, enp4s0] addresses: [192.168.1.252/24] nameservers: search: [local] addresses: [8.8.8.8, 8.8.4.4] parameters: mode: active-backup mii-monitor-interval: 1 gratuitious-arp: 5 routes: - to: default via: 192.168.1.1 bond-cuncu: interfaces: [enp5s0, enp6s0] addresses: [192.168.254.2/24] parameters: mode: balance-rr mii-monitor-interval: 1

Linux系统下网卡绑定模式及配置方法详解

2.2 使用nmtui配置网卡绑定

2.2.1 redhat&centos&rocky Linux系列

前提条件:确保NetworkManager服务正常运行,如果未开启,执行以下命令开启

systemctl start NetworkManager

步骤1:在终端执行nmtui打开配置窗口,选择编辑,按回车

Linux系统下网卡绑定模式及配置方法详解

步骤2、选择add添加,选择bond,回车创建

Linux系统下网卡绑定模式及配置方法详解

 步骤3、填写配置文件名称、设备名称、选择“Add”添加,选择网卡绑定的“接口类型”,选择“创建”,如以太网,

Linux系统下网卡绑定模式及配置方法详解

步骤4、 填写成员端口的配置文件及设备名称,回车

Linux系统下网卡绑定模式及配置方法详解

步骤5、继续重复步骤2和3添加第二个成员端口,如下图

Linux系统下网卡绑定模式及配置方法详解

 步骤6、选择绑定模式,以主备模式mode1为例,回车

Linux系统下网卡绑定模式及配置方法详解

步骤7、为聚合端口配置ip地址,如需dhcp自动配置IP,则省略此步骤,如下图, 

Linux系统下网卡绑定模式及配置方法详解

步骤8、返回主菜单,退出

Linux系统下网卡绑定模式及配置方法详解

步骤9、验证

# cat /proc/net/bonding/bond0 

Linux系统下网卡绑定模式及配置方法详解

 #nmcli device status

Linux系统下网卡绑定模式及配置方法详解

2.2.2 Debian系(Ubuntu)

ubuntu与redhat系列使用nmtui配置网卡绑定的方式一样,这里不再赘述

2.3 其它配置方式 

redhat7系列系统还可以使用nmcli管理工具,配置网卡绑定,8,9系统支持web控制台配置,另外使用nm-connection-editor也可以配置网卡绑定,配置效果跟上面2种配置方式所达到的效果是一样的,根据实际情况选择相应配置方式即可所以这里也不再赘述

三、配置VLAN标签

虚拟局域网 (VLAN) 是物理网络中的逻辑网络。VLAN 接口在数据包通过接口时使用 VLAN ID 标记数据包,并删除返回数据包的标记。您可以在另一个接口(例如以太网、绑定、组或桥接设备)之上创建 VLAN 接口。这些接口称为parent interface .

3.1 redhat系列

3.1.1 单网卡配置VLAN标记

步骤1、编辑/etc/sysconfig/network-scripts/ifcfg-ens33,文件内容如下:

#more ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" NAME="ens33" UUID="b5fc64bd-a688-43aa-8ff2-acb" DEVICE="ens33" ONBOOT="yes" 

步骤2:编辑/etc/sysconfig/network-scripts/ifcfg-ens33.10,文件内容如下:

#more ifcfg-ens33.10 TYPE="Vlan" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" PHYSDEV=ens33 NAME="ens33.10" UUID="b5fc64bd-a688-43aa-8ff2-acb" DEVICE="ens33.10" ONBOOT="yes" VLAN_ID=10 IPADDR=192.168.1.1 PREFIX=24 GATEWAY=192.168.1.254 

Linux系统下网卡绑定模式及配置方法详解

步骤3、重启网络服务

#systemctl restart network

3.1.2 给聚合绑定网卡配置VLAN标记

步骤1、编辑配置文件/etc/sysconfig/network-scripts/ifcfg-bond1.10,内容如下:

more ifcfg-bond1.10 TYPE=Vlan BONDING_MASTER=yes HWADDR= PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static IPADDR=192.168.247.140 PREFIX=24 GATEWAY=192.168.247.254 DNS1=192.168.247.253 DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=bond1.10 UUID=6ad166b3-24c5-4c1b-9282-570a00ab5a18 DEVICE=bond1.10 PHYSDEV=bond1 VLAN_ID=10 ONBOOT=yes 

步骤2、编辑/etc/sysconfig/network-scripts/ifccfg-bond1网卡配置文件内容如下:

#more ifcfg-bond1 TYPE=Bond BONDING_MASTER=yes HWADDR= PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=bond1 UUID=6ad166b3-24c5-4c1b-9282-570a00ab5a18 DEVICE=bond1 ONBOOT=yes BONDING_OPTS="downdelay=0 miimon=100 mode=active-backup updelay=0"

步骤3、修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens36 ifcfg-ens37,bond1的成员端口,文件内容如下:

#more ifcfg-ens36 TYPE=Ethernet NAME=ens36 UUID=f-8271-4464-83af-ef3b1ec964b7 DEVICE=ens36 ONBOOT=yes MASTER=bond1 SLAVE=yes MASTER_UUID=6ad166b3-24c5-4c1b-9282-570a00ab5a18
TYPE=Ethernet NAME=ens37 UUID=2d6705cf-44da-41d2-ae4e-36996a20f0d4 DEVICE=ens37 ONBOOT=yes MASTER=bond1 SLAVE=yes MASTER_UUID=6ad166b3-24c5-4c1b-9282-570a00ab5a18

 3.2 Debian系(Ubuntu)

3.2.1 聚合端口配置VLAN标签

编辑vi /etc/network/interfaces文件,内容如下

vi /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback auto ens36 iface ens36 inet manual bond-master bond0 auto ens37 iface ens37 inet manual pre-up sleep 5 bond-master bond0 auto bond0 iface bond0 inet manual bond-mode 4 bond-miimon 100 bond-lacp-rate 1 bond-slaves ens36 ens37 # mgmt network auto vlan2 iface vlan2 inet static address 192.168.10.2 netmask 255.255.255.0 gateway 192.168.10.254 vlan_raw_device bond0

17.10以后或使用netplan管理网络的系统配置方法如下,给bond-yewu聚合口配置vlan标记

#more /etc/netplan/01-network-manager-all.yaml network: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: no enp2s0: dhcp4: no enp3s0: dhcp4: no optional: true enp4s0: dhcp4: no optional: true enp5s0: dhcp4: no optional: true enp6s0: dhcp4: no optional: true bonds: bond-guanli: interfaces: [enp2s0, enp3s0] addresses: [192.168.93.2/24] parameters: mode: 802.3ad mii-monitor-interval: 1 bond-yewu: interfaces: [enp1s0, enp4s0] parameters: mode: active-backup mii-monitor-interval: 1 gratuitious-arp: 5 vlan: vlan10: id: 10 link: bond-yewu addresses: [192.168.254.2/24] nameservers: search: [local] addresses: [8.8.8.8, 8.8.4.4] routes: - to: default via: 192.168.1.1

3.2.2 单端口配置VLAN标签

vi /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback auto ens36 iface ens36 inet manual # mgmt network auto vlan2 iface vlan2 inet static address 192.168.10.2 netmask 255.255.255.0 gateway 192.168.10.254 vlan_raw_device ens36

17.10以后或使用netplan管理网络的系统配置方法如下,给ens聚合口配置vlan标记

#more /etc/netplan/01-network-manager-all.yaml network: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: no enp2s0: dhcp4: no enp3s0: dhcp4: no optional: true enp4s0: dhcp4: no optional: true enp5s0: dhcp4: no optional: true enp6s0: dhcp4: no optional: true vlan: vlan10: id: 10 link: enp1s0 addresses: [192.168.254.2/24] nameservers: search: [local] addresses: [8.8.8.8, 8.8.4.4] routes: - to: default via: 192.168.1.1

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117592.html

(0)
上一篇 2025-11-19 20:21
下一篇 2025-11-19 20:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信