交換機鏈路聚合,兩端算法不一致會不會有問題?
什么是鏈路聚合?
鏈路聚合(Link Aggregation)是將多條物理鏈路捆綁在一起成為一條邏輯鏈路,從而增加鏈路帶寬及冗余的技術。
根據是否啟用鏈路聚合控制協議LACP,鏈路聚合分為”靜態”和“動態(LACP)”兩種聚合模式。
- 靜態聚合:Eth-Trunk的建立、成員接口的加入由手工配置,沒有鏈路聚合控制協議的參與,所有活動參與流量分擔,又稱手工負載分擔模式。
- 動態聚合:基于IEEE802.3ad標準的LACP,鏈路聚合控制協議是一種實現鏈路動態聚合與解聚合的協議。LACP通過鏈路聚合控制協議數據單元LACPDU與對端交互信息。
而今天我要講的主角是“靜態聚合”,配置靜態聚合繞不開的是聚合算法。主要有:基于目的IP、基于目的MAC、基于源目的IP、基于源目的MAC、基于源IP、基于源MAC。
那么有個經典的問題:交換機鏈路聚合,兩端算法不一致會不會有問題?如下圖所示:
問題分析
先說下答案:
我們簡單了解下算法邏輯:交換機會將數據幀中的MAC、IP地址字段HASH成HASH-KEY值,然后在匯聚轉發表中找物理出接口發出去。保證同一數據流在同一條物理鏈路的轉發,為什么必須一致?為了防止對端地址表漂移。
所以交換機的匯聚算法只會決定TX(發送)而與RX(接收)無關,如下圖:
PC1和PC2通信時,SW1可以根據算法不同將PC1的數據從不同的出接口轉發給SW2;
SW2不會管你是1口還是2口過來,它只會關心PC1去往PC2的數據流是否持續保持在同一條物理鏈路上。否則你想,PC1一會從1口來、一會兒2口來,SW2的地址表不就紊亂了么?紊亂的直接結果就是通信異常;
同理,SW2將PC2的數據轉交給SW1時,SW1也不會管你到底從哪個口給的我,它只關心“你能不能一直從這個物理口給到我”。
因此,交換機的標準匯聚算法下,兩端算法不一致是不會影響通信的。