最近になってようやく/etc/resolverを使い始めた話
ドメイン別に利用するネームサーバを使い分けられるやつを便利だなと思いつつ、DNS音痴が故に使えずにいましたが最近になって重い腰を上げましたよという話です。
BINDを軽くは触ったことがありますが本当に浅いところしか触ったことがなく、またTTLの話とかも正確に理解できていない自身があります。
そんなこんなで、ローカル環境とはいえ避けてしまっていたわけですが、いいかげんhostsファイルが邪魔くさくなってきた事もあり、ローカル環境でネームサーバを運用することにしました。
きっかけはすごく簡単に動かしているブログ記事を見かけたからです。macに標準で入っているBINDを動かす手順が書かれていた記事ですが、どの記事だったか忘れました。
とりあえず、ローカル環境だしファイアウォール使って外部からの接続を制限してるから適当にやればいいやという姿勢で。
以下にメモを書いておきますが、自分は本当にDNS音痴なので読む場合はご注意を。
BIND
$ sudo rndc-confgen -a $ cd /var/named $ sudo mv named.ca named.ca.old $ sudo curl ftp://ftp.rs.internic.net/domain/named.root -o named.ca $ sudo cp localhost.zone localhost.zone.orig $ sudo -e localhost.zone $ diff -u localhost.zone.orig localhost.zone --- localhost.zone.orig 2012-02-10 23:12:12.000000000 +0900 +++ localhost.zone 2012-02-10 23:12:39.000000000 +0900 @@ -1,7 +1,7 @@ $TTL 86400 $ORIGIN localhost. @ 1D IN SOA @ root ( - 42 ; serial (d. adams) + 44 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry @@ -9,3 +9,4 @@ 1D IN NS @ 1D IN A 127.0.0.1 +* 1D IN A 127.0.0.1 $ sudo launchctl load -F /System/Library/LaunchDaemons/org.isc.named.plist $ dig @localhost hoge.localhost $ sudo cp localhost.zone local.zone $ sudo -e local.zone $ sudo named-checkzone local local.zone $ sudo cp local.zone ci.zone $ sudo -e ci.zone $ sudo named-checkzone ci ci.zone $ sudo cp ci.zone dev.zone $ sudo -e dev.zone $ sudo named-checkzone dev dev.zone $ sudo cp /etc/named.conf /etc/named.conf.orig $ sudo -e /etc/named.conf $ diff -u /etc/named.conf.orig /etc/named.conf --- /etc/named.conf.orig 2012-02-10 23:27:13.000000000 +0900 +++ /etc/named.conf 2012-02-11 00:19:37.000000000 +0900 @@ -42,6 +42,24 @@ allow-update { none; }; }; +zone "local" IN { + type master; + file "local.zone"; + allow-update { none; }; +}; + +zone "ci" IN { + type master; + file "ci.zone"; + allow-update { none; }; +}; + +zone "dev" IN { + type master; + file "dev.zone"; + allow-update { none; }; +}; + zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; $ sudo named-checkconf /etc/named.conf $ sudo launchctl unload -F /System/Library/LaunchDaemons/org.isc.named.plist $ sudo launchctl load -F /System/Library/LaunchDaemons/org.isc.named.plist $ dig @localhost hoge.local $ dig @localhost hoge.ci $ dig @localhost hoge.dev
resolver
$ sudo install -d -o $(whoami) /etc/resolver $ echo -n nameserver 127.0.0.1 > /etc/resolver/local $ echo -n nameserver 127.0.0.1 > /etc/resolver/ci $ echo -n nameserver 127.0.0.1 > /etc/resolver/dev $ ping hoge.local $ ping hoge.ci $ ping hoge.dev