Runbook: VLAN メンバーを追加してもタグが付かない¶
実行前提
systemctl restart swss は L2 全 forwarding を 5~30 秒中断する(FDB / port / vlan / lag テーブルが orchagent 再生成される間)。実行前に sudo cp /etc/sonic/config_db.json /etc/sonic/config_db.json.bak.$(date +%s) で backup、可能なら redundant ToR 側に traffic を寄せてから実施する。誤設定が原因の場合は backup を戻して config reload -y でロールバック。
症状¶
config vlan member add実行後、通信は流れるがフレームのタグが期待と異なるshow vlan briefには正しく見えるのに、対向側 capture でタグなし(untagged)- 想定: tagged で追加したのに untagged になっている、あるいは逆
想定原因¶
add時に-u(untagged) フラグの付け忘れ / 余計: デフォルトは tagged 動作- 既存の Untagged VLAN 多重設定: ポートが既に別 VLAN の untagged member であるため新規 untagged 追加に失敗(silently fallback)
- VLAN_MEMBER の
tagging_modeがpriority_taggedになっている: 0 priority tag 付与で意図と違う動作 - 対向側がトランクではなく access ポート: 自機側が tagged 送出しても対向で drop / strip
- PortChannel メンバーに対する add 操作: 物理ポートではなく LAG 名で追加する必要がある
切り分け手順¶
flowchart TD
A["VLAN tag が想定外 (tagged/untagged 違い)"] --> B{VLAN_MEMBER の tagging_mode?}
B -- 誤 --> B1["tagging_mode を tagged/untagged に修正"]
B -- 正 --> C{"trunk/access port の対向設定一致?"}
C -- No --> C1["対向側 trunk allow / pvid を揃える"]
C -- Yes --> D{native vlan 一致?}
D -- No --> D1[両端 native vlan を統一]
D -- Yes --> E["ASIC ingress/egress VLAN translation を確認"]
確認コマンド¶
1. CONFIG_DB の確認¶
- 期待値:
{"tagging_mode": "tagged"}または"untagged" - 異常:
tagging_modeが存在しない → vlanmgrd が member を取り込んでいない
2. APPL_DB / ASIC_DB への伝搬確認¶
sonic-db-cli APPL_DB hgetall "VLAN_MEMBER_TABLE:Vlan100:Ethernet8"
sonic-db-cli ASIC_DB keys "ASIC_STATE:SAI_OBJECT_TYPE_VLAN_MEMBER:*" | head
- 期待: APPL_DB / ASIC_DB の双方に対応する key が存在
- 異常: CONFIG_DB のみ →
docker logs swss 2>&1 | grep -i vlanmgrで例外を確認
3. 同一ポートの他 VLAN untagged member 検索¶
sonic-db-cli CONFIG_DB keys "VLAN_MEMBER|*|Ethernet8"
for k in $(sonic-db-cli CONFIG_DB keys "VLAN_MEMBER|*|Ethernet8"); do
echo "$k"; sonic-db-cli CONFIG_DB hgetall "$k"
done
- 期待: untagged は最大 1 個
- 異常: 複数 untagged → 後勝ち / 先勝ちは保証されないため整理する
4. Kernel 側 bridge / linux interface の状態¶
- 期待:
Vlan100master、PVID Egress Untaggedがセットされる - 異常: PVID 設定がない → vlanmgrd の反映漏れ。
config save→ swss コンテナ restart
5. キャプチャで実フレーム確認¶
- 0x8100 タグの有無を直接確認する
対処方法¶
- tagged で再登録する場合:
- untagged にする場合は
-u:
- swss / syncd の整合が崩れた疑いがあれば:
sudo config save -y && sudo systemctl restart swss
関連ページ¶
- ../../topics/06-l2-vlan-lag/operations.md
- ../../topics/06-l2-vlan-lag/concept.md
- ../cli/config-vlan.md
- ../cli/show-vlan.md
- ../config-db/vlan-member.md
引用元¶
-
sonic-net/sonic-swss @ 4305596 — vlanmgrd ↩
-
sonic-net/sonic-utilities @ 39732bceb — config vlan member ↩