Techglimpseを定期的に読んでいる場合は、DNS、そのタイプ、仕組み、権限のあるサーバーと再帰サーバーの違いに関する以前の記事を読んだことがあるかもしれません。また、WindowsおよびLinuxマシンで構成されているDNSサーバーのIPアドレスを特定する方法と、namebenchと呼ばれるベンチマークツールを使用してさまざまなDNSサーバーの速度を分析する方法についても説明しました。今日は、LinuxベースのマシンにBindをインストールして構成する方法を紹介します。
このチュートリアルでは、バインドを使用したDNSサーバーの基本構成を示します。 Bindは、DNSサーバーのセットアップを可能にする無料のパッケージです。バインドの基本的なセットアップでは、RAMが200 MBを消費し、サーバーが本番環境に移行するとき(ゾーンを追加するとき、およびサーバーがクエリを受信するとき)にさらに構成する準備が整います。
以下のような基本的な設定を検討してください。
One machine for setting up the DNS server - I am going to call this machine as 10.180.8.115.
サンプルドメインまたはゾーン–セットアップをテストするためのTechglimpse.com(10.180.3.74)
Authoritative Name server for techglimpse.com will be called as ns1.techglimpse.com
techglimpse.comのサンプルサブドメインは、ftp、www、mailです。
バインドのダウンロードとインストール
Debianベースのマシンでは
apt-get install bind9 dnsutils
CentOs/Fedoraベースのマシンでは
yum install bind dnsutils
注:BindはDNSサーバーですが、dnsutilsには、テストとトラブルシューティングのためのdns関連のコマンドがいくつか含まれています。たとえば、掘ります。
ドメインのゾーンファイルを作成する
前に述べたように、サンプルドメインはtechglimpse.comになります。そのため、そのドメインのゾーンファイルを作成します。そのためには、ゾーンファイルを保存するディレクトリを作成しましょう。
cd /var/named mkdir -p zones/master cd zones/master/
注:私のバインドディレクトリは「/ var / named」ですが、これはセットアップによって変更される可能性があります。たとえば、/ etc / named、/ etc/bindなど…
次に、techglimpse.comのゾーンファイルを作成します。ゾーンの名前は「db.techglimpse.com」になります。 」には、A、MX、CNAMEなどのDNSレコードが含まれます…
vi /var/named/zones/master/db.techglimpse.com
以下のコードを貼り付けてください
; ; BIND data file for techglimpse.com ; $TTL 3h @ IN SOA ns1.techglimpse.com. admin.techglimpse.com. ( 1 ; Serial 3h ; Refresh after 3 hours 1h ; Retry after 1 hour 1w ; Expire after 1 week 1h ) ; Negative caching TTL of 1 day ; @ IN NS ns1.techglimpse.com. techglimpse.com. IN MX 10 mail.techglimpse.com. techglimpse.com. IN A 10.180.3.74 ns1 IN A 10.180.3.74 www IN CNAME techglimpse.com. mail IN A 10.180.3.74 ftp IN CNAME techglimpse.com.
注:ゾーンを設定するには、DNSサーバーを介して解決するすべてのドメインに対して同様のゾーンファイルを作成する必要があります。上記のサンプルゾーンファイルに必要な変更を加えます。
ゾーンファイルの概要:
* SOAレコード–techglimpse.comの権威あるネームサーバーをns1.techglimpse.comと呼びます。 およびadmin.techglimpse.com DNSサーバー管理者のメールアドレスを指します。
* NSレコード:techglimpse.comには1つのネームサーバーns1.techglimpse.comがあります。通常、ドメインには高可用性のために少なくとも2つのネームサーバーがあります。デモンストレーションのために、名前を付けたネームサーバーは1つだけです。
* MX(メール交換):techglimpse.comメール交換レコード。
* CNAMEレコード:正規名。
Ok!私たちが今やったことは、名前からアドレスへのマッピングです。次に、住所から名前へのマッピングを作成しましょう。
アドレスから名前へのマッピングの設定:
ドメインが照会されたときにDNSサーバーをIPアドレスに解決するように構成しました。ここで、サーバーに逆引き参照も実行するように指示する必要があります。つまり、IPからドメインへ。
vi /var/named/zones/master/db.10.180.3
以下のコードを貼り付けてください
; ; BIND reverse data file for 3.180.10.in-addr.arpa ; $TTL 604800 3.180.10.in-addr.arpa. IN SOA ns1.techglimpse.com. admin.techglimpse.com. ( 1 ; Serial 3h ; Refresh after 3 hours 1h ; Retry after 1 hour 1w ; Expire after 1 week 1h ) ; Negative caching TTL of 1 day ; 3.180.10.in-addr.arpa. IN NS ns1.techglimpse.com. 74.3.180.10.in-addr.arpa. IN PTR techglimpse.com.
ここで、74.3.180.10は10.180.3.74の逆アドレスです。ファイル名もメモしてください。
* PTRレコード:IPアドレスをドメイン名にマッピングします。
ゾーンファイルを読み取るようにnamed.confを構成します
新しく作成されたゾーンファイルを参照するようにnamed.confを構成する必要があります。
/var/named/zones/master/db.techglimpse.com /var/named/zones/master/db.10.180.3
私のマシンでは、 named.conf /etc/の下にあります。ただし、これはマシンによって変わる可能性があります。例:/etc/named/named.conf、/etc/bind/named.conf。
vi /etc/named.conf
以下のテキストをコピーして貼り付けます
zone "techglimpse.com" { type master; file "/var/named/zones/master/db.techglimpse.com"; };
ゾーン「3.180.10.in-addr.arpa」{
タイプマスター;
ファイル「/var/named/zones/master/db.10.180.3」;
};
注:実際のドメインとそのゾーンファイルの場所を反映するように必要な変更を加えます。
以下のコマンドを使用して、構成ファイルが正しいことを確認します。
named-checkconf
以下のコマンドを使用して、ゾーンファイルにエラーがないか確認します
named-checkzone
例
named-checkzone techglimpse.com /var/named/zones/master/db.techglimpse.com zone techglimpse.com/IN: loaded serial 1 OK
named-checkzone 3.180.10.in-addr.arpa /var/named/zones/master/db.10.180.3 zone 3.180.10.in-addr.arpa/IN: loaded serial 1 OK
上記のコマンドがステータスOKで応答する場合は、以下の手順に進むことができます。それ以外の場合は、構成ファイルにエラーがないか再確認してください。
バインドサーバーを起動します
/etc/init.d/bind9 start
または
/etc/init.d/named start
エラーがある場合は、namedデーモンまたはbind9デーモンの起動時にエラーが表示されるはずです。
セットアップをテストします
覚えているなら、「dig」というコマンドをインストールするdnsutilsをインストールすることをお勧めします。
dig @10.180.8.115 techglimpse.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> @10.180.8.115 techglimpse.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45562 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available
;;質問セクション:
;techglimpse.com。 IN A
;;回答セクション:
techglimpse.com。 10800 IN A 10.180.3.74
;;権限セクション:
techglimpse.com。 10800 INNSns1.techglimpse.com。
;;追加セクション:
ns1.techglimpse.com。 10800 IN A 10.180.3.74
;;クエリ時間:2ミリ秒
;;サーバー:10.180.8.115#53(10.180.8.115)
;;日時:2013年10月15日火曜日12:42:50
;; MSGサイズrcvd:83
IPからホストへの解決をテストします。
dig @10.180.8.115 -x 10.180.3.74
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> @10.180.8.115 -x 10.180.3.74 ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47357 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available
;;質問セクション:
;74.3.180.10.in-addr.arpa。 PTRで
;;回答セクション:
74.3.180.10.in-addr.arpa。 604800 INPTRtechglimpse.com。
;;権限セクション:
3.180.10.in-addr.arpa。 604800 INNSns1.techglimpse.com。
;;追加セクション:
ns1.techglimpse.com。 10800 IN A 10.180.3.74
;;クエリ時間:2ミリ秒
;;サーバー:10.180.8.115#53(10.180.8.115)
;;日時:2013年10月15日火曜日12:44:30
;; MSGサイズrcvd:105
注:最初の引数は、DNSサーバー(10.180.8.115;現在インストール済み)を使用して解決するようにdigコマンドに指示し、2番目の引数は問題のドメイン名/IPです。
それでおしまい。バインドが正常に構成されました。
また読む:DNSで再帰を有効にする必要がありますか?脆弱です!
また読む:DNSサーバーのソフトウェア名とそのバージョンを非表示にする方法は? [DNSセキュリティ]
また読む:BIND DNSサーバーのログを有効にしてクエリを監視し、トラブルシューティングを行う方法