TP-Linkのwifi中継器RE200の挙動は面白くて、defaultではDHCPサーバが「Auto」設定となっており、起動時DHCPDISCOVERパケットを投げる→返事があったら自分のDHCPサーバを落とす、という動きをします。
この時、probeのためだけにDHCPDISCOVERしているのかと思いきや、ここでDHCPサーバから返ってきたDNSサーバの情報を使って自身の基本的なInternetアクセス設定を行います。逆にWeb UIには明示的な設定がないんですよね。面白い割り切り。
で、去年話題になった「TP-Linkのwifi extenderがやたら高頻度にDNS/NTPサーバアクセスを繰り返している」問題、RE200も該当なので観察してみると、確かに毎秒程度の頻度で6つ程のNTPサーバのFQDNをDNS… https://twitter.com/i/web/status/951977212554625024
で、メインルータのNATトラブルについて、やっぱり実はこのRE200が原因なんじゃないかと思い出したり。と言うのもこいつから毎秒たくさん投げられるDNS/NTPパケットはもちろんUDPなのだけれど、観察する限り毎回ランダムなポートから発射されているように見える。
こういったパケットがインターネット側に向けて投げ続けられると、NATテーブルを埋め尽くしちゃったりしちゃうんじゃないだろうか、と。
そんなわけで改めてLAN内にntpサーバを立てたり(元々おうちサーバ上で動いていたものをLAN側からもアクセス出来るように)、DNS cacheサーバでNTPサーバの名前をおうちサーバへ向くようにしたりして、出来るだけパケットがインターネット側に出ないようにしてみた。
これでちょっと様子を見てみるす。
ところでおうちサーバ上でDNS cacheサーバとして初めて使ってみたUnbound、forward-addrを複数指定しているとラウンドロビン動作になるんですね。ウチの場合出来れば先頭優先の固定優先度挙動の方が良いのですが、そのように振る舞わせるオプションは見当たらず。
Unbound自体はLAN内でDNS cache serverとして使う分には非常に設定が簡単で良かった。muninのグラフもたくさん用意されていて楽しい。
お、手元のMacも、DHCPサーバから複数のDNSサーバのアドレスが返ってきた時、固定優先度ではなくラウンドロビンで使っているようにみえるね。そうか、そういう挙動の方が一般的なのかな…。
ふと、家から使えるpublic DNS serverで早い(近い)のはどれなんだろ?と思ってググってみて、debianにnamebenchというツールがあることを知る。これ面白いね。まぁ単純に早くてもしょっちゅう落ちたりするとツラ… https://twitter.com/i/web/status/952011771384012805
中学生くらいの時だったか、庭で自分の自転車を整備していてペダルのネジを力いっぱい締めたら、途中から急に手応えがなくなり「?」と思った瞬間ポロッと捩じ切れてしまったことがありました。あの時以来、ネジを締める時は必ず手加減するようになった。貴重な学び。
パケット吐きまくるRE200のfirmware updateが来るまでの対応まとめ。
・RE200が問い合わせるNTPサーバのFQDNを全ておうちサーバを向くようにspoofing
・RE200のみdefault routerをお… https://twitter.com/i/web/status/952128082516652032