添加 linux基础/ubuntu多网卡绑定.md

This commit is contained in:
iProbe 2024-05-31 17:16:22 +08:00
parent b26c7efb9b
commit ef836d721c

View file

@ -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=3broadcast⼴播策略
特点在每个slave接⼝上传输每个数据包此模式提供了容错能⼒。
第五种模式mod=4(802.3ad) IEEE 802.3adDynamic link aggregationIEEE 802.3ad 动态链接
聚合)
特点创建⼀个聚合组它们共享同样的速率和双⼯设定。根据802.3ad规范将多个slave⼯作在同⼀个激活的聚合体下。
必要条件:
条件1ethtool⽀持获取每个slave的速率和双⼯设定。
条件2switch(交换机)⽀持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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> 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
```