2013/10/26

OS X Mavericks では bind が同梱されない

従来OS Xへは、ネームサーバとしてbindが同梱され、/usr/sbin/namedへインストールされていました。

このnamedは、デフォルト状態では/etc/named.confを設定ファイルとして参照するように構成されています。また、そのnamed.confに基づき、ゾーン(ドメイン)レコードは/var/namedへ格納するようになっています。

しかし、OS X Mavericksでは、bindが同梱されなくなりました。また旧版からアップグレードを行うと、/usr/sbin/namedなどのバイナリに加え、/etc/named.confならびに/etc/rndc.key、ゾーン情報格納ディレクトリの/var/namedも除去されます。Mavericksへアップグレードを行う場合、これらファイルを事前にバックアップしておくことをお薦めします。

なお、これらのファイルはTime Machineバックアップの対象になっていますので、万が一除去されてしまった場合には、Time Machine内を探すと良いでしょう。

bindは同梱されなくなりましたが、勿論各自でインストールし、利用することは可能です。例えば HomeBrewを使っている場合、
% brew install bind
のようにインストールすることで、従来通りbindを利用することができます。なお、設定ファイルのデフォルト参照先が旧OS X同梱版とは異なります。例えばbind 9.9.4をインストールした場合、デフォルトの設定ファイルは、
/usr/local/Cellar/bind/9.9.4/etc/named.conf
が利用されます。named.confを移動させるか、-cオプションで任意のファイルを指定すると良いでしょう。

また、OS X Serverをインストールしても、DNSサービスが利用できるようになります。

こちらは、ネームサーバのオン/オフやゾーン情報をGUIで設定でき、bindに馴染みの無い方も簡単に利用することが可能です。なお、iOS Developer Connectionの有料会員はOS X Serverを無料でダウンロードすることが可能です。

OS X Serverのネームサーバアプリケーションには、従来同様bindが使われており、2013/10/26現在、バージョンは9.9.2-P2です。

バイナリは
/Applications/Server.app/Contents/ServerRoot/usr/sbin/
ディレクトリへ格納されます。このbindは、デフォルト設定ファイルとして、
/Library/Server/named/named.conf
を参照するように構成されています。またこのnamed.conf内では、ゾーンレコードも、named.confと同じディレクトリの
/Library/Server/named/
へ格納されるようになっています。レコード数が多い場合などは、従来のレコード情報を、このディレクトリ内ファイルへマージすれば、簡単に移行することができるでしょう。

なお、レコードファイルを機械処理しやすくする為でしょう、例えば、

  • ラベル部に書くホスト部は絶対名で書く(e.g. foo.example.com.)

  • A/PTRへ紐付けられていない情報はGUI上では表示されない

などの制約があるようです。特殊な運用をしていた場合は、少し注意したほうが良いかもしれません。