404 Not Developer DNSサーバ云々で笑われてるので(´・ω・`)
以下は個人的なメモ書き程度に。というか他の記事もそうだけどw
- pdnsdでDNSキャッシュ - Linux Home Server Memo - 自宅サーバ
- すみっこのメモ - pdnsdのメモ
- pdnsd
- DNSラウンドロビン
Infology: pdnsd でローカルの名前解決 - resolvconfと連携
nDiki: pdnsd - 例によってPHS接続用に WWWOFFLE を設定 (2005-08-02)
数台しかないPCのプライベートネットワークだとhostsに名前を書くと名前解決にはなるけど
互いのPCから名前でアクセスしようとするとその台数分hostsを書かないといけないし
台数が増えなくても今回のようにOS増やしたりする度にhosts書くのも軽くイラッとする。
そこでpdnsdを入れてものぐさしてみる
このpdnsdは本来DNSキャッシュサーバーだけど、/etc/hostsとかもDBに加えてくれるので 1度hostsを書いておくと、LAN上のPCをここにアクセスさせるだけでLANの名前も引いてくれるし外部の名前解決も心持速くなるというわけ。
■インストール
aptitude install pdnsd dnsutils
- dnsutilsはdig等のコマンドの為にインストール
Debianなら最初から入ってるかもしれない。
■設定
/etc/pdnsd.conf
■global
global {
perm_cache=2048;
cache_dir="/var/cache/pdnsd";
max_ttl=604800;
run_as="pdnsd";
paranoid=on;
# next setting allows ppp/ip-up update the name servers -- ABa / 20040213
status_ctl=on;
server_port=53;
server_ip="192.168.1.2";
# server_ip="eth0";
}
- perm_cache
キャッシュサイズ、でもここ変えてもメモリ上もHDD上も変化しないんだけど。。w - max_ttl
最大保持期間 - run_as
pdnsdを動かすユーザー名 - server_ipとserver_port
pdnsdの待ちうけipとポート
インターフェイス名でも可
■外部アクセスするDNS
server {
ip=218.219.xx.xx,218.219.xx.xx;
timeout=30;
interval=300;
uptest=query;
ping_timeout=300;
purge_cache=off;
}
- ip=
ISPのDNSなどを。
プライマリとセカンダリなら設定も同じでいいだろうし、カンマ(,)でつなげて書く。 - timeout=やinterval=
↑は適当な数字に、デフォでもいいと思う。 - uptest=
デフォルトのuptest=pingはトラブルの元になるっぽい
noneもだめと書いてるところもあるのでDOCを読むとqueryが1番無難な感じ。
■LANの名前解決用
source {
ttl=86400;
owner="localhost.";
# serve_aliases=on;
file="/etc/hosts";
}
デフォルトのままでいいかな。
■resolv.conf
vi /etc/resolv.conf nameserver 192.168.1.2
待ち受けIPと同じIPに。(globalのserver_ip="192.168.1.2";)
■hosts
vi /etc/hosts127.0.0.1はもちろん、LAN上のPCを加筆しておく。
DNSキャッシュとLAN用のDNSならここまで。
その他resolvconfパッケージと連携させたり鯖の外部用ドメインでルーター内からもアクセスできるようにしたり DNSラウンドロビンさせたりとか、設定が簡単な割りに多機能。
導入の効果は、LAN上のクライアントはDNSが192.168.1.2と統一になるので楽チンなのとhosts書かなくてもいいというものぐさにはぴったり。
ただ、本来のキャッシュの方は日本国内だと普通にアクセスしても、40msecとかの反応が2msecとなっても。。
38msec= 0.038秒速くなっても。。w
もっというと2msecはメモリ上にあるときなので、HDDからの読み込みだと25msecだから0.015秒だ。
違いの判る男になりたいぜ。
ただ海外だと
# dig motorsport.com ; <<>> DiG 9.3.4 <<>> motorsport.com (略) ;; Query time: 497 msecが25msecや2msecになるわけだから少しは体感あるかも。
追記
hostsも読み込むと思ってたけど,localhostからしか扱えない?っぽい
でも各PCでhostsを書かなくても、ローカルネットワークにあるPCのPC名で引けるので、元々の目的は果たしてるし、もうまんたい。


