GNU/Linux >> Linux の 問題 >  >> Linux

Linux に DNS サーバーをインストールして構成する方法

ドメイン ネーム サービス (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 を編集し、以下を置き換えます。

<オール>
  • SOA:localhost を含む行。 – これは、このドメインを担当するサーバーの FQDN です。ホスト名が「ns」のbind9を10.42.0.83にインストールしました。したがって、「localhost」を置き換えます。 「ns.thegeekstuff.net」で。最後にドット (.) を付けてください。
  • SOA:root.localhost を含む行。 – これは、このサーバーの責任者の電子メール アドレスです。 @ の代わりにドット (.) を使用します。 lak.localhost に置き換えました。
  • NS:localhost を含む行。 – これは、ドメイン (NS) のネーム サーバーを定義しています。これをネームサーバーの完全修飾ドメイン名に変更する必要があります。 「ns.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

    Linux
    1. ArchLinuxをサーバーとしてインストールおよび設定する方法

    2. Linux に EMC PowerPath をインストールして構成する方法

    3. Linux NTP サーバーとクライアントをインストールして構成する方法

    1. LinuxでDHCPサーバーをインストールして構成する方法

    2. LinuxにZabbixモニタリングサーバーをインストールして設定する方法

    3. LinuxにNagiosをインストールして設定する方法

    1. Ubuntu16.04LTSにDNSサーバーをインストールして構成する方法

    2. UbuntuLinuxにMemcachedをインストールして構成する方法

    3. LinuxシステムにNFSサーバーをインストールして構成する方法