コンテンツにスキップ

Runbook: DASH ENI が admin_state=up に遷移しない / トラフィック断

実行前提

dash 系の orchagent 再起動や config reload は DPU 側 datapath のフロー table を消失させる。実行前に SDN controller 側で session migration を実施し、変更前の DASH_ENI_TABLE / DASH_ROUTE_TABLEredis-dump で退避しておくこと。ロールバックは退避から redis-cli で再投入。

症状

  • show dash eni <eni>oper_status=down または admin_state=down
  • DASH_ENI_TABLE:STATE_DB の counter が更新されない
  • VM → DPU → outside の VNET 通信が無応答

想定原因(優先度順)

  1. MAC / underlay_ip 不整合: ENImac_address / underlay_ipSmartSwitch の物理構成と合っていない
  2. 依存リソース未作成: DASH_VNET / DASH_APPLIANCEENI より後に作られた / 削除された
  3. DPU 側 dataplane 異常: DPU 内 ASIC programming が失敗
  4. License / capability mismatch: model がサポートしない ENI count
  5. route / mapping table 衝突

切り分け手順

flowchart TD
    A[DASH ENI が Down] --> B{DASH_ENI_TABLE 設定あり?}
    B -- No --> B1[DASH ENI / VNI / ACL 設定を投入]
    B -- Yes --> C{swss DashOrch で ASIC 反映?}
    C -- No --> C1[swss / dashorch ログを確認]
    C -- Yes --> D{underlay 到達性 / VxLAN tunnel?}
    D -- No --> D1[underlay routing / tunnel src/dst 確認]
    D -- Yes --> E[DPU データプレーン / SAI DASH counter 確認]

確認コマンド

1. CONFIG_DB / APPL_DB

sonic-db-cli CONFIG_DB hgetall "DASH_ENI_TABLE|<eni>"
sonic-db-cli APPL_DB keys "DASH_ENI_TABLE:*"
sonic-db-cli STATE_DB hgetall "DASH_ENI_TABLE|<eni>"

2. orchagent ログ

docker logs swss 2>&1 | grep -iE "dash|eni" | tail -200

3. DPU 側状態(SmartSwitch)

show chassis modules status
show platform inventory
docker exec swss redis-cli -n 0 keys "DASH_*" | head

4. 関連リソース

sonic-db-cli CONFIG_DB keys "DASH_VNET|*"
sonic-db-cli CONFIG_DB keys "DASH_APPLIANCE|*"
sonic-db-cli CONFIG_DB keys "DASH_ROUTE_TABLE|*"

5. counter

show dash counter eni <eni>

対処方法

  • 依存欠如: 先に DASH_APPLIANCEDASH_VNETDASH_ENI_TABLE の順に投入
  • MAC / IP 不整合: controller 側 inventory と突合、CONFIG_DBredis-cli hset で修正(ロールバック: 退避値で hset 戻し)
  • DPU dataplane 異常: SmartSwitch の DPU を graceful shutdown → 再起動(smartswitch-dpu-graceful-shutdown-failure.md を参照)
  • 容量超過: ENI 数を削減、ベンダ提供の max_eni を確認

確認

対処後の正常化を以下で裏取りする。

  • 症状解消: 「症状」節で挙げた事象 (counter / log / state) が回復していること
  • 再発監視: 数分〜数十分の間隔で同コマンドを再実行し、値がフラップしていないこと
  • 副作用なし: 関連サブシステム (syslog / show interfaces counters errors / show ip bgp summary 等) に新規 error が出ていないこと
  • 永続化: sudo config save -y 済みで config_db.json に変更が反映されていること (恒久対処の場合)

短時間で再発する場合は「想定原因」リストの次候補に進む。

関連ページ

引用元

本ページの根拠は引用元 12 を参照。


  1. sonic-net/sonic-dash-api @ master — dash_eni.proto 

  2. sonic-net/sonic-swss @ master — dashorch.cpp