From ef836d721c6511ea5988e7181c9f9ee80e22cfed Mon Sep 17 00:00:00 2001 From: iProbe Date: Fri, 31 May 2024 17:16:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20linux=E5=9F=BA=E7=A1=80/ub?= =?UTF-8?q?untu=E5=A4=9A=E7=BD=91=E5=8D=A1=E7=BB=91=E5=AE=9A.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linux基础/ubuntu多网卡绑定.md | 164 ++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 linux基础/ubuntu多网卡绑定.md diff --git a/linux基础/ubuntu多网卡绑定.md b/linux基础/ubuntu多网卡绑定.md new file mode 100644 index 0000000..54d310f --- /dev/null +++ b/linux基础/ubuntu多网卡绑定.md @@ -0,0 +1,164 @@ +Ubuntu从17.04开始,已经放弃在/etc/network/interfaces 里固定IP的配置,而是改成netplan方式,配置文件是:/etc/netplan/00-installer-config.yaml +## 0. ENV +Ubuntu Server 22.04 + +## 1. 修改配置文件 +```shell +# 修改前备份 +cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.orig + +# 修改配置文件,Ubuntu严格区分格式,空格缩进。 +# 简要说明: +# eno1-eno4,关闭dhcp; +# bond0只绑定eno1、eno2,实际可根据情况,绑定更多网卡; +# addresses一行为IP及掩码; +# nameservers下的addresses一行为DNS,多个用逗号分隔; +# mode一行表示绑定模式,共7种,详见下文; +# gateway4参数已经丢弃,换为route一段指定路由。 +cat > /etc/netplan/00-installer-config.yaml << EOF +# This is the network config written by 'subiquity' +network: + version: 2 + ethernets: + eno1: + dhcp4: no + dhcp6: no + eno2: + dhcp4: no + dhcp6: no + eno3: + dhcp4: no + dhcp6: no + eno4: + dhcp4: no + dhcp6: no + bonds: + bond0: + interfaces: + - eno1 + - eno2 + addresses: [192.168.80.155/24] + # gateway4: 192.168.80.1 + routes: + - to: default + via: 192.168.80.1 + nameservers: + addresses: [192.16.10.22,192.16.10.23] + parameters: + mode: active-backup + mii-monitor-interval: 100 + +# 以下均为注释,可绑定其余网卡 +# bond1: +# interfaces: +# - eno3 +# - eno4 +# addresses: [172.0.0.70/8] +# gateway4: 172.0.0.1 +# nameservers: +# addresses: [223.5.5.5] +# parameters: +# mode: active-backup +# mii-monitor-interval: 100 +# routes: +# - to: 10.0.0.0/8 +# via: 10.0.0.254 +# - to: 172.0.0.0/8 +# via: 172.0.0.1 +EOF +``` + +```txt +绑定模式,共7种: + +第⼀种模式:mod=0,即:(balance-rr) Round-robin policy(平衡抡循环策略) +特点:传输数据包顺序是依次传输(即:第1个包⾛eth0,下⼀个包就⾛eth1….⼀直循环下去,直到最后⼀个传输完毕),此模式提供负载平衡和容错能⼒。 + +第⼆种模式:mod=1,即:(active-backup) Active-backup policy(主-备份策略) +特点:只有⼀个设备处于活动状态,当⼀个宕掉另⼀个⻢上由备份转换为主设备。mac地址是外部可⻅得,从外⾯看来,bond的MAC地址是唯⼀的,以避免switch(交换机)发⽣混乱。此模式只提供了容错能⼒;由此可⻅此算法的优点是可以提供⾼⽹络连接的可⽤性,但是它的资源利⽤率较低,只有⼀个接⼝处于⼯作状态,在有 N 个⽹络接⼝的情况下,资源利⽤率为1/N。 + +第三种模式:mod=2,即:(balance-xor) XOR policy(平衡策略) +特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR ⽬标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能⼒。 + +第四种模式:mod=3,即:broadcast(⼴播策略) +特点:在每个slave接⼝上传输每个数据包,此模式提供了容错能⼒。 + +第五种模式:mod=4,即:(802.3ad) IEEE 802.3adDynamic link aggregation(IEEE 802.3ad 动态链接 +聚合) +特点:创建⼀个聚合组,它们共享同样的速率和双⼯设定。根据802.3ad规范将多个slave⼯作在同⼀个激活的聚合体下。 +必要条件: +条件1:ethtool⽀持获取每个slave的速率和双⼯设定。 +条件2:switch(交换机)⽀持IEEE 802.3ad Dynamic link aggregation。 +条件3:⼤多数switch(交换机)需要经过特定配置才能⽀持802.3ad模式。 + +第六种模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡) +特点:不需要任何特别的switch(交换机)⽀持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另⼀个slave接管失败的slave的MAC地址。该模式的必要条件:ethtool⽀持获取每个slave的速率 + +第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡) +特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance,rlb),⽽且不需要任何switch(交换机)的⽀持。 --> +``` + +## 2. 启用新网络配置 +```shell +netplan apply +``` + +## 3. 查看IP +```shell +ip a +``` +显示类似 +```txt +1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + inet 127.0.0.1/8 scope host lo + valid_lft forever preferred_lft forever + inet6 ::1/128 scope host + valid_lft forever preferred_lft forever +2: eno1: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000 + link/ether 3e:9c:7a:52:8e:0b brd ff:ff:ff:ff:ff:ff permaddr 8c:2a:8e:02:cd:28 + altname enp26s0f0 +3: eno2: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000 + link/ether 3e:9c:7a:52:8e:0b brd ff:ff:ff:ff:ff:ff permaddr 8c:2a:8e:02:cd:29 + altname enp26s0f1 +4: eno3: mtu 1500 qdisc mq state UP group default qlen 1000 + link/ether 8c:2a:8e:02:cd:2a brd ff:ff:ff:ff:ff:ff + altname enp26s0f2 + inet6 fe80::8e2a:8eff:fe02:cd2a/64 scope link + valid_lft forever preferred_lft forever +5: eno4: mtu 1500 qdisc mq state UP group default qlen 1000 + link/ether 8c:2a:8e:02:cd:2b brd ff:ff:ff:ff:ff:ff + altname enp26s0f3 + inet6 fe80::8e2a:8eff:fe02:cd2b/64 scope link + valid_lft forever preferred_lft forever +6: bond0: mtu 1500 qdisc noqueue state UP group default qlen 1000 + link/ether 3e:9c:7a:52:8e:0b brd ff:ff:ff:ff:ff:ff + inet 192.168.80.155/24 brd 192.168.80.255 scope global bond0 + valid_lft forever preferred_lft forever + inet6 fe80::3c9c:7aff:fe52:8e0b/64 scope link + valid_lft forever preferred_lft forever +``` + +由于采用网卡绑定,Ubuntu绑定网卡bond0的MAC地址和原来的物理网卡eno1、eno2的MAC相同; +同时华为交换机端链路聚合模式(Working Mode)需要设置为lacp-dynamic,而非静态或Normal(default),否则可能会出现网络时通时断。配置为Normal时,CentOS配置为active-backup运行正常。 + +## 4. 查看路由 +```shell +route -n +``` +显示类似 +```txt +Kernel IP routing table +Destination Gateway Genmask Flags Metric Ref Use Iface +0.0.0.0 192.168.80.1 0.0.0.0 UG 0 0 0 bond0 +192.168.80.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 +``` + +## 5. 参考 +```txt +官方示例参考: +https://netplan.io/examples +其它参考: +https://www.jianshu.com/p/fe3cfadd61f6 +https://blog.csdn.net/weixin_39657662/article/details/114484215 +``` \ No newline at end of file