Runbook: FEC エラーが多発する¶
実行前提
config interface fec / config interface speed で FEC mode や speed を変更すると当該ポートが down → 再 up し、リンク学習に数秒~数十秒かかる。LAG メンバーや ECMP path の最後の 1 本でないことを確認し、対向側と FEC モード・speed を必ず揃えてから一致タイミングで変更する。誤設定でリンクが上がらなくなった場合は config interface fec <if> <旧モード> で即時戻す(CONFIG_DB のみの変更で再起動は不要)。
症状¶
show interfaces counters errorsでRX_ERR/SYMBOL_ERRが継続的に増加- リンク自体は UP するが、BER が高く上位プロトコル(BGP / LACP)が flap
show interfaces fec statsでFEC_PRE / FEC_POSTのカウンタが急増
想定原因¶
- 両端の FEC モード不一致 (
rs/fc/noneの三択)。100G/400G ではrsが必須なのに片側none - 物理層異常: 光ファイバ汚れ、MPO 並び順誤り、SFP 故障、コネクタの曲がり
- 対応していない / 互換性のない光モジュール: ベンダーが platform.json の許容リストに無い品
- ケーブル長と DAC/AOC 規格不一致 (例: 5m 銅 DAC を 100G-DR で使う等)
- port speed のミスマッチ: auto-neg disable + speed 強制で対向と不一致
切り分け手順¶
flowchart TD
A["FEC corrected/uncorrected が増える"] --> B{FEC モードが対向と一致?}
B -- No --> B1["両端で同じ FEC (RS/FC) を設定"]
B -- Yes --> C{"DOM 値 (Rx power / temp) 正常?"}
C -- No --> C1["光学パワー / 温度 / SFP 交換"]
C -- Yes --> D{特定 lane 偏在?}
D -- Yes --> D1["ケーブル / コネクタを交換"]
D -- No --> E["SDK driver ログ / platform.json 速度設定確認"]
確認コマンド¶
1. FEC モード確認¶
show interfaces fec status
sonic-db-cli CONFIG_DB hget "PORT|Ethernet0" fec
sonic-db-cli APPL_DB hget "PORT_TABLE:Ethernet0" fec
- 期待: 両端で一致 (
rs推奨 for 100G+) - 異常: 片側のみ
none→ 即時不一致
2. エラーカウンタの内訳¶
RX_ERR、SYMBOL_ERR、UNDER_SIZE、JABBERのどれが伸びているかを切り分ける- 期待: idle 時に増加しない
- 異常: 秒単位で増加 → 物理層の問題が濃厚
3. Transceiver / DOM の読み取り¶
show interfaces transceiver eeprom Ethernet0
show interfaces transceiver presence Ethernet0
show interfaces transceiver lpmode Ethernet0
- 期待: 適切な vendor / part number、
Rx Powerが規格内 - 異常:
Rx Powerが-40dBm等異常値 → ファイバ汚れ・断線
4. SDK / Driver ログ¶
sudo grep -iE "fec|crc|symbol" /var/log/syslog | tail -100
docker logs syncd 2>&1 | grep -iE "fec|err" | tail -50
5. platform.json の対応速度 / FEC 確認¶
- 異常: 設定中の speed が
support_speedsに無い → サポート外組み合わせ
対処方法¶
- FEC モード合わせ:
config interface fec Ethernet0 rsを両端で実行 - 一時的に
noneで flap を止めて切り分け(恒久対策ではない) - 光モジュールの清掃 / 交換(業界推奨ツールで PC/UPC 端面清掃)
- DAC 長と速度の組み合わせ表を再確認し、規格適合品に交換
- platform.json の
support_speedsを超えた設定を巻き戻し:config interface speed Ethernet0 <support範囲>
関連ページ¶
- ../../topics/14-platform-port-optics/operations.md
- ../../topics/14-platform-port-optics/concept.md
- ../cli/config-interface.md
- ../cli/show-interfaces.md
- ../config-db/port.md
引用元¶
-
sonic-net/sonic-platform-daemons @ 4305596 — xcvrd / DOM 監視 ↩
-
sonic-net/sonic-swss @ 4305596 — portsorch ↩