アカウント名:
パスワード:
たとえばgoogleがhogehoge.comみたいなドメインをchrome用に取得して、[ランダム文字列].hogehoge.comみたいな問い合わせをすればいい
DNSの仕組み的に、そんなのは意味がないですよ。
foo.hogehoge.com のIPアドレスを知りたい場合の、名前解決(IPアドレス取得)の流れは1. foo.hogehoge.com についてルートサーバに問い合わせる → [.com を管理するDNSサーバ]に問い合わせるよう応答が返ってくる2. foo.hogehoge.com について[.comを管理するDNSサーバ]に問い合わせる → [hogehoge.com を管理するDNSサーバ]に問い合わせるよう応答が返ってくる3. foo.hogehoge.com について[hogehoge.comを管理するDNSサーバ]に問い合わせる → foo.hogehoge.com のIPアドレスが返ってくるとなります。この後、別の bar.hogehoge.com について問い合わせる場合、また1のルートサーバーへの問い合わせからやりなおし。「同じhogehoge.comだからいきなり3に問い合わせればいいや」とはなりません。
まったく同じホスト名を再度問い合わせるなら、キャッシュすることで無駄な問い合わせは減らせられますが、ランダムな場合は都度ルートサーバへの問い合わせが発生しますので、ごく一部のランダム文字列クエリが、ルートサーバへの問い合わせの半分近くを占める、というのはいかにもな状況です。
ルートサーバへのクエリを防ぐ方法ですが、通常はブラウザが直接ルートサーバなどに問い合わせたりせず、「問い合わせに対して、上記1~3のクエリを実施してその最終結果を返す」ような「リゾルバ」DNSサーバに対してブラウザは問い合わせるので、・ブラウザの問い合わせ先のDNSサーバを、Google管理下の 8.8.8.8 などを使うようにする・8.8.8.8のサーバは、hogehoge.com の情報を返すスレーブサーバにしておくとかすれば、ルートサーバへのクエリを減らすことができますが、
そもそも、今回の問題のクエリ挙動を行う理由が、リゾルバとして指定されたDNSサーバがNXDOMAINハイジャックしているかどうかの確認のため、ですので、8.8.8.8 に問い合わせるようにする時点で、そもそもランダムクエリは不要です…
>「同じhogehoge.comだからいきなり3に問い合わせればいいや」とはなりません。
手元の unbound で tcpdump した範囲だと、ちゃんと中間のNSレコードはキャッシュされ、ルート問い合わせは発生してないよ?
> ちゃんと中間のNSレコードはキャッシュされ、ルート問い合わせは発生してない
そうでしたか。すみません、何か勘違いしていたようです。
…とすると、ルートサーバへの問い合わせが出るということは、TLDを乱数生成してるってことですかね…なんて無茶を…
TLDというか、ピリオド一切含まない7〜15文字のランダムなアルファベット列でリクエスト飛ばすっぽい。Privoxy使ってんだけどたまにホスト名解決失敗のログが湧いてきて大分鬱陶しい。
ISPや企業や大学ではDNSリゾルバサーバのキャッシュを十分にチューニングしなければならぬと言うわけですね
御高説のところ申し訳ないけど
> 8.8.8.8 に問い合わせるようにする時点で、そもそもランダムクエリは不要です…
8.8.8.8がハイジャックされてないかどうかはどうやって確認するんですか?
そしたら、Google が検索キーワードを暗号化して傍受しているって悪評が立つでしょ。意識高い人たちがドメインをブロックして検索が機能しなくなったら、抱合せだって騒ぐでしょ。Google に依存させてはうまくいかなくなることもあるんだよ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
google管理のサブドメインにすればいい (スコア:0)
たとえばgoogleがhogehoge.comみたいなドメインをchrome用に取得して、
[ランダム文字列].hogehoge.com
みたいな問い合わせをすればいい
Re:google管理のサブドメインにすればいい (スコア:1)
DNSの仕組み的に、そんなのは意味がないですよ。
foo.hogehoge.com のIPアドレスを知りたい場合の、名前解決(IPアドレス取得)の流れは
1. foo.hogehoge.com についてルートサーバに問い合わせる → [.com を管理するDNSサーバ]に問い合わせるよう応答が返ってくる
2. foo.hogehoge.com について[.comを管理するDNSサーバ]に問い合わせる → [hogehoge.com を管理するDNSサーバ]に問い合わせるよう応答が返ってくる
3. foo.hogehoge.com について[hogehoge.comを管理するDNSサーバ]に問い合わせる → foo.hogehoge.com のIPアドレスが返ってくる
となります。
この後、別の bar.hogehoge.com について問い合わせる場合、
また1のルートサーバーへの問い合わせからやりなおし。
「同じhogehoge.comだからいきなり3に問い合わせればいいや」とはなりません。
まったく同じホスト名を再度問い合わせるなら、キャッシュすることで無駄な問い合わせは減らせられますが、
ランダムな場合は都度ルートサーバへの問い合わせが発生しますので、
ごく一部のランダム文字列クエリが、ルートサーバへの問い合わせの半分近くを占める、
というのはいかにもな状況です。
ルートサーバへのクエリを防ぐ方法ですが、
通常はブラウザが直接ルートサーバなどに問い合わせたりせず、
「問い合わせに対して、上記1~3のクエリを実施してその最終結果を返す」ような「リゾルバ」DNSサーバに対してブラウザは問い合わせるので、
・ブラウザの問い合わせ先のDNSサーバを、Google管理下の 8.8.8.8 などを使うようにする
・8.8.8.8のサーバは、hogehoge.com の情報を返すスレーブサーバにしておく
とかすれば、ルートサーバへのクエリを減らすことができますが、
そもそも、今回の問題のクエリ挙動を行う理由が、
リゾルバとして指定されたDNSサーバがNXDOMAINハイジャックしているかどうかの確認のため、ですので、
8.8.8.8 に問い合わせるようにする時点で、そもそもランダムクエリは不要です…
Re:google管理のサブドメインにすればいい (スコア:1)
>「同じhogehoge.comだからいきなり3に問い合わせればいいや」とはなりません。
手元の unbound で tcpdump した範囲だと、ちゃんと中間のNSレコードはキャッシュされ、ルート問い合わせは発生してないよ?
Re:google管理のサブドメインにすればいい (スコア:1)
> ちゃんと中間のNSレコードはキャッシュされ、ルート問い合わせは発生してない
そうでしたか。すみません、何か勘違いしていたようです。
…とすると、ルートサーバへの問い合わせが出るということは、TLDを乱数生成してるってことですかね…なんて無茶を…
Re: (スコア:0)
TLDというか、ピリオド一切含まない7〜15文字のランダムなアルファベット列でリクエスト飛ばすっぽい。
Privoxy使ってんだけどたまにホスト名解決失敗のログが湧いてきて大分鬱陶しい。
Re: (スコア:0)
ISPや企業や大学ではDNSリゾルバサーバのキャッシュを十分にチューニングしなければならぬと言うわけですね
Re: (スコア:0)
御高説のところ申し訳ないけど
> 8.8.8.8 に問い合わせるようにする時点で、そもそもランダムクエリは不要です…
8.8.8.8がハイジャックされてないかどうかはどうやって確認するんですか?
Re: (スコア:0)
そしたら、Google が検索キーワードを暗号化して傍受しているって悪評が立つでしょ。
意識高い人たちがドメインをブロックして検索が機能しなくなったら、抱合せだって騒ぐでしょ。
Google に依存させてはうまくいかなくなることもあるんだよ。