Ubuntuのdcbコマンド入門:DCBによるロスレスEthernet制御

概要

エンタープライズインフラやAIクラスタ、ストレージネットワーク(RoCEやiSCSIなど)では、パケット破棄を許容しない高スループット通信が不可欠となります。Linuxカーネルには、これを実現するためのイーサネット拡張規格「データセンターブリッジング(Data Center Bridging: DCB)」を統合管理するツールとしてdcbコマンドが備わっています。本ガイドでは、トラフィック制御の中核であるETS(帯域配分)、PFC(優先度ベースのフロー制御)、APP(優先度マッピング)の各サブコマンドを中心に、CLIからの状態確認および設定手法を順を追って解説します。

dcbツールの導入と基本構文・ヘルプの確認

dcbユーティリティは近年のiproute2スイートに標準同梱されているため、まずはAPT経由でパッケージの最新化と導入を行います。

iproute2パッケージのインストール

配置完了後、実行バイナリのパスが正常に解決できるかをwhichコマンドで検証します。

dcbコマンドの実行パス確認

dcb helpを実行すると、コマンドの全体構造および制御可能なサブオブジェクト一覧が出力されます。
⚙️ [主要グローバルオプション]

-j : 実行結果をJSON形式で出力します。
-p : -jオプションと併用し、人間が視認しやすいインデント付きJSON(pretty-print)を表示します。
-N : 指定したネットワークネームスペースにコンテキストを切り替えて処理を実行します。
-b : 定義ファイルまたは標準入力から複数のコマンドを一括バッチ実行します。
-f : バッチ実行の途中でエラーが発生しても中断せず、後続コマンドの処理を続行します。

dcbコマンドのヘルプ表示

検証用ダミーインターフェースの構築とリンク状態確認

実稼働中の物理インターフェースに影響を与えずに操作手順を試すため、dummy0という名前の仮想ダミーデバイスを追加します。

ダミーインターフェースdummy0の作成

生成直後は非アクティブ状態のため、リンクステータスをUPへと引き上げます。

dummy0インターフェースの活性化

ip link showを利用して、インターフェースが稼働状態(<UP,LOWER_UP>フラグ)に遷移し、MACアドレスが割り当てられていることを確認します。

dummy0のリンクステータス確認

アプリケーション優先度(APP)テーブルの構文と確認

DSCP値やTCP/UDPポート番号といったL3/L4トラフィックの属性情報を特定の優先度(Priority)へ紐付けるのがAPPテーブルの役割です。dcb app helpで指定可能な構文仕様を調べます。

dcb appサブコマンドのヘルプ確認

指定したインターフェースに現在定義されているAPPマッピングエントリを照会します。なお、仮想NICやDCBハードウェアオフロード非対応環境では登録済みエントリが存在しないため、出力が空行となるのが仕様通りの動作です。

dummy0のAPPテーブル参照

PFC(優先度ベースフロー制御)およびETS(伝送制御)の検証

ロスレスイーサネット(Lossless Ethernet)の中核技術であるPriority-based Flow Control(PFC, IEEE 802.1Qbb)は、輻輳時に特定の優先度キューに対してのみPAUSEパケットを送信し、バッファオーバーフローを防止します。dcb pfc helpで使用可能なオプションを確認します。

dcb pfcのオプションヘルプ表示

インターフェースごとの優先度別PFC有効化フラグや遅延許容値(delay)の設定状態を取得します。ハードウェアフロー制御をサポートしない仮想デバイス環境では、未適用のため空の結果が返されます。

dummy0におけるPFC設定状態の照会

帯域幅の公平なスケジューリングと優先度グループ分けを制御するEnhanced Transmission Selection(ETS, IEEE 802.1Qaz)のルール定義構文は、dcb ets helpで確認できます。

dcb ets構文ヘルプの表示

トラフィッククラス(TC)へのマッピング状態や帯域幅の割り当て比率を出力します。こちらもDCB対応のハードウェアNICが存在しない環境ではブランク表示となります。

dummy0のETSパラメータ照会

バッファ制御の確認とテスト環境のクリーンアップ

各トラフィッククラスや優先度キューごとに割り当てられるバッファサイズおよび閾値を制御するbufferオブジェクトの仕様をヘルプで確認します。

dcb bufferのヘルプメッセージ

一連の検証作業が完了した後は、一時的に作成したdummy0ダミーインターフェースを削除し、システム構成を元の状態に戻します。

dummy0インターフェースの削除と環境初期化

本記事では、Ubuntu環境でdcbツールを活用し、データセンターブリッジング(DCB)の主要機能群(APP、PFC、ETS、Buffer)を制御・監視するための基礎操作を解説しました。RoCEv2やNVMe-oFといった超低遅延・高帯域ネットワークの設計・構築時に、ぜひこのコマンド体系を活用してください。