LoginSignup
2
0

OpenWrtとフレッツ光クロスでwan6の瞬断が発生する問題と解決

Last updated at Posted at 2024-03-08

症状

およそ8時間~ごとにwan6がダウンしてONU側はUNIが一瞬消え、直ぐに再接続する。
ログには'daemon.notice netifd: Interface 'wan6' has lost the connection'.と表示され、再接続が即座に行われる。
切断時間はおよそ3秒~10秒ほど。

仕様

  • 回線:NTT西日本 フレッツ光クロス(マンション)
  • NIC:Intel i225-v

試したこと

  • LANケーブルの交換
  • ONU設置箇所の調整
  • EEE(省電力イーサネット)の無効化
    • これはそもそも対応してなかったっぽい
  • TSO(TCP Segmentation Offload)などの無効化
    • Proxmoxホストからの通信で負荷が高まるとNICが死ぬことがあり、それに対しての効果があったがwanは改善せず。

結論

DHCPv6の不具合(?)っぽい
https://shopage.shooffice.com/entry/2024/01/28/230000
https://github.com/openwrt/openwrt/issues/13454

解決策

下記のGistの内容をOpenWrtの/etc/hotplug.d/iface/内にファイルを作成して追加後、再起動する。
ファイル名は適当につけてヨシ!(自分は70-flets-reloadにしました、拡張子不要。)
https://gist.github.com/missing233/3dafb6ee549ed2271c20bd700b88a9cd

#!/bin/sh
# Place in /etc/hotplug.d/iface/

[ "$INTERFACE" = "wan6" ] || exit 0

CRON_CMD='0 * * * * kill -SIGUSR1 $(pgrep odhcp6c)'

if [ "$ACTION" = "ifup" ]; then
    grep -Fq "$CRON_CMD" /etc/crontabs/root || {
        echo "$CRON_CMD" >> /etc/crontabs/root
        /etc/init.d/cron restart
    }
elif [ "$ACTION" = "ifdown" ]; then
    sed -i "/$(printf '%b' "$CRON_CMD" | sed 's:[\\/.*^$]:\\&:g')/d" /etc/crontabs/root
    /etc/init.d/cron restart
fi

再起動後、OpenWrtのLuciにログインしシステム→スケジュールタスクより
0 * * * * kill -SIGUSR1 $(pgrep odhcp6c)が追加されていることを確認する。
以降は自動でodhcp6cを56して初回更新になるので切断されなくなった。
多分NTT側の謎仕様によるものの可能性が高い…?

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0