在 RHEL 上配置網(wǎng)絡(luò)綁定(成組)
網(wǎng)絡(luò) 綁定Bonding(成組Teaming) 是 Linux 的一項(xiàng)內(nèi)核特性,它讓我們可以將多個(gè)網(wǎng)絡(luò)接口(例如 ens192
、ens224
)聚合為一個(gè)專(zhuān)有的虛擬網(wǎng)絡(luò)接口,被稱(chēng)為通道綁定(bond0
)。這樣做能夠提升吞吐量并增加冗余備份。
網(wǎng)絡(luò)綁定一共支持 7 種模式,你可以根據(jù)實(shí)際需求進(jìn)行設(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ò)團(tuán)隊(duì)需要在網(wǎng)絡(luò)交換機(jī)的端口上開(kāi)啟 LACP(802.3ad)來(lái)實(shí)現(xiàn)鏈接的聚合。
- 一個(gè) Linux 系統(tǒng)應(yīng)該配備至少兩個(gè)網(wǎng)絡(luò)接口。
- 對(duì)于物理服務(wù)器,我們推薦在板載接口與 PCI 接口間進(jìn)行綁定配置,以避免在主機(jī)端的網(wǎng)絡(luò)卡出現(xiàn)單點(diǎn)故障。
Bonding 模塊
你可以使用 lsmod
命令來(lái)確認(rèn)你的 Linux 系統(tǒng)是否已經(jīng)加載了 bonding
模塊。
lsmod | grep -i bonding
bonding 12451 0
系統(tǒng)應(yīng)該默認(rèn)已加載。如果未看到,可以運(yùn)用 modprobe
命令進(jìn)行加載。
modprobe bonding
創(chuàng)建綁定接口
在 /etc/sysconfig/network-scripts/
路徑下,創(chuàng)建一個(gè)名為 ifcfg-bond0
的綁定接口文件。依據(jù)你的網(wǎng)絡(luò)情況,你可能需要修改諸如 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"
< 如顯示不全,請(qǐng)左右滑動(dòng) >
參數(shù) | 描述 |
| 表示設(shè)備是一個(gè)綁定主設(shè)備。 |
| 綁定模式是 IEEE 802.3ad 動(dòng)態(tài)鏈接聚合(LACP)。 |
| 定義以毫秒單位的 MII 鏈路監(jiān)測(cè)頻率,這決定了多久檢查每個(gè)從屬鏈路的狀態(tài)一次以尋找失敗的鏈路。 |
| 一個(gè)設(shè)置項(xiàng),規(guī)定我們將以何種頻率要求我們的鏈路伙伴每秒鐘發(fā)送 LACPDU。默認(rèn)為慢,即 |
配置第一個(gè)子接口
修改你希望添加到綁定中的第一個(gè)子接口。請(qǐng)根據(jù)你的實(shí)際環(huán)境使用合適的接口名。
vi /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens192
ONBOOT=yes
MASTER=bond0
SLAVE=yes
配置第二個(gè)子接口
修改你希望添加到綁定中的第二個(gè)子接口。請(qǐng)根據(jù)你的實(shí)際環(huán)境使用合適的接口名。
vi /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens224
ONBOOT=yes
MASTER=bond0
SLAVE=yes
重啟網(wǎng)絡(luò)服務(wù)
重啟網(wǎng)絡(luò)服務(wù)以激活綁定接口。
systemctl restart network
驗(yàn)證綁定配置
你可以借助 ip 命令 來(lái)查看綁定接口以及其子接口的情況。可以看到,bond0
現(xiàn)在已啟動(dòng)并在運(yùn)行。
查閱綁定接口狀態(tài)
檢查以下文件,你可以看到綁定接口及其子接口的詳細(xì)信息。輸出結(jié)果應(yīng)該看起來(lái)很不錯(cuò),我們能看到諸如綁定模式,MII 狀態(tài),MII 輪詢(xún)間隔,LACP 速率,端口數(shù)量等信息。
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
容錯(cuò)/冗余測(cè)試
為了驗(yàn)證容錯(cuò)性和連接速度,你可以逐個(gè)斷開(kāi)接口,然后檢查服務(wù)器是否仍舊可達(dá)。
- 測(cè)試用例-1:當(dāng)兩個(gè)子接口都啟動(dòng)并運(yùn)行時(shí),使用 ethtool 命令 檢查鏈路速度。
- 測(cè)試用例-2:斷開(kāi)第一個(gè)子接口,然后嘗試訪(fǎng)問(wèn)系統(tǒng)。
- 測(cè)試用例-3:斷開(kāi)第二個(gè)子接口,然后嘗試訪(fǎng)問(wèn)系統(tǒng)。
測(cè)試用例-1:
如果你想檢測(cè)下連接速度:沒(méi)錯(cuò),我在 bond0
上看到了 20 Gbps
的速度,因?yàn)槊總€(gè)子接口支持 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
測(cè)試用例-2:
現(xiàn)在我們將關(guān)閉第一個(gè)子接口。
ifdown ens192
Device 'ens192' successfully disconnected.
通過(guò) ssh
嘗試訪(fǎng)問(wèn)系統(tǒng)。沒(méi)問(wèn)題,系統(tǒng)現(xiàn)在是可以訪(fǎng)問(wèn)的。
ssh [email protected]
由于已經(jīng)有一個(gè)子接口關(guān)閉,你現(xiàn)在在 bond0
上只能看到 10 Gbps 的速度。
ethtool bond0 | grep -i speed
Speed: 10000Mb/s
現(xiàn)在,我們?cè)俅尾榭唇壎ń涌诘臓顟B(tài)。可以看出,只有一個(gè)子接口處于活躍狀態(tài)。
cat /proc/net/bonding/bond0
測(cè)試用例-3:
我們來(lái)關(guān)閉第二個(gè)子接口,并進(jìn)行類(lèi)似測(cè)試用例-2 的測(cè)試:
ifdown ens224
Device 'ens224' successfully disconnected.
結(jié)語(yǔ)
我希望你已經(jīng)掌握了在 RHEL 上配置 LACP 綁定的方法。
在本教程中,我們?yōu)槟阏故玖嗽?RHEL 系統(tǒng)配置網(wǎng)絡(luò)綁定或網(wǎng)卡聚合的最簡(jiǎn)單方式。