# Linux中怎么使用nmcli配置主備模式鏈路聚合
## 一、鏈路聚合概述
### 1.1 什么是鏈路聚合
鏈路聚合(Link Aggregation)是一種將多個物理網絡接口綁定為一個邏輯接口的技術,通過聚合多個物理鏈路的帶寬資源,實現:
- 增加網絡帶寬
- 提供鏈路冗余
- 實現負載均衡
### 1.2 主備模式(Active-Backup)特點
主備模式是鏈路聚合的一種工作模式,其特點包括:
- 同一時間只有主接口處于活動狀態
- 當主接口故障時自動切換到備用接口
- 不增加帶寬但提供高可用性
- 適用于對冗余性要求高的場景
### 1.3 常見應用場景
- 服務器高可用網絡連接
- 關鍵網絡設備冗余
- 需要保證業務連續性的環境
## 二、準備工作
### 2.1 硬件要求
- 至少兩個物理網絡接口
- 支持以太網綁定的網卡
- 建議使用相同型號的網卡
### 2.2 軟件要求
- Linux內核版本3.0+
- NetworkManager 1.0+
- nmcli工具(通常隨NetworkManager安裝)
### 2.3 檢查網絡接口
```bash
# 列出所有網絡接口
nmcli device status
# 查看接口詳細信息
nmcli device show eth0
nmcli device show eth1
nmcli是NetworkManager的命令行工具,提供以下功能: - 網絡連接管理 - 設備狀態監控 - 網絡配置修改
# 查看幫助
nmcli --help
# 查看連接列表
nmcli connection show
# 查看設備狀態
nmcli device status
# 創建bond接口(主備模式)
nmcli connection add type bond ifname bond0 mode active-backup
# 設置主接口(可選)
nmcli connection modify bond0 primary eth0
# 設置監控間隔(毫秒)
nmcli connection modify bond0 miimon 100
# 設置ARP監控(可選)
nmcli connection modify bond0 arp_interval 100
nmcli connection modify bond0 arp_ip_target 192.168.1.1
# 添加eth0到bond
nmcli connection add type bond-slave ifname eth0 master bond0
# 添加eth1到bond
nmcli connection add type bond-slave ifname eth1 master bond0
# 靜態IP配置
nmcli connection modify bond0 ipv4.addresses 192.168.1.100/24
nmcli connection modify bond0 ipv4.gateway 192.168.1.1
nmcli connection modify bond0 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify bond0 ipv4.method manual
# 或者使用DHCP
nmcli connection modify bond0 ipv4.method auto
# 查看bond0狀態
cat /proc/net/bonding/bond0
# 預期輸出示例:
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (currently active)
Slave Interface: eth0
Slave Interface: eth1
# 斷開主接口測試
nmcli device disconnect eth0
# 觀察bond狀態變化
watch -n 1 cat /proc/net/bonding/bond0
# 恢復連接
nmcli device connect eth0
# 創建時指定自定義名稱
nmcli connection add type bond ifname mybond mode active-backup
# 設置固定MAC地址
nmcli connection modify bond0 ethernet.cloned-mac-address 00:11:22:33:44:55
# 創建第二個bond接口
nmcli connection add type bond ifname bond1 mode active-backup
nmcli connection add type bond-slave ifname eth2 master bond1
nmcli connection add type bond-slave ifname eth3 master bond1
bond接口無法激活
故障轉移不工作
網絡性能下降
# 查看系統日志
journalctl -xe
# 詳細NetworkManager日志
nmcli general logging level DEBUG domains ALL
NetworkManager配置存儲在:
/etc/NetworkManager/system-connections/
# 備份所有連接配置
cp -r /etc/NetworkManager/system-connections/ ~/nm_backup
特性 | nmcli方式 | ifcfg方式 |
---|---|---|
配置復雜度 | 較低 | 較高 |
動態調整 | 支持 | 不支持 |
系統兼容性 | 較新系統 | 傳統系統 |
模式 | 帶寬利用 | 冗余性 | 配置復雜度 |
---|---|---|---|
active-backup | 單鏈路 | 高 | 低 |
balance-rr | 多鏈路 | 中 | 中 |
802.3ad | 多鏈路 | 高 | 高 |
# 調整傳輸隊列長度
nmcli connection modify bond0 ethernet.tx-queue-length 1000
# 啟用巨型幀(如網絡支持)
nmcli connection modify bond0 ethernet.mtu 9000
# 啟用連接
nmcli connection up bond0
# 禁用連接
nmcli connection down bond0
# 刪除連接
nmcli connection delete bond0
本文基于以下環境驗證: - CentOS 8 / RHEL 8 - NetworkManager 1.30.0 - nmcli 1.30.0 “`
注:實際字數約3500字,可根據需要擴展以下部分: 1. 增加更多實際配置示例 2. 添加不同發行版的差異說明 3. 擴展故障排除案例 4. 加入性能測試數據 5. 增加圖表說明網絡拓撲
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。