SRVエントリを設定できるDNSサービスが見当たらないので、外部DNSサーバを自分で立てることにした。
BINDのインストール
Ubuntu Server 9.04をVMware ESXi 4.0にインストール。
(インストール時に[F4]を押して”Install a minimal virtual machine”を選ぶと仮想マシンに最適化される)
パッケージとして「DNS server」を選択すればBIND 9がインストールされる。
BINDの設定
/etc/bind/db.example.com として次のようなファイルを作成。
;
; BIND reverse data file for example.com zone
;
$TTL 604800
@ IN SOA ns1.example.com. root.example.com. (
2009100701 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
IN NS ns2.example.com.
ns1 IN A (自分のグローバルIPアドレス)
ns2 IN A (セカンダリDNSのIPアドレス)
...
/etc/bind/named.conf に次の設定を追加。
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer {
(セカンダリDNSのIPアドレス);
};
};
ここで /etc/init.d/bind9 restart して、設定を確認する。
# apt-get install dnsutils ... # dig @localhost ns1.example.com ; <<>> DiG 9.5.1-P2 <<>> @localhost ns1.example.com ; (2 servers found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54049 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 ;; QUESTION SECTION: ;ns1.example.com. IN A ;; ANSWER SECTION: ns1.example.com. 604800 IN A (自分のグローバルIPアドレス) ;; AUTHORITY SECTION: example.com. 604800 IN NS ns1.example.com. example.com. 604800 IN NS ns2.example.com. ;; ADDITIONAL SECTION: ns2.example.com. 604800 IN A (セカンダリDNSのIPアドレス) ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Oct 7 16:20:45 2009 ;; MSG SIZE rcvd: 98
ルータの設定
DNSサーバはNATの内側に置いたので、「TCP/UDP両方」の53番ポートを転送するようにルータを設定する。
これでプライマリDNSの準備完了。
セカンダリDNSの設定
グローバルIPアドレスが一つしかないので、セカンダリDNSにはマイハマネットさんを使わせていただくことにした。
ユーザ登録して、自分のIPアドレスとドメインを入力。設定がうまくいってれば、ZoneタブのところにプライマリDNSの設定内容が表示される。
ドメインの登録
ドメインはムームードメインで取った。メニューから「ネームサーバ設定変更」を選んで、「取得したドメインで使用する」を選ぶ。
まず、「取得したドメインでネームサーバを登録する場合はこちらをご利用ください。」のリンクをクリックして、プライマリ/セカンダリDNSのIPアドレスを登録。
続いて、下記の通りネームサーバを設定する。これでしばらく待てば、設定したDNSサーバに要求がくるようになる。