こしごぇ(B)

旧:http://d.hatena.ne.jp/koshigoeb/

最近になってようやく/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