在 RHEL 上配置網(wǎng)絡(luò)綁定(成組)

網(wǎng)絡(luò) 綁定Bonding(成組Teaming) 是 Linux 的一項內(nèi)核特性,它讓我們可以將多個網(wǎng)絡(luò)接口(例如 ens192、ens224)聚合為一個專有的虛擬網(wǎng)絡(luò)接口,被稱為通道綁定(bond0)。這樣做能夠提升吞吐量并增加冗余備份。
網(wǎng)絡(luò)綁定一共支持 7 種模式,你可以根據(jù)實際需求進行設(shè)置。鏈接聚合控制協(xié)議Link Aggregation Control Protocol(LACP), 即模式 4(802.3ad)因其支持鏈接聚合與冗余而被廣泛應(yīng)用。
在本篇文章中,我們將引導(dǎo)你學(xué)習(xí)如何在 RHEL 系統(tǒng)中配置網(wǎng)卡(網(wǎng)絡(luò))綁定。
LACP 綁定的前置條件
- 網(wǎng)絡(luò)團隊需要在網(wǎng)絡(luò)交換機的端口上開啟 LACP(802.3ad)來實現(xiàn)鏈接的聚合。
 - 一個 Linux 系統(tǒng)應(yīng)該配備至少兩個網(wǎng)絡(luò)接口。
 - 對于物理服務(wù)器,我們推薦在板載接口與 PCI 接口間進行綁定配置,以避免在主機端的網(wǎng)絡(luò)卡出現(xiàn)單點故障。
 
Bonding 模塊
你可以使用 lsmod 命令來確認你的 Linux 系統(tǒng)是否已經(jīng)加載了 bonding 模塊。
lsmod | grep -i bonding
bonding               12451  0系統(tǒng)應(yīng)該默認已加載。如果未看到,可以運用 modprobe 命令進行加載。
modprobe bonding創(chuàng)建綁定接口
在 /etc/sysconfig/network-scripts/ 路徑下,創(chuàng)建一個名為 ifcfg-bond0 的綁定接口文件。依據(jù)你的網(wǎng)絡(luò)情況,你可能需要修改諸如 IP、MASK 以及 GATEWAY 等值。
vi /etc/sysconfig/network-scripts/ifcfg-bond0TYPE=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"< 如顯示不全,請左右滑動 >
參數(shù)  | 描述  | 
  | 表示設(shè)備是一個綁定主設(shè)備。  | 
  | 綁定模式是 IEEE 802.3ad 動態(tài)鏈接聚合(LACP)。  | 
  | 定義以毫秒單位的 MII 鏈路監(jiān)測頻率,這決定了多久檢查每個從屬鏈路的狀態(tài)一次以尋找失敗的鏈路。  | 
  | 一個設(shè)置項,規(guī)定我們將以何種頻率要求我們的鏈路伙伴每秒鐘發(fā)送 LACPDU。默認為慢,即   | 
配置第一個子接口
修改你希望添加到綁定中的第一個子接口。請根據(jù)你的實際環(huán)境使用合適的接口名。
vi /etc/sysconfig/network-scripts/ifcfg-ens192TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens192
ONBOOT=yes
MASTER=bond0
SLAVE=yes配置第二個子接口
修改你希望添加到綁定中的第二個子接口。請根據(jù)你的實際環(huán)境使用合適的接口名。
vi /etc/sysconfig/network-scripts/ifcfg-ens224TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens224
ONBOOT=yes
MASTER=bond0
SLAVE=yes重啟網(wǎng)絡(luò)服務(wù)
重啟網(wǎng)絡(luò)服務(wù)以激活綁定接口。
systemctl restart network驗證綁定配置
你可以借助 ip 命令 來查看綁定接口以及其子接口的情況??梢钥吹剑?code style="background-color: rgb(231, 243, 237); padding: 1px 3px; border-radius: 4px; overflow-wrap: break-word; text-indent: 0px; display: inline-block;">bond0 現(xiàn)在已啟動并在運行。

查閱綁定接口狀態(tài)
檢查以下文件,你可以看到綁定接口及其子接口的詳細信息。輸出結(jié)果應(yīng)該看起來很不錯,我們能看到諸如綁定模式,MII 狀態(tài),MII 輪詢間隔,LACP 速率,端口數(shù)量等信息。
cat /proc/net/bonding/bond0Ethernet 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容錯/冗余測試
為了驗證容錯性和連接速度,你可以逐個斷開接口,然后檢查服務(wù)器是否仍舊可達。
- 測試用例-1:當(dāng)兩個子接口都啟動并運行時,使用 ethtool 命令 檢查鏈路速度。
 - 測試用例-2:斷開第一個子接口,然后嘗試訪問系統(tǒng)。
 - 測試用例-3:斷開第二個子接口,然后嘗試訪問系統(tǒng)。
 
測試用例-1:
如果你想檢測下連接速度:沒錯,我在 bond0 上看到了 20 Gbps 的速度,因為每個子接口支持 10 Gbps。
ethtool bond0Settings 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:
現(xiàn)在我們將關(guān)閉第一個子接口。
ifdown ens192Device 'ens192' successfully disconnected.通過 ssh 嘗試訪問系統(tǒng)。沒問題,系統(tǒng)現(xiàn)在是可以訪問的。
ssh [email protected]由于已經(jīng)有一個子接口關(guān)閉,你現(xiàn)在在 bond0 上只能看到 10 Gbps 的速度。
ethtool bond0 | grep -i speedSpeed: 10000Mb/s現(xiàn)在,我們再次查看綁定接口的狀態(tài)??梢钥闯?,只有一個子接口處于活躍狀態(tài)。
cat /proc/net/bonding/bond0測試用例-3:
我們來關(guān)閉第二個子接口,并進行類似測試用例-2 的測試:
ifdown ens224Device 'ens224' successfully disconnected.結(jié)語
我希望你已經(jīng)掌握了在 RHEL 上配置 LACP 綁定的方法。
在本教程中,我們?yōu)槟阏故玖嗽?RHEL 系統(tǒng)配置網(wǎng)絡(luò)綁定或網(wǎng)卡聚合的最簡單方式。















 
 
 



 
 
 
 