ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux bonding 和 网络组 Network Teaming的实现

2021-04-17 12:59:14  阅读:256  来源: 互联网

标签:www cn zhanglongjie bonding ff Linux eth0 root Network


1、bonding

1.1、bonding聚合链路

模式说明
mod = 0(balance-rr) Round-robin policy(轮询)聚合口数据报文按包轮询从物理接口转发。
mod = 1(active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。
mod = 2(balance-xor) XOR policy(平衡策略)聚合口数据报文按源目MAC、源目IP、源目端口进行异或HASH运算得到一个值,根据该值查找接口转发数据报文
mod = 3broadcast(广播策略)这种模式的特点是一个报文会复制两份往bond下的两个接口分别发送出去
mod = 4(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚
合)在动态聚合模式下,聚合组内的成员端口上均启用LACP(链路汇聚控制协议)协议,其端口状态通过该协议自动进行维护
mod = 5(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)在每个物理接口上根据当前的负载(根据速度计算)分配外出流量。
mod = 6(balance-alb) Adaptive load balancing(适配器适应性负载均衡)该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡,而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的

mod=6和mod=0的区别

mod=6,先把eth0流量占满,再占eth1,….ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量

说明

常用的模式为 0,1,3,6
mode 1、5、6 不需要交换机设置
mode 0、2、3、4需要交换机设置
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel

1.2、bonding配置

详细帮助文档

/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt

前提:虚拟机中有两块及以上的网卡

方法:

1.创建bonding设备的配置文件

[root@www.zhanglongjie.cn ~]#nmcli connection                      #查看当前连接
NAME                UUID                                  TYPE      DEVICE 
eth0                5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
Wired connection 1  ba3434c4-7189-3fd6-9105-1b28769e2afc  ethernet  eth1
[root@www.zhanglongjie.cn ~]#vim /etc/sysconfig/network-scripts/ifcfg-bond0
[root@www.zhanglongjie.cn network-scripts]#cat ifcfg-bond0 
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.208
PREFIX=24
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
BONEING_OPTS="mode=1 miimon=100 fail_over_mac=1"
[root@www.zhanglongjie.cn ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 
[root@www.zhanglongjie.cn network-scripts]#cat ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
MASTER=bond0					# 需要和上面的ifcfg-bond0配置文件中的DEVICE的值对应
SLAVE=yes
ONBOOT=yes
[root@www.zhanglongjie.cn ~]#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
[root@www.zhanglongjie.cn ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth1
[root@www.zhanglongjie.cn network-scripts]#cat ifcfg-eth1
DEVICE=eth1
NAME=eth1
BOOTPROTO=static
MASTER=bond0					# 需要和上面的ifcfg-bond0配置文件中的DEVICE的值对应
SLAVE=yes
ONBOOT=yes
[root@www.zhanglongjie.cn ~]#nmcli connection reload 
[root@www.zhanglongjie.cn ~]#nmcli connection up bond0
[root@www.zhanglongjie.cn ~]#cat /proc/net/bonding/bond0 

2.nmcli实现 bonding

#添加bonding接口
[root@www.zhanglongjie.cn ~]#nmcli connection add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.208/24
Connection 'mybond0' (fca1f616-d6da-4183-bc43-ce0543e95eaf) successfully added.

#添加从属接口,如无为从属接口提供连接名,则该名称是接口名称加类型构成
[root@www.zhanglongjie.cn ~]#nmcli connection add type bond-slave ifname eth0 master bond0
Connection 'bond-slave-eth0' (eaf5cafd-0026-46df-9cce-5d494a63eb5e) successfully added.
[root@www.zhanglongjie.cn ~]#nmcli connection add type bond-slave ifname eth1 master bond0
Connection 'bond-slave-eth1' (a135bec5-29c0-4bad-92bc-0c3d8eedc463) successfully added.

#要启动绑定,则必须首先启动从属接口
[root@www.zhanglongjie.cn ~]#nmcli con up bond-slave-eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@www.zhanglongjie.cn ~]#nmcli con up bond-slave-eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

#启动绑定
[root@www.zhanglongjie.cn ~]#nmcli con up mybond0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@www.zhanglongjie.cn ~]#nmcli connection 
NAME                UUID                                  TYPE      DEVICE 
mybond0             4287fb51-c99c-4653-b5b6-02d5605a7e34  bond      bond0  
bond-slave-eth0     056d3f09-fdb3-4d37-ab73-c795b2b7048c  ethernet  eth0   
bond-slave-eth1     f17c9caa-2851-432a-906a-55c542aa7572  ethernet  eth1 
[root@www.zhanglongjie.cn ~]#ip a
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: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:f7:6a:a4 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:f7:6a:a4 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:f7:6a:a4 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.248/24 brd 10.0.0.255 scope global noprefixroute bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::f5ed:db28:5ab2:cfd5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

2、网络组 Network Teaming

2.1 Network Teaming

网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现

多种方式 runner网络组特点
broadcast启动网络组接口不会自动启动网络组中的port接口
roundrobin启动网络组接口中的port接口总会自动启动网络组接口
activebackup禁用网络组接口会自动禁用网络组中的port接口
loadbalance没有port接口的网络组接口可以启动静态IP连接
lacp (implements the 802.3ad Link Aggregation Control Protocol)启用DHCP连接时,没有port接口的网络组会等待port接口的加入

2.2、实现

#创建网络组接口
[root@www.zhanglongjie.cn ~]#nmcli con add type team con-name myteam0 ifname team0 config '{"runner":{"name": "loadbalance"}}' ipv4.addresses 10.0.0.248/24 ipv4.method manual
Connection 'myteam0' (67384c54-86de-4f4d-8c25-748e079f9aea) successfully added.

#创建port接口
[root@www.zhanglongjie.cn ~]#nmcli connection add con-name team0-eth0 type team-slave ifname eth0 master team0 
Connection 'team0-eth0' (06a34689-ac38-4b5b-ba6d-e8a2f492b724) successfully added.
[root@www.zhanglongjie.cn ~]#nmcli connection add con-name team0-eth1 type team-slave ifname eth1 master team0
Connection 'team0-eth1' (2cd85406-1d05-4455-b88c-9983d4e7a498) successfully added.

#启动绑定
[root@www.zhanglongjie.cn ~]#nmcli con up myteam0

#启动从属接口
[root@www.zhanglongjie.cn ~]#nmcli connection up team0-eth0
[root@www.zhanglongjie.cn ~]#nmcli connection up team0-eth1
[root@www.zhanglongjie.cn ~]#nmcli connection 
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  ba3434c4-7189-3fd6-9105-1b28769e2afc  ethernet  eth1   
myteam0             67384c54-86de-4f4d-8c25-748e079f9aea  team      team0  
team0-eth0          06a34689-ac38-4b5b-ba6d-e8a2f492b724  ethernet  eth0 

标签:www,cn,zhanglongjie,bonding,ff,Linux,eth0,root,Network
来源: https://blog.csdn.net/longjie_min/article/details/115793346

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有