以太網鏈路聚合控制協議(LACP)(鏈路聚合控制協議:將多個端口虛機成一個邏輯端口來提高鏈路速度, Active/Active 模式)


轉自 http://storage.chinabyte.com/64/12541564.shtml http://lolo77.blog.51cto.com/941571/295075

   

1.LACP的概念

在過去的10年里,以太網線速(Line Rate)的發展從10Mb/s -> 100Mb/s -> 1Gb/s -> 10Gb/s(40GE和100GE也已出現),而然有的時候single 10GE link依然無法滿足VLAN Trunk或iSCSI/FCoE 流量對帶寬和冗余性的需求。於是鏈路聚合(Link Aggregation,LA)技術出現了,這是一種將多個網絡鏈路合並成單條邏輯鏈路,從而提供更大帶寬和冗余的網絡技術。

  注:本文多次用到Link Aggregation、Port Aggregation、Port Channel、Link Channel等術語,如未特別指出,可認為是同一個意思。

  Link Aggregation

  不同廠商交換機的端口聚合(Port Aggregation,PA) 采用不同術語,Cisco的EtherChannel,Brocade的Brocade LAG,還有基於標准的IEEE 802.3ad LACP(Link Aggregation Control Protocol,該標准在2008年被轉入IEEE 802.1ax),LACP可以動態配置端口聚合,且不依賴任何廠商,因此大部分以太網交換機都支持該協議。所有這些實現的目標都是一致的,即將兩個或多個端口綁定在一起作為一個高帶寬的邏輯端口來提升鏈路速度、冗余、彈性和負載均衡。技術上來講,我們可以在交換機之間使用多個端口創建並行trunk鏈路,但生成樹協議(STP)將其視為環路,從而會關閉所有可能造成環路的鏈接。端口聚合生成single logical link,不會造成環路,可作為Access Port(連接主機)或Trunk Port(承載Multi-VLAN traffic)使用。

在使用LA技術之前,有必要了解如下技術屬性:

  兼容性/正常運行:聚合鏈路每一端的交換機或主機必須理解或使用公共的端口聚合技術

  負載均衡:通過哈希算法在single link中區分不同的traffic pattern來實現

  鏈路冗余:如果邏輯鏈路中的一條物理鏈路故障,流量轉走臨近的鏈路,故障轉移時間一般小於幾個毫秒。一旦失敗鏈路恢復,流量會重新分布。

  在選擇端口做端口聚合或端口隧道(port channel)時,每個端口需要互相兼容,可以在允許將端口加入端口聚合組(Port Channel Group)之前,檢查端口的運行屬性,兼容性檢查通常包括以下接口運行屬性:

  Port Mode

  Access VLAN

  Trunk native VLAN

  允許的VLAN列表

  Speed

  Link Aggregation Control Protocol (LACP)

  LACP 是通過向所有啟用LACP協議的鏈路發送LACPDU Frame來工作的,如果發現鏈路另一端的設備也啟用了LACP,LACP將獨自在同一條鏈路上發送Frame,使得兩者能夠發現它們之間的多條鏈路,並將它們合並成單條邏輯鏈路。

  LACP可以配置為兩種模式中的一種:Active 或 Passive。在Active模式下,LACP主動在配置的鏈路上發送Frame;在Passive模式下,LACP的反應是“speak when spoken to”,從而可以作為控制意外環路的一種方法(只要其他設備在Active模式下)。

  IEEE 802.3ad定義的LAC(Link Aggregation Group)是一個允許交換機自動協商端口綁定鏈路的協議,通過發送LACP Frame給Peer來實現。這些Frame在支持port channel的交換機端口之間進行交換,從而學習【鄰居身份】以及【port group capability】並與本地交換機對比,然后LACP為port channel的端點分配角色。

      系統優先級最低的交換機根據端口優先級決定哪些端口可在某一時段作為端口聚合的Active port。例如,一組8 link的port channel,在任何時候LACP選擇4個優先級最高的端口作為Active port,通常數值越小的端口優先級越高。另外8條鏈路置於hot-standby狀態,如果一條Active Link down,就會激活其它的鏈路。端口優先級是可配置的,如果沒有配置,則使用不同廠商自己的默認值。如果端口使用了相同的值,廠商通常會實現一個“tie breaker”,比如lower port number作為Active port,即port 1/1 > port 1/5。

  Port Channel中的每一個端口必須分配同樣且唯一的channel group number,LACP自動在【配置為使用LACP的端口上】配置一個等於channel group number的管理鍵值(Administrative key value),該管理鍵值定義了端口與其他端口聚合的能力(ability)。一個端口與其他端口做聚合的能力取決於帶寬、雙工模式、點對點或共享介質的狀態。通道協商必須設置為ON(無條件通道;沒有LACP協商),Passive(被動監聽並等待詢問)或Active(主動詢問)。

鏈路聚合是指將交換機之間或者交換機與其它設備之間的多條線路合並成一條線路。既增加帶寬,也增加了可靠性。
鏈路聚合是交換機上支持的一種技術,它把兩個交換機之間兩條以上同時相連的鏈路虛擬成為一條鏈路來傳輸信息。
鏈路聚合技術亦稱主干技術(Trunking)或捆綁技術(Bonding),其實質是將兩台設備間的數條物理鏈路“組合”成邏輯上的一條數據通路,稱為一條聚合鏈路,如下圖示意。交換機之間物理鏈路Link 1、Link2和Link3組成一條聚合鏈路。該鏈路在邏輯上是一個整體,內部的組成和傳輸數據的細節對上層服務是透明的。
合內部的物理鏈路共同完成數據收發任務並相互備份。只要還存在能正常工作的成員,整個傳輸鏈路就不會失效。仍以上圖的鏈路聚合為例,如果Link1和Link2先后故障,它們的數據任務會迅速轉移到Link3上,因而兩台交換機間的連接不會中斷。

 

鏈路聚合的優點
從上面可以看出,鏈路聚合具有如下一些顯著的優點:
1、提高鏈路可用性:鏈路聚合中,成員互相動態備份。當某一鏈路中斷時,其它成員能夠迅速接替其工作。與生成樹協議不同,鏈路聚合啟用備份的過程對聚合之外是不可見的,而且啟用備份過程只在聚合鏈路內,與其它鏈路無關,切換可在數毫秒內完成。
2、增加鏈路容量:聚合技術的另一個明顯的優點是為用戶提供一種經濟的提高鏈路傳輸率的方法。通過捆綁多條物理鏈路,用戶不必升級現有設備就能獲得更大帶寬的數據鏈路,其容量等於各物理鏈路容量之和。聚合模塊按照一定算法將業務流量分配給不同的成員,實現鏈路級的負載分擔功能。某些情況下,鏈路聚合甚至是提高鏈路容量的唯一方法。例如當市場上的設備都不能提供高於10G的鏈路時,用戶可以將兩條10G鏈路聚合,獲得帶寬大於10G的傳輸線路。
3、價格便宜,性能接近千兆以太網。
4、不需重新布線,也無須考慮千兆網令人頭疼的傳輸距離極限。
5、Trunking可以捆綁任何相關的端口,也可以隨時取消設置,這樣提供了很高的靈活性。
6、Trunking可以提供負載均衡能力以及系統容錯。由於Trunking實時平衡各個交換機端口和服務器接口的流量,一旦某個端口出現故障,它會自動把故障端口從Trunking組中撤消,進而重新分配各個Trunking端口的流量,從而實現系統容錯。
此外,特定組網環境下需要限制傳輸線路的容量,既不能太低影響傳輸速度,也不能太高超過網絡的處理能力。但現有技術都只支持鏈路帶寬以10為數量級增長,如10M、100M、1000M等。而通過聚合將n條物理鏈路捆綁起來,就能得到更適宜的、n倍帶寬的鏈路。
 

2.將eth1 和 ethe2 通過LACP模式進行聚合

2.1 Linux網卡的綁定模式

linux有七種網卡綁定模式: 
  • bond0:round-robin, 輪詢。各接口輪流使用。需要交換機支持。交換機要配置成聚合口
  • bond1:active-backup, 主備。即只有一個接口在使用,當接口出現問題的時候再切換到別的接口
  • bond2:load balancing(xor), 根據數據的目的mac地址計算使用的端口。
  • bond3:broadcast, 所有數據在每個接口都復制一份
  • bond4:lacp, IEEE 802.3ad動態鏈路聚合。創建共享相同的速率和雙工模式的聚合組。能根據802.3ad規范利用所有的slave來建立聚合鏈路。Salve的出站選擇取決於傳輸的hash策略,默認策略是簡單的XOR策略,而hash策略則可以通過xmit_hash_policy選項加以改變。
  • bond5:對外出流量負載均衡
  • bond6:通過修改ARP包實現負載均衡, 即對到來的arp請求依據一定策略使用不通過的arp進行回復

 2.2 示例:將eth1和eth2兩張網卡使用mode 4 也就是LACP模式進行綁定 

auto bond0
iface bond0 inet manual
   bond-slaves eth2 eth1
   bond-miimon 100
   bond-mode 4
   bond-lacp-rate 1
   bond-xmit-hash-policy 2
   mtu 9000
auto eth2
iface eth2 inet manual
bond-master bond0
auto eth1
iface eth1 inet manual
bond-master bond0
auto bond0.1600
iface bond0.1600 inet static
   address 10.0.1.108
   netmask 255.255.255.0
   up ip route add 10.0.0.0/16 via 10.0.1.1 dev bond0.1600 || true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM