Ubuntu Server14.04でのキャッシングDNSサーバーのセットアップ


ドメインネームサービス DNS )は、IPアドレスと完全修飾ドメイン名を相互にマッピングするネーミングサービスです。 DNSを実行するコンピューターは、ネームサーバーと呼ばれます。

ここでは、フォワーダー、フォワードルックアップ、およびリザーブルックアップを使用してキャッシュサーバーをインストールおよび構成しました。ほとんどの場所で、予備のルックアップが必要です。キャッシュサーバーはドメイン名を保持せず、ポインティングサーバーとしてのみ機能します。詳細に入る前に、DNSサーバーとその仕組みについて知る必要があります。

DNSとその仕組みを理解する簡単な方法は次のとおりです。

ブラウザで tecmint.com にアクセスする必要がある場合、システムは tecmint.com を探します。ここで .com の最後に()があるので、これは何ですか?

(。)は名前空間ルートサーバーを表し、世界中で合計13のルートサーバーが利用可能です。 tecmint.com にアクセスしている間、オペレーティングシステムの構成に従ってネームサーバーを要求します。 Ubuntuでは、 /etc/resolv.conf でネームサーバーを構成していましたが、tecmint.comにアクセスしているときに、ルートネームサーバーがルートネームサーバーを要求しない場合、ブラウザーはルートネームサーバーを要求します。要求されたドメイン情報があると、要求された情報がキャッシュされ、( TLD トップレベルドメインネームサーバーに転送されます。TLDネームサーバーでも、要求はそうではありません。利用可能な場合はキャッシュされ、権限のあるネームサーバーに転送されます。

ドメイン登録中、ドメイン登録事業者は、ドメインが使用する権限のあるネームサーバーを定義します。したがって、権威ネームサーバーにはドメイン情報がありますが、リクエストはANSに到達しますが、 tecmint.com には 111.111.222.1 があるというクエリに応答します。権限のあるネームサーバーにキャッシュされ、リクエストをブラウザに送り返します。上記のすべての手順は、ミリ秒以内に実行されます。

DNSとは何か、そしてそれがどのように機能するかを理解していただければ幸いです。次に、Ubuntu Server 14.04LTSで Caching DNS Server を設定しましょう。

ステップ1:DNSサーバーをインストールする

まず、静的IPアドレスやホスト名などのローカルDNSサーバー情報を確認します。これは、この記事の目的で使用されます。

IP Address:	192.168.0.100
Hostname:	dns.tecmintlocal.com

上記の設定が正しいことを確認するには、「 hostnamectl 」および「ifconfig」コマンドを使用できます。

$ hostnamectl
$ ifconfig eth0 | grep inet

次に、DNSキャッシュサーバーを設定する前に、デフォルトのリポジトリを更新してシステムをアップグレードします。

$ sudo apt-get update && sudo apt-get upgrade -y

次に、次のコマンドを使用して、DNSパッケージの bind dnsutils をインストールします。

$ sudo apt-get install bind9 dnsutils -y

DNSがインストールされたら、/etc/bind の下のバインド構成ディレクトリに移動します。

$ /etc/bind/
$ ls -l

ステップ2:DNSキャッシュサーバーを設定する

まず、ここでキャッシュサーバーをセットアップして構成します。 vimエディターを使用してファイル named.conf.options を開いて編集します。

$ sudo vim named.conf.options

ここで、「フォワーダー」という単語を使用してドメイン名リクエストをキャッシュします。そこで、ここではルーターをフォワーダーとして使用します。写真に示すように、//行の前のコメントを解除します。

forwarders {
        192.168.0.1;
        };

wq!を使用してファイルを保存して終了します。次に、小さなテストのためにバインドサーバーを起動します。

$ sudo /etc/init.d/bind9 start

キャッシュが機能するかどうかをテストする必要がある場合は、 digコマンドを使用して、キャッシュが機能するかどうかを確認できます。

たとえば、ここで ubuntu.com を掘り下げます。最初はキャッシュされないため、キャッシュされると非常に高速になるまでに数ミリ秒かかる場合があります。

$ dig @127.0.0.1 ubuntu.com

digコマンドは、DNSルックアップ用のツールです。 Digコマンドの詳細については、以下のトピックをお読みください。

  1. 10 Useful Dig Command Examples

ここでは、上の画像で最初の掘り出し物を見ると、クエリに 1965 ミリ秒かかり、どのIPアドレスが ubuntu.com にバインドされているかがわかります。

もう1つ掘り下げて、クエリ時間を確認してみましょう。

かっこいい!、2回目の試行で、 5 ミリ秒以内にクエリを取得しました。あなたが今キャッシングサーバーとは何かを知っていることを願っています。上の画像は、何百万もの人々がすでにUbuntuの公式サイトにアクセスしているため、合計 13 のルートサーバーがUbuntu.comをキャッシュしていることを示しています。

ステップ3:マスターDNSサーバーを設定する

マスターDNSサーバーを作成します。ここではドメイン名を tecmintlocal.com として定義し、vimエディターを使用してファイル namesed.conf.local を編集します。

$ sudo vim /etc/bind/named.conf.local

以下に示すように、 DNS-Master エントリを入力します。

zone "tecmintlocal.com" {
        type master;
        file "/etc/bind/db.tecmintlocal.com";
        };
    1. zone: Hosts details in Domain

    1. type: Master DNS.
    2. file: Location to store zone information.

    db.local からコピーを作成して、ゾーンファイル db.tecmintlocal.com (フォワードルックアップ)を作成します。

    $ sudo cp db.local db.tecmintlocal.com
    

    次に、vimエディターを使用して、コピーしたゾーンファイルを開いて編集します。

    $ sudo vim db.tecmintlocal.com
    

    次に、チュートリアルの目的で使用した次のエントリ例を追加します。他の仮想マシンのセットアップにも同じものを使用します。要件に応じて、以下のエントリを変更します。

    ;
    ; BIND data file for local loopback interface
    ;
    $TTL    604800
    @       IN      SOA     tecmintlocal.com. root.tecmintlocal.com. (
                         2014082801         ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL
    ;
    @       IN      NS      ns.tecmintlocal.com.
    ns      IN      A       192.168.0.100
    
    clt1    IN      A       192.168.0.111
    ldap    IN      A       192.168.0.200
    ldapc   IN      A       192.168.0.211
    mail    IN      CNAME   clt1.tecmintlocal.com.
    

    wq!を使用してファイルを保存して終了します。

    最後に、以下のコマンドを使用してバインドDNSサービスを再起動します。

     
    $ sudo service bind9 restart
    

    上記のゾーン設定が機能するかどうかを確認する必要があります。 dig コマンドを使用して確認しましょう。 localhostクエリから次のようにコマンドを実行します。

    $ dig @127.0.0.1 mail.tecmintlocal.com
    

    ping して clt1.tecmintlocal.com をテストしましょう。その前に、dnsサーバーマシンでdns-serverエントリをlocalhostに変更し、ネットワークを再起動して有効にする必要があります。 。

    ネットワークインターフェイス設定を開いて編集し、DNSエントリを入力します。

    $ sudo vim /etc/network/interfaces
    

    インターフェイスのDNSエントリを次のように変更します。

    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
            address 192.168.0.100
            netmask 255.255.255.0
            gateway 192.168.0.1
            network 192.168.0.0
            broadcast 192.168.0.255
            dns-nameservers 127.0.0.1
    	    dns-search tecmintlocal.com
    

    エントリを追加した後、次のコマンドを使用してネットワークを再起動します。

    $ sudo ifdown eth0 && sudo ifup eth0
    

    ネットワークの再起動が有効にならない場合は、再起動が必要です。次に、pingを実行して clt1.tecmintlocal.com を確認します。応答中に、ホスト名 clt1 に定義したIPアドレスを取得する必要があります。

    $ ping clt1.tecmintlocal.com -c 3
    

    逆引きDNSルックアップの設定

    もう一度ファイル named.conf.local を開いて編集します。

    $ sudo vim /etc/bind/named.conf.local
    

    次に、図のように次の逆引きDNSルックアップエントリを追加します。

    zone "0.168.192.in-addr.arpa" {
            type master;
            notify no;
            file "/etc/bind/db.tecmintlocal192";
            };
    

    wq!を使用してファイルを保存して終了します。次に、 db.tecmintlocal192 ファイルを作成します。これは、上記のマスターファイルで逆ルックアップについて説明したように、 db.127 db.tecmintlocal192 <にコピーします。/b>次のコマンドを使用します。

    $ sudo cp db.127 db.tecmintlocal192
    

    次に、ファイル db.tecmintlocal192 を開いて編集し、逆ルックアップを設定します。

    $ sudo vim db.tecmintlocal192
    

    以下のように次のエントリを入力し、要件に従って以下のエントリを変更します。

    ;
    ; BIND reverse data file for local loopback interface
    ;
    $TTL    604800
    @       IN      SOA     ns.tecmintlocal.com. root.tecmintlocal.com. (
                            2014082802      ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL
    ;
    @       IN      NS      ns.
    100     IN      PTR     ns.tecmintlocal.com.
    
    111     IN      PTR     ctl1.tecmintlocal.com.
    200     IN      PTR     ldap.tecmintlocal.com.
    211     IN      PTR     ldapc.tecmintlocal.com.
    

    を使用してバインドサービスを再起動します。

    次に、予約ルックアップエントリを確認します。

    $ host 192.168.0.111
    

    上記のようにIPアドレスを使用して逆ルックアップを実行しますが、上の画像が示すように名前で返信したいと考えています。

    digコマンドも使ってチェックしてみましょう。

    $ dig clt1.tecmintlocal.com
    

    ここでは、ドメイン名 clt1.tecmintlocal.com のIPアドレスがであるため回答セクションのクエリ回答を確認できます。 192.168.0.111

    ステップ4:クライアントマシンを設定する

    クライアントマシンのIPアドレスとdnsエントリをローカルDNSサーバー 192.168.0.100 に変更するだけです。そうすると、クライアントマシンはローカルDNSサーバーからホスト名を割り当てられます。

    次の一連のコマンドを使用して、クライアントのホスト名を確認しましょう。

    $ ifconfig eth0 | grep inet
    $ hostname	
    $ dig -x 192.168.0.100
    

    DNSでのゾーンファイルエントリについて、この画像は、ゾーンファイルエントリで定義した内容を簡単に説明しています。

    それでおしまい!この記事では、オフィスや家庭で使用するためにローカルDNSサーバーをセットアップする方法を見てきました。

    すぐに、さまざまなツールを使用してDNSサーバーのトラブルシューティングを行い、それを修正する方法についての記事を読むことができます。 DNSサーバーのトラブルシューティングに使用されるツールはたくさんあります。トラブルシューティングのヒントについては、以下の記事をお読みください。

    DNSトラブルシューティングのための8つのNslookupコマンド

全著作権所有。 © Linux-Console.net • 2019-2022