bind開発時に別のポートを使う

 bindでの情報を通信するポートは、通常TCPポート53、UDPポート53を使用します。しかしネームサーバー構築時やテスト環境においては本番のポートでテストするのは極力避けたい。そこでテスト環境時において通信ポートを変更する方法です。
 ここでは例として5300のポートを設定する方法を紹介します。

 まずは、ルーターなどの設定でTCP/UDPポート5300を通しておきます。これで外部との通信が5300ポートでできるようになります。
 次に、named.confのoptionステートメント(Ubuntu/Debianの場合は、/etc/bind/named.conf.options内のoptionステートメント)に以下のようにポート番号を指定します。
options {
   listen-on port 5300 { any; };
...
}
ここでの構文は、
listen-on port <ポート番号> { <ネットワーク>; };
という風になっています。このlisten-onはデフォルトでは省略されています。省略している場合はポート53を使うという約束になっています。テスト環境が必要なくなったら削除しても構いませんし、明示的にlisten-on port 53 { any; };で設定しても大丈夫です。
ネットワークの指定は、
127.0.0.1;
192.168.11.0/24;
やグローバルIPアドレス(固定IPアドレス)を指定できます。すべてのネットワークからの通信を許可する場合は、any;を指定してください。また勿論、
options {
   listen-on port 5300 {
      127.0.0.1;
      192.168.11.0/24;
   };
...
}
という風に複数設定することもできます。
設定後は/etc/init.d/bind restartで再起動させておきます。

digコマンドで名前解決のテストをする場合は、
dig @localhost -p 5300 localhost
または、
dig @localhost -p 5300 -x 192.168.11.8
というようにコマンド打ちます。これは、
dig @<名前解決をするホスト> -p <ポート番号> <ドメイン>
dig @<名前解決をするホスト> -p <ポート番号> -x <IPアドレス>
というようになっています。
 ネームサーバー構築時には、既存のネームサーバーが走っていても平行して開発ができるので非常に便利です。








プロフィール



  • Name :: 山上オサム ♂(37)
  • Hobby :: 武術
  • Work :: Web Designer