# Linux Bonding/Trunk 端口聚合介紹
# 基本介紹
端口聚合為 ISO OSI Layer 2 技術
Linux Kernel Version 2 後,提供 Bonding 模組讓多張網卡結合成一張結合的網卡功能
端口聚合,是頻寬擴展和鏈路備份的一個重要途徑。Trunk 把多個物理端口捆綁在一起當作一個邏輯端口使用
# Linux Bonding 模式
Linux Bonding 可支援 7 種模式,當然每個模式支援的功能不盡相同
# 基本 bonding 能力
- 負載平衡能力
- 將網路流量配分到多個子網卡中,避免網路過量負載影響效能
- 容錯能力
- 當有多張網卡,其中有網卡無法正常工作,也不影響整體網路的運作
# 各種 Linux Bonding 可用模式
模式 | 名稱 | 特性 |
---|---|---|
0 | balance-rr | 1. 負載平衡模式,round robin 方式由第一個子網卡到最後一個輪巡傳送網路封包 2. 容錯功能 |
1 | active-backup | 1. 同一時間只會有一張網卡工作 2. 啟動中的子網卡失效會自動啟動下一順位的網卡 3. 不需要交換器支援 |
2 | balance-xor | 支援負載平衡與容錯,對每張子網卡使用相同的傳送流量 |
3 | broadcast | 1. 所有子網卡都會應廣播收到網路封包 2. 容錯能力 |
4 | 802.3ad | 1. 802.3ad 是正式 Switch 的連線聚合技術,需要交換器支援 802.3ad,驅動需支援 ethtool |
5 | balance-tlb | 1. 只有輸出流量使用繫結且有負載平衡 2. 輸入流量由目前啟動的子網卡負責 3. 容錯能力 4. 無須交換器與驅動支援及設定 |
6 | balance-alb | 1. 輸出 / 入流量都有自動負載平衡功能 2. 容錯能力 3. 子網卡驅動需支援變更網卡卡號功能與支援 ethtool 3. 無須交換器支援與設定 |
# 參考資料
- [何謂 Trunking ?](https://chaomengyang.wordpress.com/2007/10/28 / 何謂 - trunking/
- Linux 網路結合 (networking bonding) 技術與實務
- PVE 主机系统 Bond 网络配置示例