1. 程式人生 > >網卡的鏈路聚合--兩個網卡接口變成一個

網卡的鏈路聚合--兩個網卡接口變成一個

team bond

使用環境:由於本實驗需要兩個或者以上網可,所以建議在虛擬設備中作,可以虛擬出數個網卡









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:火墻

[[email protected] ~]# systemctl start NetworkManager-wait-online.service 
[[email protected] ~]# systemctl start NetworkManager-wait-online.service

2:添加bond

[[email protected] ~]# 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的情況 (監控)

  
[[email protected] ~]# 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:測試

[[email protected] ~]# ifconfig eth0 down        ##使eth0壞掉
[[email protected] ~]# 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

網卡的鏈路聚合--兩個網卡接口變成一個