MacのDNSを設定

ハマったのでメモメモ。
Macに自前のDNSを設定しようと、/etc/resolv.confにnameserverを追加してみた。

nameserver 172.16.232.131

でも一向に反映されない。digで調べても以前のDNSに問い合わせている。
ネットで調べたところ、Macのresolv.confは仮初めのもので、内部で管理している結果をはき出しているだけみたい。

で、本当に設定するには、「システム環境設定」->「ネットワーク」を開き

DNSサーバの欄に、IPアドレスをカンマ区切りで入れて「適用」を押せばOK。
えらい簡単だ♪


以下は、DNS関連のちょっとしたTips。

特定のドメインだけDNSを切り替える方法

参考:MacOS X でドメイン毎にDNSサーバを切り替える | 胡桃ヶ谷

Macの/etc/resolver以下に、DNSを変更したいドメインと同名のファイルを作成する。
(/etc/resolverディレクトリが存在しない場合は作成する)
中の書式はresolv.confと同じで、問い合わせたいDNSを指定できる。

# mkdir /etc/resolver/
# echo nameserver 192.168.1.1 > /etc/resolver/localnet.intra

この場合、localnet.intraにアクセスすると192.168.1.1のDNSに問い合わせるようになるよ。

DNSのキャッシュをクリアする

参考:試験管のなかのコード :: Mac OS X で DNS キャッシュのクリア

DNSの問い合わせ結果は内部でキャッシュされるため、変更してもすぐに反映されないことがある。
Leopard以降は、次のコマンドでキャッシュをクリアできる。

$ dscacheutil -flushcache