症状
およそ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側の謎仕様によるものの可能性が高い…?