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

Ubuntu 18.04 /Ubuntu16.04でDNSサーバーを構成する方法

ドメインネームシステム(DNS)は、ドメイン名をIPアドレスに(またはその逆に)変換するインターネットのルートです。 BIND9(Berkeley Internet Name Domain)パッケージは、名前からIPへの変換機能を提供します。

この投稿では、Ubuntu 18.04 /Ubuntu16.04でDNSサーバーを構成する方法について説明します。

環境

ドメイン名:itzgeek.local
ns1.itzgeek.local 192.168.0.10 マスターDNSサーバー

Ubuntu 18.04 /Ubuntu16.04でDNSサーバーをセットアップする

前提条件

リポジトリインデックスを更新します。

sudo apt update

DNSサーバーに静的IPアドレスがあることを確認してください。

読む: ifupdownを使用してUbuntu18.04/Ubuntu16.04で静的IPアドレスを構成する方法

Netplan –新しいネットワークツールを使用している場合 その後、Ubuntu18.04でネットワークを構成するため。

読む :Netplanを使用してUbuntu18.04で静的IPアドレスを構成する方法

DNSサーバーのインストール

Ubuntu上のDNSサーバーのパッケージ名はbind9であり、ベースリポジトリで利用できます。 aptコマンドを使用してbind9パッケージをインストールします。

sudo apt install -y bind9 bind9utils bind9-doc dnsutils

DNSサーバーの構成

/ etc / bind /ディレクトリはDNSサーバーのメイン構成ディレクトリであり、構成ファイルとゾーンルックアップファイルを保持します。

グローバル構成ファイルは/etc/bind/named.confです。このファイルをローカルDNSゾーンに使用するのではなく、/ etc / bind/named.conf.localファイルを使用できます。

ゾーンの作成

まず、ドメインのフォワードゾーンを作成しましょう。

sudo nano /etc/bind/named.conf.local
フォワードゾーン

以下は、named.conf.localファイル内のitzgeek.localドメインのフォワードゾーンエントリです。

zone "itzgeek.local" IN { // Domain name
    
      type master; // Primary DNS

     file "/etc/bind/forward.itzgeek.local.db"; // Forward lookup file

     allow-update { none; }; // Since this is the primary DNS, it should be none.

};
逆引きゾーン

次のエントリは、named.conf.localファイルの逆引きゾーン用です。

zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order

     type master; // Primary DNS

     file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file

     allow-update { none; }; //Since this is the primary DNS, it should be none.

};

ゾーンルックアップファイルの作成

ゾーンを作成したら、先に進んで、順方向ゾーンと逆引きゾーンのDNSレコードを保持するゾーンデータファイルを作成できます。

フォワードゾーンルックアップファイル

サンプルエントリを、 / etc / bindの下の転送ゾーンのforward.itzgeek.local.dbというゾーンファイルにコピーします。 ディレクトリ。

ゾーンファイルにタイプを記録します

SOA –権限の開始
NS –ネームサーバー
A –レコード
MX –メール交換
CN –標準名前

ドメイン名はドット(。)で終わる必要があります。

sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db

ゾーンを編集します。

sudo nano /etc/bind/forward.itzgeek.local.db

以下に示すコンテンツを更新してください。

ルックアップファイルのレコードを変更するときは常に、シリアル番号を現在よりも大きい乱数に更新してください。
$TTL    604800
@       IN      SOA     ns1.itzgeek.local. root.itzgeek.local. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
;@      IN      NS      localhost.
;@      IN      A       127.0.0.1
;@      IN      AAAA    ::1

;Name Server Information

@        IN      NS      ns1.itzgeek.local.

;IP address of Name Server

ns1     IN      A       192.168.0.10

;Mail Exchanger

itzgeek.local.   IN     MX   10   mail.itzgeek.local.

;A – Record HostName To Ip Address

www     IN       A      192.168.0.100
mail    IN       A      192.168.0.150

;CNAME record

ftp     IN      CNAME   www.itgeek.local.
逆引きゾーンルックアップファイル

サンプルエントリを/etc/ bindディレクトリの下の逆引きゾーンのreverse.itzgeek.local.dbというゾーンファイルにコピーし、上記の順方向ゾーンレコードの逆引きポインタを作成します。

PTR –ポインタ
SOA –権限の開始

sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db

リバースゾーンファイルを編集します。

sudo nano /etc/bind/reverse.itzgeek.local.db

以下に示すコンテンツを更新してください。

ルックアップファイルのDNSレコードを変更するときは常に、シリアル番号を現在の乱数よりも大きい乱数に更新してください。
$TTL    604800
@       IN      SOA     itzgeek.local. root.itzgeek.local. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
;@      IN      NS      localhost.
;1.0.0  IN      PTR     localhost.

;Name Server Information

@       IN      NS     ns1.itzgeek.local.

;Reverse lookup for Name Server

10      IN      PTR    ns1.itzgeek.local.

;PTR Record IP address to HostName

100     IN      PTR    www.itzgeek.local.
150     IN      PTR    mail.itzgeek.local.

BIND構成構文の確認

named-checkconfコマンドを使用して、構文とnamed.conf*ファイルにエラーがないか確認します。

sudo named-checkconf

エラーがない場合、コマンドはシェルに戻ります。

また、named-checkzoneを使用して、ゾーンファイルの構文エラーを確認できます。

フォワードゾーン

sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db

出力:

zone itzgeek.local/IN: loaded serial 3
OK

逆引きゾーン

named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db

出力:

zone 0.168.192.in-addr.arpa/IN: loaded serial 3
OK

バインドサービスを再開します。

sudo systemctl restart bind9

システムの起動時に有効にします。

sudo systemctl enable bind9

bind9サービスのステータスを確認してください。

sudo systemctl status bind9

DNSレコードの更新

DNSレコードを変更するときはいつでも、ゾーンファイルのシリアル番号を変更してゾーンをリロードすることを忘れないでください。

itzgeek.localと0.168.192.in-addr.arpaをゾーン名に変更します。

### Forward Zone ###

sudo rndc reload itzgeek.local 

### Reverse Zone ###

sudo rndc reload 0.168.192.in-addr.arpa

DNSサーバーの確認

任意のクライアントマシンに移動し、新しいDNSサーバーのIPアドレスを/etc/resolv.confファイルに追加します。

sudo nano /etc/resolv.conf

以下のように入力してください。

nameserver 192.168.0.10

または

以下のチュートリアルを読んで、LinuxでDNSサーバーのIPを設定してください。

読む: CentOS/FedoraでDNSIPアドレスを設定する方法

読む: Ubuntu / DebianでDNSIPアドレスを設定する方法– ifupdown

読む: Ubuntu 18.04でDNSIPアドレスを設定する方法– Netplan

digコマンドを使用して、フォワードゾーンを確認します。

dig www.itzgeek.local

コマンドが見つからない場合は、bind-utilsパッケージをインストールしてください。

出力:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.itzgeek.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18022
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.itzgeek.local.             IN      A

;; ANSWER SECTION:
www.itzgeek.local.      604800  IN      A       192.168.0.100

;; AUTHORITY SECTION:
itzgeek.local.          604800  IN      NS      ns1.itzgeek.local.

;; ADDITIONAL SECTION:
ns1.itzgeek.local.      604800  IN      A       192.168.0.10

;; Query time: 0 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Dec 30 12:42:18 EST 2019
;; MSG SIZE  rcvd: 96

前方参照に対するDNSサーバーの回答:www.itzgeek.localのIPアドレスとして192.168.0.100

digコマンドで逆引き参照を確認します。

dig -x 192.168.0.100

出力:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 192.168.0.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37122
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;100.0.168.192.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
100.0.168.192.in-addr.arpa. 604800 IN   PTR     www.itzgeek.local.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 604800  IN      NS      ns1.itzgeek.local.

;; ADDITIONAL SECTION:
ns1.itzgeek.local.      604800  IN      A       192.168.0.10

;; Query time: 0 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Dec 30 12:43:20 EST 2019
;; MSG SIZE  rcvd: 120

逆引き参照に対するDNSサーバーの回答:192.168.0.100の名前としてのwww.itzgeek.local。

この結果は、両方のゾーンルックアップが正常に機能していることを確認しています。

結論

それで全部です。これで、Ubuntu 18.04 /Ubuntu16.04のDNSサーバーがマスターサーバーとして正常に構成されました。次の投稿では、Ubuntu 18.04 /Ubuntu16.04でスレーブDNSサーバーを構成します。


Ubuntu
  1. Ubuntu20.04にNFSサーバーをインストールして構成する方法

  2. Ubuntu20.04にVNCをインストールして構成する方法

  3. Ubuntu20.04にDHCPサーバーをインストールして構成する方法

  1. Ubuntu18.04にVNCをインストールして構成する方法

  2. Ubuntu18.04でMySQLマスタースレーブレプリケーションを構成する方法

  3. Ubuntu18.04にNFSサーバーをインストールして構成する方法

  1. Ubuntu20.04にFail2banをインストールして構成する方法

  2. Ubuntu / DebianにDNSサーバー(バインド9)をインストールして構成する方法

  3. Debian 9 /Ubuntu16.04サーバーでHAProxyを設定する方法