WindowsXP HomeEditionでローカルDNS
米Google、「Google Public DNS」を公開 | スラド IT
のコメントで、
と、ここまで書いたところで「ローカルでDNSサーバを立てた上で、8.8.8.8 に forward する」のが最強な気がしました。
…早速実験。FreeBSD-7.2-RELEASE/bind 9.6 で、named.conf の options に forwarders { 8.8.8.8; }; を追加。% dig www.freebsd.org @192.168.x.x
1回目: ;; Query time: 49 msec
2回目: ;; Query time: 1 msecうむ。なかなか良さそう。
http://slashdot.jp/it/comments.pl?sid=477173&cid=1684344
とあり、こりゃすげぇ、と思ってちょっと試してみることにした。
DNSは普通にBIND9を使用。
named.confはこんな感じ。
acl TRUST { 127.0.0.1; }; options { directory "C:\WINDOWS\system32\dns\etc"; forwarders { 8.8.8.8; 8.8.4.4; }; allow-recursion { TRUST; }; allow-query-cache { TRUST; }; }; // rndc controls { inet 127.0.0.1 allow { localhost; } keys { rndc-key; }; }; // private key include "C:\WINDOWS\system32\dns\etc\rndc.key"; // log logging { channel default-log { file "C:\var\log\named.log" versions 5 size 1m; severity info; print-time yes; print-category yes; }; category lame-servers { null; }; category default { default-log; }; }; zone "." IN { type hint; file "named.root"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; };
rndcとログのあたりは参考にしたサイトを真似ただけなんだけど、別に必要ない気もする。
アクセス権の設定でちょっと戸惑ったけどなんとかうまくいった。WinXP ProとHomeでこんなとこに違いがあるとは。cmd.exeで、次のようにnamedユーザにアクセス権を与える。
cd C:\WINDOWS\system32\dns cacls etc /e /g named:f
フルコントロールは過剰かなぁ……
digして見ると、ローカルキャッシュが効いてるのがわかる。0msec
>dig www.freebsd.org @localhost ;; Query time: 62 msec # 1回目 ;; Query time: 15 msec # 2回目 ;; Query time: 0 msec # 3回目
これ以降は15msecと0msecがランダム。15msec単位で時間の判定(というか割り込み発生)をしているのだろうか。
とにかくこれでDNS解決はかなり速くなったことだろう。目に見えるほどブラウジングが速くなるわけではないけど、塵も積もればって感じかな。BINDの練習にもなったし良かった。
参考サイト:
DNS(BIND)の設定(Windows編)
BINDの設定 named.conf
http://www.isokiti.tv/~isobetti/sabakan/index.php?e=177
Windowsにbindをインストールし、DNSサーバを構築しようと試みたのですが、... - Yahoo!知恵袋
フォルダのプロパティに「セキュリティ」タブが表示されない
WindowsのcaclsコマンドでACLを編集する:Tech TIPS - @IT