簡介
本文檔介紹如何在C885A-M8伺服器上使用Netplan配置LACP。
背景資訊
在BMC中,無法在網路端進行任何修改,所有更改都需要在「作業系統訪客」中完成。
必要條件
採用元件
UCS C885A M8機架式伺服器
產品型號:UCSC-885A-M8-H11
韌體版本:1.0.28
Nexus 9k交換機
Ubuntu 22.04.5 LTS
使用的網絡卡
BlueField-3 P系列DPU 400GbE/NDR VPI雙埠
BlueField-3 E系列SuperNIC 400GbE/NDR單埠
用於OCP 3.0的Intel(R)乙太網路介面卡X710-T2L
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
驗證NIC未處於DPU模式
要確保工作正常,請確認網絡卡未處於DPU模式。當NIC處於DPU模式時,不支援鏈路聚合控制協定(LACP)。如有必要,將其轉換為NIC模式。
步驟 1:確定PCIe地址
運行命令列出所需埠的PCIe地址:
cisco-tac@C885A-M8:~$ sudo mst start
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module - Success
Loading MST PCI configuration module - Success
Create devices
Unloading MST PCI module (unused) - Success
附註:這不是必需的,但有助於在使用mlxconfig進行更改時指定正確的裝置
cisco-tac@C885A-M8:~$ sudo mst status -v
MST modules:
------------
MST PCI module is not loaded
MST PCI configuration module loaded
PCI devices:
------------
DEVICE_TYPE MST PCI RDMA NET NUMA
BlueField3(rev:1) /dev/mst/mt41692_pciconf9 f1:00.0 mlx5_6 net-ens205f0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf8 c5:00.0 mlx5_7 net-ens206f0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf7 a4:00.0 mlx5_11 net-ens208f0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf6 97:00.0 mlx5_10 net-ens207f0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf5.1 91:00.1 mlx5_9 net-ens214f1np1 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf5 91:00.0 mlx5_8 net-ens214f0np0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf4 69:00.0 mlx5_0 net-ens202f0 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf3 4b:00.0 mlx5_3 net-ens201f0 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf2.1 45:00.1 mlx5_2 net-ens214f1np1 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf2 45:00.0 mlx5_1 net-ens211f0np0 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf1 2b:00.0 mlx5_5 net-ens203f0 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf0 09:00.0 mlx5_4 net-ens204f0 0
此命令提供裝置的詳細清單,允許您識別適當的MST和PCI識別符號。
在此場景中,使用NET net-ens214f1np1和NET net-ens211f0np0。
步驟 2:檢查NIC配置
使用識別的MST或PCI識別符號,使用以下命令之一驗證當前的NIC配置:
sudo mlxconfig -d 0000:<PCI_ID> -e q | grep 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
或
sudo mlxconfig -d /dev/<MST_DEVICE> -e q | grep 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
cisco-tac@C885A-M8:~$ sudo sudo mlxconfig -d dev/mst/mt41692_pciconf1 -e q | grep \ 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
Configurations: Default Current Next Boot
INTERNAL_CPU_MODEL EMBEDDED_CPU(1) EMBEDDED_CPU(1) EMBEDDED_CPU(1)
INTERNAL_CPU_OFFLOAD_ENGINE ENABLED(0) ENABLED(0) ENABLED(0)
EXP_ROM_UEFI_ARM_ENABLE True(1) True(1) True(1)
附註:CPU模型和ARM UEFI啟用變數向我們確認卡支援DPU模式
在上方示例中:
對於當前和下次啟動配置,INTERNAL_CPU_OFFLOAD_ENGINE設置為ENABLED\(0\)。
這表示網絡卡當前正以DPU模式運行,需要轉換為NIC模式才能繼續進行LACP配置。
步驟 3:轉換為NIC模式
若要將網絡卡轉換為網絡卡模式,請發出以下命令:
sudo mlxconfig -d 0000:<PCI_ID> s INTERNAL_CPU_OFFLOAD_ENGINE=0
cisco-tac@C885A-M8:~$ sudo mlxconfig -d 0000:45:00.0 s INTERNAL_CPU_OFFLOAD_ENGINE=0
Device #1:
----------
Device type: BlueField3
Name: 900-9D3B6-00SN-A_Ax
Description: NVIDIA BlueField-3 B3240 P-Series Dual-slot FHHL DPU; 400GbE / NDR IB (default mode); Dual-port QSFP112; PCIe Gen5.0 x16 with x16 PCIe extension option; 16 Arm cores; 32GB on-board DDR; integrated BMC; Crypto Disabled
Device: 0000:45:00.0
Configurations: Next Boot New
INTERNAL_CPU_OFFLOAD_ENGINE ENABLED(0) DISABLED(1)
Apply new Configuration? (y/n) [n] : y
Applying... Done!
-I- Please reboot machine to load new configurations.
cisco-tac@C885A-M8:~$ sudo init 0
附註:使用sudo init 0時,關閉主機以確保正確載入配置。
步驟 4:重新啟動並驗證配置
執行sudo init 0命令後,主機系統將關閉。使用底板管理控制器(BMC)重新啟動主機作業系統。
系統重新聯機後,通過運行前面所示的相同驗證命令來驗證配置更改是否已成功應用:
sudo mlxconfig -d 0000:<PCI_ID> -e q | grep 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
或
sudo mlxconfig -d /dev/<MST_DEVICE> -e q | grep 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
如果配置已成功應用,您可以繼續建立所需的埠通道、繫結或LAG配置。
配置LACP
步驟 1:建立新的Netplan配置檔案
在Ubuntu上配置介面的當前標準是Netplan。要開始,請運行以下命令檢查現有的Netplan YAML配置檔案:
ls /etc/netplan/
預設情況下,/etc/netplan/目錄中通常只有一個YAML檔案。Netplan配置檔案使用命名約定##-<相關名稱>.yaml,其中##是介於01和99之間的數字。請考慮在存在衝突時,編號較小的配置檔案會被編號較高的檔案覆蓋。
為了確保您的更改具有永續性和組織性,建議建立一個新的YAML檔案,而不是編輯預設的YAML檔案。如果修改預設檔案,則存在重新引導後更改不會持續的風險。在本指南中,我們將建立一個名為
51-lacp-config.yaml。
要建立新檔案,請使用命令:
sudo nano /etc/netplan/51-lacp-config.yaml
確保檔案編號不會與現有檔案衝突,並使用適當的層次結構來避免意外行為。
以下是用於使用VLAN設定LACP的Netplan YAML配置文件(51-lacp-config.yaml)的示例。
cisco-tac@C885A-M8:~$ cat /etc/netplan/51-lacp-config.yaml
network:
ethernets:
ens211f0np0:
mtu: 9000
ens211f1np1:
mtu: 9000
bonds:
bond0:
mtu: 9000
dhcp4: false
dhcp6: false
interfaces:
- ens211f0np0
- ens211f1np1
parameters:
mode: 802.3ad
mii-monitor-interval: 100
vlans:
bond0.2001:
id: 2001
link: bond0
價值 |
考慮事項 |
備註 |
MTU設定 |
對於ens211f0np0和ens211f1np1,MTU設定為9000。 |
建議將MTU設定為避免將來出現潛在MTU問題所需的最高值。每當提到介面時,一律指定MTU |
LACP模式 |
模式引數設定為802.3ad |
這是LACP所需的模式。存在其他鍵合模式,但不適用於LACP |
VLAN配置 |
bond0.2001部分建立了一個子介面,用於通過繫結傳送多個VLAN。 id欄位指定VLAN ID(本例中為2001)。 鏈路欄位將子介面與繫結介面(bond0)關聯 |
如果您在同一個YAML檔案中有多個繫結,可確保將正確的配置應用到正確的繫結 |
IP地址和路由 |
地址欄位指定VLAN的IP地址和子網掩碼(例如10.10.200.33/27) |
Routes部分允許您定義此介面處理的所有路由。雖然本示例包含用於10.10.200.32/27的路由,但它在本實驗設定中是冗餘的,但演示了如何新增多個路由 |
DNS伺服器 |
nameservers部分允許您指定DNS伺服器(地址)和搜尋域(搜尋) |
需要根據工作環境提供DNS伺服器詳細資訊。 |
VLAN的MTU |
VLAN配置中的mtu欄位設定為9000 |
如果需要,可以每個VLAN設定不同的MTU值 |
版本欄位 |
可以包含檔案末尾的version欄位,並將其設定為2 |
確保用兩個空格縮排以維護YAML語法 |
步驟 2:套用組態
要應用新配置,請運行:
sudo netplan apply
如果遇到許可權警告,請調整檔案許可權:
sudo chmod 600 /etc/netplan/51-lacp-config.yaml
sudo netplan apply
cisco-tac@C885A-M8:~$ sudo netplan apply
** (generate:140701): WARNING **: 17:10:58.313: Permissions for /etc/netplan/51-lacp-config.yaml are too open. Netplan configuration should NOT be accessible by others.
cisco-tac@C885A-M8:~$ ls -l /etc/netplan/
total 16
-rw------- 1 root root 869 Apr 24 14:26 50-cloud-init.yaml
-rw-r--r-- 1 root root 586 Apr 25 17:10 51-lacp-config.yaml
cisco-tac@C885A-M8:~$ sudo chmod 600 /etc/netplan/51-lacp-config.yaml
cisco-tac@C885A-M8:~$ ls -l /etc/netplan/
total 16
-rw------- 1 root root 869 Apr 24 14:26 50-cloud-init.yaml
-rw------- 1 root root 586 Apr 25 17:10 51-lacp-config.yaml
cisco-tac@C885A-M8:~$ sudo netplan apply
驗證
應用Netplan配置並重新啟動系統後,使用命令確認LACP設定是否按預期運行。
1.檢查網路介面詳細資訊
使用以下命令顯示網路介面的狀態:
cisco-tac@C885A-M8:~$ip link show
4: ens211f0np0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 86:a2:e3:01:3d:f2 brd ff:ff:ff:ff:ff:ff permaddr 5c:25:73:3a:9a:fc
altname enp69s0f0np0
5: ens211f1np1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 86:a2:e3:01:3d:f2 brd ff:ff:ff:ff:ff:ff permaddr 5c:25:73:3a:9a:fd
altname enp69s0f1np1
確保介面(ens211f0np0和ens211f1np1)顯示:
- 主裝置設定為bond0,確認它們屬於繫結介面。
- 狀態為UP,確認介面處於活動狀態。
- 確認mtu值已設定為9000(在YAML檔案中指定)。
- 驗證兩個介面是否都具有有效的硬體地址(permaddr)。
2.確認繫結詳細資訊
使用此命令顯示繫結配置並確保LACP正常工作:
cisco-tac@C885A-M8:~$cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v5.15.0-141-generic
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
802.3ad info
LACP active: on
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
Slave Interface: ens211f1np1
MII Status: up
Speed: ****** Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 5c:25:73:3a:9a:fd
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
Slave Interface: ens211f0np0
MII Status: up
Speed: ****** Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 5c:25:73:3a:9a:fc
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
確保繫結模式設定為IEEE 802.3ad動態鏈路聚合:
- LACP活動:on表示已啟用LACP。
- LACP速率:slow反映配置的LACP速率,但它可能因設定而異。
- 驗證從介面:ens211f0np0和ens211f1np1都可顯示為繫結下的從介面。
- MII狀態:up確認鏈路處於活動狀態。
- 永久HW地址值必須與相應介面的硬體地址匹配。
- 確保兩個從介面屬於同一個聚合器ID(例如,聚合器ID:1)。
疑難排解
如果驗證結果不符合預期:
- 檢查Netplan YAML配置檔案是否有錯誤或缺少引數。
- 確保上游交換機上正確LACP支援和配置。
- 確認sudo netplan apply命令已成功完成
思科UCS C885A M8機架式伺服器產品手冊
UCS C885A M8機架式伺服器規格表