当方、「ZoneMinderと安価なスマートカメラで作る見守り/監視システム」でご紹介したTP-LINKのTapoシリーズを何台か利用しています。この手のスマホアプリで管理する前提で作られた機器は余計な設定は触らせないようにGUIが作りこまれている為、NTPサーバの向き先を自身のルータとすることが出来ませんでした。
OpenWRT上で「Firewall – Custom Rules」に一行追加するだけで外部に向けられたNTP通信を強引にOpenWRTに指定しなおさせることが出来たのでご紹介します。
(再セットアップした際に、既に忘れているであろう自分自身の為の備忘の意味が限りなく強い内容です)
最初に、OpenWRTのオフィシャルドキュメントを見ると、OpenWRTのiptables/ip6tablesのルールは、「基本的にfw3で書くことを推奨」とありますが、今回はnat回りをいじるので 「Firewall – Custom Rules」を使います。
NTPをOpenWRTルータに向ける設定
下記設定は、br-lan.4に属する通信をOpenWRTルータに向けたかったため、環境によって「 br-lan.4 」を「 br-lan」等に変更してください。
iptables -t nat -A PREROUTING -i br-lan.4 -p udp --dport 123 -j DNAT --to <OpenWRTルータのIPアドレス>
上記設定をした後に、時刻が数か月ずれていたTP-LINK tapoシリーズの時刻が全台同期されたことを確認済みです。
OpenWRTの「Firewall – Custom Rules 」について
- コマンドラインやシェルスクリプトも書けるようです。
- コマンドラインが間違っていた場合には無視されます(iptablesの書式エラーとなった場合はiptablesルールに反映されないだけ)。
- 読み込み順はGUIで設定したファイアウォール設定の後である事に注意。(iptables -A INPUT ~~~等とすると、本来は最後にreject all等があった場合、reject allの後にルールが追加されるため、一向に許可されずに???となったりしました)
- 設定先ファイルは「/etc/firewall.user」
- 設定の再読み込みはSSHでログインした「fw3 reload」コマンド実行