コンテンツにスキップ

MUX_CABLE テーブル

概要

Dual-ToR (active-active / active-standby) 構成で各 server-facing port に紐付く mux cable の状態と接続先サーバ情報を保持する1linkmgrd (docker-mux) と orchagentMuxOrchCONFIG_DB を購読する。

データフロー (自動生成)

flowchart LR
  CDB[("CONFIG_DB<br/>MUX_CABLE")]
  DM["MuxOrch"]
  CDB --> DM
  SAI["SAI<br/>sai_neighbor_api"]
  DM --> SAI

凡例

CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。

key 構造

MUX_CABLE|<ifname>

<ifname>PORT.name への leafref。

主要フィールド

フィールド 既定 説明
cable_type enum active-active/active-standby active-standby DualToR ケーブル種別
prober_type enum hardware/software software linkmgrd の ICMP prober モード
neighbor_mode enum prefix-route/host-route host-route MUX neighbor 経路モード
server_ipv4 ipv4-prefix - サーバ IPv4 アドレス
server_ipv6 ipv6-prefix - サーバ IPv6 アドレス
soc_ipv4 ipv4-prefix - SoC IPv4 (active-active 限定)
soc_ipv6 ipv6-prefix - SoC IPv6 (active-active 限定)
state enum auto/manual/detach/active/standby auto MUX 状態。auto は自動 failover

購読者

  • linkmgrd (docker-mux): ICMP prober を駆動して state を更新、MUX_CABLE_TABLE (APPL_DB) と STATE_DB 反映
  • orchagentMuxOrch: SAI tunnel encap / route programming で active/standby 切替

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: PEER_SWITCHTUNNEL (DualToR の MuxTunnel0)、PORT
  • 関連 CLI: config muxcable mode/active/standby/autoshow muxcable
  • 関連 YANG: sonic-mux-cablesonic-tunnelsonic-peer-switch

関連リファレンス

引用元

関連 Topics

運用ヒント

典型値

  • key 形式: MUX_CABLE|Ethernet0(dual-ToR の Active-Standby 用)。
  • state: auto / active / standby / manual
  • server_ipv4 / server_ipv6: ぶら下がるサーバ IP。
  • soc_ipv4: SmartCable SoC IP。

よくある誤設定

  • state: manual のまま放置すると linkmgrd が自動フェイルオーバしない。
  • ToR 間で server_ipv4 が不一致だと両 ToR が active になり tunnel ループ。

確認コマンド

sonic-db-cli CONFIG_DB hgetall 'MUX_CABLE|Ethernet0'
sonic-db-cli STATE_DB hgetall 'MUX_CABLE_TABLE|Ethernet0'
show mux status
show mux config

例外条件・特殊挙動

  • cable_type が不正値 → YANG が拒否: enum { active-active; active-standby; } のみ許可。デフォルト active-standby
  • prober_type が不正値 → YANG が拒否: enum { hardware; software; } のみ許可。デフォルト software
  • neighbor_mode が不正値 → YANG が拒否: enum { prefix-route; host-route; } のみ許可。デフォルト host-route
  • state が不正値 → YANG が拒否: enum { auto; manual; detach; active; standby; } のみ許可。デフォルト autoauto モードではリンクプローバの判断で自動切替、manual は手動固定。
  • server_ipv4 の形式不正 → YANG が拒否: type inet:ipv4-prefix。不正な IPv4 プレフィックスは YANG バリデーションで拒否される。
  • MUX_CABLE エントリが存在しない場合: linkmgrd は当該インターフェースに対して mux 管理を行わない。

値依存挙動マトリクス

フィールド 挙動
state auto (default) ICMP prober の判断で active/standby を自動決定。フェイルオーバも自動
state active 当該 ToR を強制 active。linkmgrd が MUX を active 側に固定
state standby 当該 ToR を強制 standby。トラフィックをピア ToR 経由に迂回
state manual 自動フェイルオーバ無効。現在の active/standby 状態を維持
state detach active-active 専用。NIC から ToR を論理的に切り離し。active-standby では WARN + 無視
cable_type active-standby (default) ActiveStandby ステートマシン選択。ICMP prober で片系のみ active
cable_type active-active ActiveActive ステートマシン選択。両 ToR が active。soc_ipv4 が必要
prober_type software (default) linkmgrd が ICMP パケットをソフトウェアで生成・送信
prober_type hardware xcvrd 経由でハードウェア MUX に probe を委譲
neighbor_mode host-route (default) サーバ IP を /32 (/128) host route として処理
neighbor_mode prefix-route サーバ IP を prefix-based route として処理。動的変更は muxorch で WARN (再起動が必要)