sdplane リリース

ダウンロード

Ubuntu 24.04 用の Debian パッケージです。libsdplane と sdplane の両方が必要です。

  • libsdplane 0.3.37-121 [deb]
  • sdplane 0.1.3-943 [deb]
  • 設定ファイル(スイッチ構成の最小設定) [sdplane-switch.conf]

前提条件

  • CPU: x86-64-v2 以降(amd64)
  • OS: Ubuntu 24.04 LTS
  • NIC: DPDK 対応 NIC。大抵の NIC は対応しており、Intel や NVIDIA(Mellanox)の NIC も対応しています。その他の NIC は DPDK の対応 NIC 一覧を確認してください。設定で指定した NIC は sdplane が専有するので、管理用の Linux インターフェースは指定しないでください。
  • メモリ: 16GB 以上
  • IOMMU: BIOS で VT-d / AMD-Vi を有効にしてください(vfio-pci ドライバーに必要です)。

インストールと前処理

  1. パッケージをインストールします。sdplane.service が自動で有効になります。

    sudo apt install ./libsdplane_0.3.37-121~ubuntu24.04_amd64.deb \
                     ./sdplane_0.1.3-943~ubuntu24.04_amd64.deb

    依存パッケージとして、DPDK 23.11 のライブラリ(librte-*)、liburcu、libpcap と、推奨パッケージの dpdk(NIC ドライバーや dpdk-devbind.py などのツール)が自動でインストールされます。

  2. ヒュージページを設定します。/etc/default/grub に以下を追加し、grub を更新します。

    GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=8"
    sudo update-grub
  3. 起動時に vfio-pci ドライバーを読み込むようにします。

    sudo cp /etc/sdplane/vfio-pci.conf /etc/modules-load.d/
  4. スイッチ構成の最小設定 sdplane-switch.conf をダウンロードし、/etc/sdplane/sdplane.conf として置きます。set device の PCI アドレスを環境に合わせて書き換えます。PCI アドレスは lspci で確認できます。

    wget https://www.yasuhironet.net/dist/sdplane-switch.conf
    sudo mv sdplane-switch.conf /etc/sdplane/sdplane.conf
    sudo vi /etc/sdplane/sdplane.conf

    ⚠️ 誤って NVMe SSD の PCI アドレスを指定すると、システムが起動しなくなります。PCI アドレスは十分に確認してください。

  5. 再起動すると sdplane が起動します。CLI には telnet で接続します。

    sudo reboot
    telnet localhost 9882

    ⚠️ CLI には認証がありません。9882/tcp は localhost からのみ接続できるようにしてください。

最小構成スイッチの設定

sdplane-switch.conf は、sdplane を4ポートのスイッチとして動かす最小の設定です。

sdplane-switch.conf の構成図

PCI アドレス 01:00.0、01:00.1、02:00.0、03:00.0 に接続されている4つの NIC を vswitch 10 に接続し、4ポートのスイッチとして動作します。

また、vswitch 10 には port-1-00-0 と capture-1-00-0 という2つの tap インターフェースが作成されます。Linux からは、port-1-00-0 で DHCP によりアドレスを取得して ssh を提供したり、capture-1-00-0 で tcpdump を実行してパケットを監視したりできます。

よく使うコマンド

telnet で CLI に接続して実行します。

telnet localhost 9882
show port
各ポートのデバイス(PCI アドレス)、リンク状態、速度、ドライバー、アップタイムを一覧表示します。
show port statistics pps
各ポートの1秒あたりの受信・送信パケット数と、エラー数を表示します。
show thread
各スレッドが動いている lcore、種類(lthread / dpdk)、機能、1秒あたりのループ回数を表示します。
show vswitch
vswitch の VLAN、接続されているポート、router-if と capture-if の tap インターフェースを表示します。

ドキュメンテーション

English | 日本語 | Français | 中文 | Deutsch | Italiano | 한국어 | ไทย | Español