在 RHEL 上配置網路綁定(成組)
![](https://linuxstory.org/wp-content/uploads/2024/06/122437eaiz28h2y0a594z9-800x400.jpg)
網路 綁定 ( 成組 ) 是 Linux 的一項內核特性,它讓我們可以將多個網路介面(例如 ens192
、ens224
)聚合為一個專有的虛擬網路介面,被稱為通道綁定(bond0
)。這樣做能夠提升吞吐量並增加冗餘備份。
網路綁定一共支持 7 種模式,你可以根據實際需求進行設置。 鏈接聚合控制協議 (LACP), 即模式 4(802.3ad)因其支持鏈接聚合與冗餘而被廣泛應用。
在本篇文章中,我們將引導你學習如何在 RHEL 系統中配置網卡(網路)綁定。
LACP 綁定的前置條件
- 網路團隊需要在網路交換機的埠上開啟 LACP(802.3ad)來實現鏈接的聚合。
- 一個 Linux 系統應該配備至少兩個網路介面。
- 對於物理伺服器,我們推薦在板載介面與 PCI 介面間進行綁定配置,以避免在主機端的網路卡出現單點故障。
Bonding 模塊
你可以使用 lsmod
命令來確認你的 Linux 系統是否已經載入了 bonding
模塊。
lsmod | grep -i bonding
bonding 12451 0
系統應該默認已載入。如果未看到,可以運用 modprobe
命令進行載入。
modprobe bonding
創建綁定介面
在 /etc/sysconfig/network-scripts/
路徑下,創建一個名為 ifcfg-bond0
的綁定介面文件。依據你的網路情況,你可能需要修改諸如 IP
、MASK
以及 GATEWAY
等值。
vi /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Bond
DEVICE=bond0
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
參數 | 描述 |
---|---|
BONDING_MASTER=yes |
表示設備是一個綁定主設備。 |
mode=4 |
綁定模式是 IEEE 802.3ad 動態鏈接聚合(LACP)。 |
miimon=100 |
定義以毫秒單位的 MII 鏈路監測頻率,這決定了多久檢查每個從屬鏈路的狀態一次以尋找失敗的鏈路。0 值將禁用 MII 鏈路監測。100 是個不錯的初始值。 |
lacp_rate=1 |
一個設置項,規定我們將以何種頻率要求我們的鏈路夥伴每秒鐘發送 LACPDU。默認為慢,即 0 。 |
配置第一個子介面
修改你希望添加到綁定中的第一個子介面。請根據你的實際環境使用合適的介面名。
vi /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens192
ONBOOT=yes
MASTER=bond0
SLAVE=yes
配置第二個子介面
修改你希望添加到綁定中的第二個子介面。請根據你的實際環境使用合適的介面名。
vi /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens224
ONBOOT=yes
MASTER=bond0
SLAVE=yes
重啟網路服務
重啟網路服務以激活綁定介面。
systemctl restart network
驗證綁定配置
你可以藉助 ip 命令 來查看綁定介面以及其子介面的情況。可以看到,bond0
現在已啟動並在運行。
查閱綁定介面狀態
檢查以下文件,你可以看到綁定介面及其子介面的詳細信息。輸出結果應該看起來很不錯,我們能看到諸如綁定模式,MII 狀態,MII 輪詢間隔,LACP 速率,埠數量等信息。
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: c8:5b:76:4d:d4:5c
Active Aggregator Info:
Aggregator ID: 1
Number of ports: 2
Actor Key: 15
Partner Key: 32773
Partner Mac Address: e4:a7:a0:32:fc:e9
Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: c8:5b:76:4d:d4:5c
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned State: 0
Partner Churned State: 0
details actor lacp pdu:
system priority: 65535
system mac address: c8:5b:76:4d:d4:5c
port key: 15
port priority: 255
port number: 1
port state: 63
details Partner lacp pdu:
system priority: 32667
system mac address: e4:a7:a0:32:fc:e9
oper key: 32773
port priority: 32768
port number: 290
port state: 61
Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: e4:a7:a0:32:fc:e9
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned State: 0
Partner Churned State: 0
details actor lacp pdu:
system priority: 65535
system mac address: e4:a7:a0:32:fc:e9
port key: 15
port priority: 255
port number: 2
port state: 63
details Partner lacp pdu:
system priority: 32667
system mac address: c8:5b:76:4d:d4:5c
oper key: 32773
port priority: 32768
port number: 16674
port state: 61
容錯/冗餘測試
為了驗證容錯性和連接速度,你可以逐個斷開介面,然後檢查伺服器是否仍舊可達。
- 測試用例-1:當兩個子介面都啟動並運行時,使用 ethtool 命令 檢查鏈路速度。
- 測試用例-2:斷開第一個子介面,然後嘗試訪問系統。
- 測試用例-3:斷開第二個子介面,然後嘗試訪問系統。
測試用例-1:
如果你想檢測下連接速度:沒錯,我在 bond0
上看到了 20 Gbps
的速度,因為每個子介面支持 10 Gbps。
ethtool bond0
Settings for bond0:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 20000Mb/s
Duplex: Full
Port: Other
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Link detected: yes
測試用例-2:
現在我們將關閉第一個子介面。
ifdown ens192
Device 'ens192' successfully disconnected.
通過 ssh
嘗試訪問系統。沒問題,系統現在是可以訪問的。
ssh [email protected]
由於已經有一個子介面關閉,你現在在 bond0
上只能看到 10 Gbps 的速度。
ethtool bond0 | grep -i speed
Speed: 10000Mb/s
現在,我們再次查看綁定介面的狀態。可以看出,只有一個子介面處於活躍狀態。
cat /proc/net/bonding/bond0
測試用例-3:
我們來關閉第二個子介面,並進行類似測試用例-2 的測試:
ifdown ens224
Device 'ens224' successfully disconnected.
結語
我希望你已經掌握了在 RHEL 上配置 LACP 綁定的方法。
在本教程中,我們為你展示了在 RHEL 系統配置網路綁定或網卡聚合的最簡單方式。
如果你有任何疑問或者反饋,歡迎在下面留言。
(題圖:MJ/939f6ba6-eb46-480d-8879-3a422c7425d2)
via: https://www.2daygeek.com/configure-network-bonding-nic-teaming-rhel/
作者:Jayabal Thiyagarajan 選題:lujun9972 譯者:ChatGPT 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive