首页 > 代码库 > 网卡的链路聚合--两个网卡接口变成一个

网卡的链路聚合--两个网卡接口变成一个

使用环境:由于本实验需要两个或者以上网可,所以建议在虚拟设备中作,可以虚拟出数个网卡









Linux双网卡bond方式简介

随着分步式计算、大数据大规模兴起,不断增长的计算节点之间海量数据传输交互,内部节点处理过程产生大量东西向流量,要求网络具有良好的扩展性和吞吐率,能够充分适应业务突发流量且具备高可靠性,对主机双网卡bond要求既能充分利用链路带宽资源又具备高可靠性显得尤其重要

基于linux的操作系统网卡bond模式有七种,模式 (0~6) mode=0、mode=1、mode=2、mode=3、mode=4、mode=5、mode=6,七种bond模式分别说明如下:

    第一种模式:mode=0,即:(balance-rr) Round-robin policy(负载均衡轮询策略)

    特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。

    第二种模式:mode=1,即: (active-backup) Active-backup policy(主-备用策略)  

    特点:只有一个网卡处于活动状态,当一个宕掉另一个即刻由备用状态转换为主用状态。从交换机上看,bond的MAC地址是唯一的,以避免SwitchARP表项发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有N个网络接口的情况下,资源利用率为1/N。

    第三种模式:mode=2,即:(balance-xor) XOR policy(平衡策略)

    特点:基于指定的传输HASH策略传输数据包。缺省的策略是:通过源和目标mac做hash因子来做xor算法来选路的。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力。

    第四种模式:mode=3,即:broadcast(广播策略)

    特点:在每个slave接口上传输每个数据包,一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效时无感知。此方式过于浪费资源,但有很好的容错机制。

    第五种模式:mode=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad动态链路聚合)

    特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。

配置bond模式主备网卡的链路聚合

1:火墙

[root@localhost ~]# systemctl start NetworkManager-wait-online.service 
[root@localhost ~]# systemctl start NetworkManager-wait-online.service

2:添加bond

[root@localhost ~]# nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup ip4 172.25.254.120/24
Connection ‘bond0‘ (20ade0e4-397d-446c-bd67-4c3dba8e76a0) successfully added.

##添加 类型为bond的bond0 改名为bond0 模式是主备 ip为172.25.254.120

3:添加网卡

nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0
##给bond0上添加网卡eth0改名为eth0
nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0
##给bond1上添加网卡eth0改名为eth1

4:查看bond0的情况 (监控)

  
[root@localhost ~]# cat /proc/net/bonding/bond0  ##查看bond0的信息
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:04:a2:1e
Slave queue ID: 0

5:测试

[root@localhost ~]# ifconfig eth0 down        ##使eth0坏掉
[root@localhost ~]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1    ##eth1顶上去
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:04:a2:1e
Slave queue ID: 0

Linux多网卡team方式简介

网卡(接口)绑定是将多块 网卡 逻辑地连接到一起从而允许故障转移或者提高吞吐率的方法。提高服务器网络可用性的一个方式是使用多个网卡。Linux 绑定驱动程序提供了一种将多个网卡聚合到一个逻辑的绑定接口的方法。这是个新的实现绑定的方法,并不影响 linux 内核中旧绑定驱动。

网卡Team概述在网络管理实践中,为了预防网络设备之间的链路故障,通常会采取多链路聚合Trunking技术来提供端口级或交换机级别的冗 余容错,同时实现负载均衡。对于服务器的网络连接而言,同样也可以通过类似的技术来提供容错能力,这就是Teaming技术。简单来讲,Teaming技 术就是通过专用工具将一台服务器的两块或最多八块物理网卡绑定成一个Team,这个Team中所有与交换机的物理连接共同形成一个虚拟的链路。不论这个 Team是由几个网卡构成的,对客户机来讲,对服务器的访问只能通过一个IP地址进行,也就是说,服务器的网卡是否配置成Team,客户机对服务器的访问 方式都不会发生改变。

服务器的两个或以上的网卡配置成Team后,能够带来的最大好处是可以实现服务器数据传输链路的冗余容错,有效消除单点故障隐患。当Team中的一 个物理网络连接失效时,其它的可用网络连接会自动接管负载,从而保证数据传输的可持续性。其应用效果如下图所示,当在线链路失效时,负载会自动切换到待用 链路,链路的中断和切换不会影响到正常的应用运行。

在实际应用中也可以更进一步,将服务器的两个或多个网卡分别接入到两台交换机上,通过交换机相关协议的支持,就可以实现服务器网络接入的交换机级别的冗余,从而提供更高级别的容错能力。

除 了提供传输链路的冗余容错外,网卡Team还可以带来的第二个好处,那就是能够实现服务器数据传输的负载均衡。在不考虑交换机协议支持或进行任何配置的情 况下,将服务器的多块网卡配置成负载均衡模式的Team后,服务器的网络连接带宽将变为构成Team的所有物理连接的带宽之和,所有的网络连接共同参与完 成服务器数据传输工作。

配置team模式主备网卡的链路聚合

1:添加team

nmcli connection add type team con-name team0 ifname team0 config ‘{"runner":{"name":"activebackup"}}‘ ip4 172.25.254.120/24           ##添加team0

2:添加网卡

nmcli connection add con-name eth0 ifname eth0 type team-slave master team0  ##给team0添加eth0 
nmcli connection add con-name eth1 ifname eth1 type team-slave master team0

3:测试

4:监控

teamdctl team0 state


本文出自 “12462896” 博客,请务必保留此出处http://12472896.blog.51cto.com/12462896/1955737

网卡的链路聚合--两个网卡接口变成一个