大家好,欢迎来到IT知识分享网。
目录
一、网卡绑定模式
Linux 绑定驱动程序提供链路聚合。绑定是并行聚合多个网络接口以提供单个逻辑绑定接口的过程。绑定接口的操作取决于绑定策略,该策略也称为模式。不同的模式提供负载均衡或热备用服务。
1.1 绑定模式介绍
根据要使用的绑定模式,您必须配置交换机上的端口:
| 绑定模式 | 交换机上的配置 |
|---|---|
|
|
需要启用静态 EtherChannel,而不是链路聚合控制协议 (LACP) 协商。 |
|
|
交换机上无需进行任何配置。 |
|
|
需要启用静态 EtherChannel,而不是 LACP 协商。 |
|
|
需要启用静态 EtherChannel,而不是 LACP 协商。 |
|
|
需要启用 LACP 协商的 EtherChannel。 |
|
|
交换机上无需进行任何配置。 |
|
|
交换机上无需进行任何配置。 |
有关如何配置交换机的详细信息,请参阅交换机的文档。
- 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流量,该公式与 |
对于非 IP 流量,公式与 |
二、配置方法
2.1 通过网卡配置文件方式配置网卡绑定
2.1.1 redhat¢os&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
2.2 使用nmtui配置网卡绑定
2.2.1 redhat¢os&rocky Linux系列
前提条件:确保NetworkManager服务正常运行,如果未开启,执行以下命令开启
systemctl start NetworkManager
步骤1:在终端执行nmtui打开配置窗口,选择编辑,按回车
步骤2、选择add添加,选择bond,回车创建
步骤3、填写配置文件名称、设备名称、选择“Add”添加,选择网卡绑定的“接口类型”,选择“创建”,如以太网,
步骤4、 填写成员端口的配置文件及设备名称,回车
步骤5、继续重复步骤2和3添加第二个成员端口,如下图
步骤6、选择绑定模式,以主备模式mode1为例,回车
步骤7、为聚合端口配置ip地址,如需dhcp自动配置IP,则省略此步骤,如下图,
步骤8、返回主菜单,退出
步骤9、验证
# cat /proc/net/bonding/bond0
#nmcli device status
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
步骤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











