うちのネットワーク環境は、DNSに難がある。
- ADSLルータにDNSキャッシュ機能があるけど、1ヶ月くらいルータを起動していると固まる
- プロバイダ提供のDNSは回線の混雑具合で問い合わせに時間かかる時がある
今までは、自宅のサーバにdnbdnsの流れをくむdnscacheをインストールしていたのだけど、
- これはこれで長期間起動していると応答がなくなるようだ
- 設定が非常に独特でややこしい。/serviceなんてディレクトリ掘らないといけないし、svscanデーモンを使わないといけない。
ふらふらとネットを見ていたら、pdnsdというDNSキャッシュツールが存在することを知ったのでさっそく入れ替え。gentoo Linux環境なので
emerge pdnsd cd /etc/pdnsd mv pdnsd.conf.sample pdnsd.conf nano -w pdnsd.conf
する。pdnsd.confで変更したのは、
global { perm_cache=2048; server_ip = eth0; # Use eth0 here if you want to allow other # machines on your network to query pdnsd. } server { label= "myisp"; ip = 202.238.95.24; # Put your ISP's DNS-server address(es) here. }
くらい。とりあえず外部DNSはプライマリしか書いていないけど、そのままserverセクションを増やせばセカンダリも指定できる。
あとはLAN内の他のPCからも参照するので、globalのserver_ipは127.0.0.1とせずに、eth0と指定してeth0が持つIPアドレスにした。最後に/etc/resolv.confに
nameserver 192.168.0.22 #eth0 nameserver 202.238.95.24 ....
などとして終了。squidも同じサーバで動いているので、squidが見るDNSサーバもちゃんとpdnsdになっているかを確認。あとは起動と自動起動するようにしておく。
rc-update add pdnsd default /etc/init.d/pdnsd start
digコマンドで試してみると、dnscacheより速い。…と言っても、50msと1msくらいの違いなのだけど。とりあえずこれでまたしばらく様子を見てみよう。
コメント