ドメイン ネーム サービス (DNS) は、IP アドレスを完全修飾ドメイン名 (FQDN) に、またはその逆にマッピングするインターネット サービスです。
BIND は Berkley Internet Naming Daemon の略です。
BIND は、Linux でネーム サーバーを維持するために使用される最も一般的なプログラムです。
このチュートリアルでは、DNS サーバーをインストールして構成する方法を説明します。
DNS を初めて使用する場合は、まず DNS の基礎とその仕組みを理解する必要があります。
1.ネットワーク情報
このチュートリアルでは、下の図に示すネットワークにローカル DNS サーバーをセットアップします。
この DNS インストールの例として、「thegeekstuff.net」ドメインを使用します。 「mail」、「web」、「ns」は、このドメイン内に存在するホストです。
キャッシング ネーム サーバー、プライマリ/マスターおよびセカンダリ/スレーブとして機能する単一のシステムを構成することができます。この DNS をプライマリ/マスターおよびキャッシング DNS サーバーとして構成します。
「10.42.0.83」に DNS サーバーをインストールします。
2.バインドをインストール
Linux ディストリビューションに適したパッケージ管理ユーティリティを使用して、bind9 パッケージをインストールします。
Debian/Ubuntu フレーバーでは、次の操作を行います:
$ sudo apt-get install bind9
Redhat/CentOS/Fedora フレーバーでは、次の操作を行います:
# yum install bind9
すべての DNS 構成は、/etc/bind ディレクトリに保存されます。主な構成は /etc/bind/named.conf で、他の必要なファイルが含まれます。 /etc/bind/db.root という名前のファイルには、世界中のルート ネームサーバーが記述されています。
3.キャッシュ NameServer の構成
DNS キャッシング サーバーの仕事は、他の DNS サーバーにクエリを実行し、応答をキャッシュすることです。次回同じクエリが与えられると、キャッシュからの応答が提供されます。キャッシュは定期的に更新されます。
バインドをプライマリおよびキャッシング サーバーとして機能するように構成することはできますが、セキュリティ上の理由から、そうすることはお勧めできません。別のキャッシュ サーバーを用意することをお勧めします。
キャッシュ ネームサーバーを構成するために必要なことは、ISP (インターネット サービス プロバイダー) の DNS サーバーまたは任意の OpenDNS サーバーをファイル /etc/bind/named.conf.options に追加することだけです。たとえば、Google のパブリック DNS サーバー、8.8.8.8 および 8.8.4.4 を使用します。
/etc/bind/named.conf.options ファイルで以下に示すように、次の行のコメントを外して編集します。
forwarders { 8.8.8.8; 8.8.4.4; };
上記の変更後、DNS サーバーを再起動してください。
$ sudo service bind9 restart
4.キャッシュ NameServer をテストする
dig コマンドを使用して、DNS サービスをテストできます。 DIG コマンドの例では、DNS ルックアップの実行方法について詳しく説明しています。
$ dig ubuntu.com ;; Query time: 1323 msec
これで、dig を 2 回目に実行すると、クエリ時間が改善されるはずです。以下に示すように、キャッシング DNS サーバーから情報を取得しているため、2 回目には 3 ミリ秒しかかかりませんでした。
$ dig ubuntu.com ;; Query time: 3 msec
5.プライマリ/マスター ネームサーバーの構成
次に、bind9 をドメイン/ゾーン「thegeekstuff.net」のプライマリ/マスターになるように構成します。
プライマリ/マスター ネームサーバーを構成する最初のステップとして、bind9 に順方向および逆方向の解決を追加する必要があります。
DNS 正引きおよび逆引き解決を bind9 に追加するには、/etc/bind9/named.conf.local を編集します。
zone "thegeekstuff.net" { type master; file "/etc/bind/db.thegeekstuff.net"; }; zone "0.42.10.in-addr.arpa" { type master; notify no; file "/etc/bind/db.10"; };
これで、ファイル /etc/bind/db.thegeekstuff.net には、このドメイン/ゾーンのホスト名を IP アドレスに解決するための詳細が含まれ、ファイル /etc/bind/db.10 には、IP アドレスをホスト名に解決するための詳細が含まれます。 .
6.プライマリ/マスター ネームサーバーの転送解決を構築する
ここで、前方解決に必要な詳細を /etc/bind/db.thegeekstuff.net に追加します。
まず、/etc/bind/db.local を /etc/bind/db.thegeekstuff.net にコピーします
$ sudo cp /etc/bind/db.local /etc/bind/db.thegeekstuff.net
次に、/etc/bind/db.thegeekstuff.net を編集し、以下を置き換えます。
<オール>次に、ドメインの A レコードと MX レコードを定義します。レコードは、ホスト名を IP アドレスにマップするものであり、MX レコードはメールサーバーにこのドメインに使用するよう指示します。
変更が完了すると、/etc/bind/db.thegeekstuff.net ファイルは次のようになります:
$TTL 604800 @ IN SOA ns.thegeekstuff.net. lak.localhost. ( 1024 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.thegeekstuff.net. thegeekstuff.net. IN MX 10 mail.thegeekstuff.net. ns IN A 10.42.0.83 web IN A 10.42.0.80 mail IN A 10.42.0.70
6.プライマリ/マスター ネームサーバーの逆解像度を構築する
逆方向解決に必要な詳細をファイル /etc/bind/db.10 に追加します。ファイル /etc/bind/db.127 を /etc/bind/db.10 にコピーします
$ sudo cp /etc/bind/db.127 /etc/bind/db.10
次に、/etc/bind/db.10 ファイルを編集し、基本的には /etc/bind/db.thegeekstuff.net と同じオプションを変更します
$TTL 604800 @ IN SOA ns.thegeekstuff.net. root.localhost. ( 20 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.
次に、/etc/bind/db.thegeekstuff.net の各 A レコードに対して、PTR レコードを追加します。
$TTL 604800 @ IN SOA ns.thegeekstuff.net. root.thegeekstuff.net. ( 20 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns. 83 IN PTR ns.thegeekstuff.net. 70 IN PTR mail.thegeekstuff.net. 80 IN PTR web.thegeekstuff.net.
ファイル db.thegeekstuff.net および db.10 を変更するときはいつでも、「シリアル」番号もインクリメントする必要があります。通常、管理者はシリアル番号に DDMMYYSS を使用し、変更する場合はシリアル番号を適切に変更します。
最後に、bind9 サービスを再起動します:
$ sudo service bind9 restart
7. DNS サーバーをテストする
これで、ドメインの DNS サーバーが構成されました。 web.thegeekstuff.net から mail.thegeekstuff.net に ping を実行して、DNS サーバーをテストします。
ping が成功した場合、DNS は正常に構成されています。
nslookup と dig を使用して DNS サーバーをテストすることもできます。
web.thegeekstuff.net サーバーで、以下を /etc/resolv.conf に追加します
nameserver 10.42.0.83
次に、mail.thegeekstuff.net に ping を送信します。これにより、構成したばかりの DNS サーバーからアドレスが適切に解決されます。
$ ping mail.thegeekstuff.net PING mail.thegeekstuff.net (10.42.0.70) 56(84) bytes of data. 64 bytes from mail.thegeekstuff.net (10.42.0.70): icmp_req=1 ttl=64 time=0.482 ms 64 bytes from mail.thegeekstuff.net (10.42.0.70): icmp_req=2 ttl=64 time=0.532 ms