Linux中國

在 RHEL 上配置網路綁定(成組)

網路 綁定 Bonding 成組 Teaming ) 是 Linux 的一項內核特性,它讓我們可以將多個網路介面(例如 ens192ens224)聚合為一個專有的虛擬網路介面,被稱為通道綁定bond0)。這樣做能夠提升吞吐量並增加冗餘備份。

網路綁定一共支持 7 種模式,你可以根據實際需求進行設置。 鏈接聚合控制協議 Link Aggregation Control Protocol (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 的綁定介面文件。依據你的網路情況,你可能需要修改諸如 IPMASK 以及 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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國