Ubuntu 20.04 服务器配置多网卡Bond0 Mode4链路聚合

说明 (bonding一共有7种工作模式):
bonding一共有7种工作模式(mode):

1)、mode=0,(balance-rr)(轮询均衡模式)
传输数据包顺序是依次传输,直到最后一个传输完毕,此模式提供负载平衡和容错能力,服务器对外只有一个MAC地址,其物理网卡是没有MAC地址的,因此需要交换机做链路聚合,否则不知道要将数据包发送给哪个网卡.

2)、mode=1,(active-backup)(主备模式)
只有一个主设备处于活动状态。一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。此模式提供了容错能力。不需要交换机特别配置,配置access端口就可以了。

3)、mode=2,(balance-xor)(平衡策略)
特点:基于指定的传输HASH策略传输数据包。此模式提供负载平衡和容错能力。

4)、mode=3,(broadcast) (广播策略)
特点:在每个网卡上传输每个数据包,广播包太多,一般不使用此模式。将所有数据包传输给所有设备。此模式提供了容错能力。

5)、mode=4,(802.3ad) IEEE 802.3ad Dynamic link aggregation. IEEE 802.3ad 动态链接聚合
创建共享相同的速度和双工设置的聚合组。此模式提供了容错能力。每个设备需要基于驱动的重新获取速度和全双工支持;如果使用交换机,交换机也需启用 802.3ad 模式。

6)、mode=5,(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)
特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个网卡上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的网卡出故障了,另一个网卡接管失败的网卡的MAC地址。交换机上可见多个网卡的MAC,因此不需要交换机做链路聚合配置。

7)、mode=6,(balance-alb) Adaptive load balancing: (适配器适应性负载均衡)
特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receiveload balance, rlb),而且不需要任何switch(交换机)的支持。交换机上也是可见多个网卡的MAC,不需要做链路聚合配置。

以下部分是mode=4实现原理,了解一下:

1.bond接收负载均衡是通过ARP协议实现的。bonding驱动截获本机发送的ARP应答,并把源MAC地址改写为bond中某个网卡的MAC地址,从而使得交换机上学习到的ARP是服务器想要分配流量的MAC地址,向服务器发送的流量则会发送到相对应的MAC地址。

2.bond发送负载均衡也是通过ARP协议实现的。当服务器发起ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达时,bonding驱动把它的MAC地址提取出来,并伪造一个ARP应答给bond中的某个网卡,以此实现从指定的网卡发出数据包。

3.当有网卡出现故障或ARP过期时,bond都会重新计算,将流量重新分配到各个网卡。
inux bonding一共有7种工作模式(mode),如果是想要加大网卡的吞吐量,通常会使用mode=6的模式,如果是注重网络的稳定,通常会使用mode=1的模式

查看绑定的网卡信息

root@it:~# ip add
- eno33np0 为以后需要聚合的端口
- eno34np1 为以后需要聚合的端口

root@it:~# ip add
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
2: eno33np0: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN group default qlen 1000
    link/ether ee:3b:0a:77:e6:8b brd ff:ff:ff:ff:ff:ff
3: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether b0:7b:25:d4:6c:f8 brd ff:ff:ff:ff:ff:ff
4: eno34np1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether ee:3b:0a:77:e6:8b brd ff:ff:ff:ff:ff:ff
5: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether b0:7b:25:d4:6c:f9 brd ff:ff:ff:ff:ff:ff

在 /etc/netplan/ 目录下新建一个以 .yaml 结尾的文件

# This is the network config written by 'subiquity'
network:
  bonds:
    bond0:
      addresses:
      - 10.10.20.201/24
      gateway4: 10.10.20.254
      interfaces:
      - eno33np0
      - eno34np1
      nameservers:
        addresses: [8.8.8.8,1.1.1.1]
        search: []
      parameters:
        lacp-rate: slow
        mode: 802.3ad
        transmit-hash-policy: layer2
  ethernets:
    eno1:
      dhcp4: false
    eno2:
      dhcp4: false
    eno33np0: {}
    eno34np1: {}
  version: 2

sudo netplan apply

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
2: eno33np0: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN group default qlen 1000
    link/ether ee:3b:0a:77:e6:8b brd ff:ff:ff:ff:ff:ff
3: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether b0:7b:25:d4:6c:f8 brd ff:ff:ff:ff:ff:ff
4: eno34np1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether ee:3b:0a:77:e6:8b brd ff:ff:ff:ff:ff:ff
5: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether b0:7b:25:d4:6c:f9 brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether ee:3b:0a:77:e6:8b brd ff:ff:ff:ff:ff:ff
    inet 10.10.20.201/24 brd 10.10.20.255 scope global bond0
       valid_lft forever preferred_lft forever
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇