はじめに
このドキュメントでは、C885A-M8サーバでNetplanを使用してLACPを設定する方法について説明します。
背景説明
BMCからは、ネットワーク側で変更を行うことはできません。すべての変更はOSゲストから行う必要があります。
前提条件
使用するコンポーネント
UCS C885A M8ラックサーバ
PID:UCSC-885A-M8-H11
ファームウェアバージョン:1.0.28
Nexus 9000スイッチ
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モードでないことを確認します。
正しく機能するように、NICがDPUモードになっていないことを確認します。NICがDPUモードの場合、Link Aggregation Control Protocol(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 IDを使用して、次のいずれかのコマンドで現在の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\)に設定されます。
これは、NICが現在DPUモードで動作しており、LACP設定に進むためにNICモードに変換する必要があることを示します。
ステップ3:NICモードへの変換
NICを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)を使用して、ホストOSを再起動します。
システムがオンラインに戻ったら、前に示したのと同じ検証コマンドを実行して、設定変更が正常に適用されたことを確認します。
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ファイルが1つだけ存在します。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モード |
modeパラメータが802.3adに設定されている |
これはLACPに必要なモードです。他にもボンディングモードはありますが、LACPには適していません |
VLANの設定 |
bond0.2001セクションは、bondを介して複数のVLANを送信するためのサブインターフェイスを作成します。 idフィールドにはVLAN ID(この場合は2001)を指定します。 リンクフィールドは、サブインターフェイス(bond0)を結合インターフェイス(bond0)に関連付けます |
同じYAMLファイルに複数の結合がある場合、正しい結合に正しい構成が適用されます |
IPアドレスとルート |
アドレスフィールドには、VLANのIPアドレスとサブネットマスクを指定します(例:10.10.200.33/27) |
routesセクションでは、このインターフェイスが処理するルートを定義できます。この例には10.10.200.32/27のルートが含まれていますが、このラボセットアップでは冗長ですが、複数のルートを追加する方法を示します |
DNS Servers |
ネームサーバーセクションでは、DNSサーバー(アドレス)と検索ドメイン(検索)を指定できます |
作業環境に基づいてDNSサーバの詳細を指定する必要がある。 |
VLANのMTU |
VLAN設定のmtuフィールドが9000に設定されている |
必要に応じて、VLANごとに異なるMTU値を設定できます |
バージョンフィールド |
ファイルの最後にあるバージョンフィールドを含めて、2に設定できます |
YAMLの構文を維持するために、インデントが2つのスペースで設定されていることを確認してください |
ステップ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と表示され、インターフェイスがアクティブであることを確認します。
- YAMLファイルで指定されているとおりに、mtu値が9000に設定されていることを確認します。
- 両方のインターフェイスに有効なハードウェアアドレス(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
Bonding ModeがIEEE 802.3ad Dynamic link aggregationに設定されていることを確認します。
- LACP active:onは、LACPが有効であることを示します。
- LACP rate:slowは設定されたLACPレートを反映しますが、設定に応じて異なる場合があります。
- スレーブインタフェースを確認する: ens211f0np0とens211f1np1は、bondの下でスレーブインタフェースとして表示できます。
- MIIステータス:upはリンクがアクティブであることを確認します。
- Permanent HW addrの値は、それぞれのインターフェイスのハードウェアアドレスと一致している必要があります。
- 両方のスレーブインターフェイスが同じアグリゲータID(アグリゲータID:1など)に属していることを確認します。
トラブルシューティング
検証結果が期待と一致しない場合:
- Netplan YAML構成ファイルで、エラーまたは欠落したパラメーターがないか確認します。
- アップストリームスイッチでLACPのサポートと設定が適切であることを確認します。
- sudo netplan applyコマンドが正常に完了したことを確認します
Cisco UCS C885A M8ラックサーバデータシート
UCS C885A M8ラックサーバスペックシート