GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS 7 / RHEL 7でDNS(BIND)サーバーを構成する方法

ドメインネームシステム(DNS)は、コンピューター、サービス、またはインターネットやプライベートネットワークに接続されているリソース用の階層型分散ネーミングシステムです。さまざまな情報を、参加している各エンティティに割り当てられたドメイン名に関連付けます。

最も重要なことは、人間にとって意味のあるドメイン名を、世界中のこれらのデバイスを見つけてアドレス指定する目的で、ネットワーク機器に関連付けられた数値識別子に変換することです。

このガイドは、CentOS 7 /RHEL7でDNSサーバーをセットアップするのに役立ちます。

環境

サーバー名: ns1itzgeek.local

IPアドレス: 192.168.0.10

DNSのインストール(BIND)

BINDは、Berkeley Internet Name Domainの略で、名前からIPへの変換を実行する機能を提供するソフトウェアです。

yum -y install bind bind-utils

DNSの構成(BIND)

デフォルトでは、BINDはローカルホストでリッスンします。そのため、クライアントがドメイン名を解決するためにDNSサーバーにアクセスできるように、システムIPアドレスをリッスンするようにDNSサーバーを構成します。

vi /etc/named.conf

すべてのIPアドレスを聞きます:

すべてのIPアドレスをリッスンするようにBINDを構成します。

// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };

特定のIPアドレスを聞く:

特定のIPアドレスをリッスンするようにBINDを構成します。

listen-on port 53 { 127.0.0.1; 192.168.0.10; };

次の行にネットワークを追加します。この設定により、前述のネットワークのクライアントがDNSに名前からIPへの変換を照会できるようになります。

このデモに192.168.0.0/24を追加しました。

allow-query     { localhost; 192.168.0.0/24; };

ゾーンの作成

/etc/named.confを編集します。

vi /etc/named.conf

フォワードゾーン

次のゾーンは、itzgeek.localドメインのフォワードゾーンエントリです。

zone "itzgeek.local" IN {
         
         type master;
        
         file "/var/named/itzgeek.local.db";

         allow-update { none; };
};

itzgeek.local – ドメイン名
マスター– プライマリDNS
fwd.itzgeek.local.db – フォワードルックアップファイル
更新を許可– これはプライマリDNSであるため、なしにする必要があります

逆引きゾーン

次のゾーンは逆引きゾーンエントリです。

zone "0.168.192.in-addr.arpa" IN {
          
          type master;
          
          file "/var/named/192.168.0.db";
         
          allow-update { none; };
};

0.168.192.in-addr.arpa – 逆引き参照名
マスター– プライマリDNS
192.168.0.db – 逆引き参照ファイル
更新を許可– これはプライマリDNSであるため、なしにする必要があります

ゾーンファイルの作成

デフォルトでは、ゾーンルックアップファイルは/ var/namedディレクトリの下に配置されます。 / var/namedディレクトリの下に前方参照用のfwd.itzgeek.local.dbというゾーンファイルを作成します。すべてのドメイン名はドット(。)で終わる必要があります。

vi /var/named/itzgeek.local.db

ゾーンファイルにはいくつかの特別なキーワードがあります

A – レコード
NS – ネームサーバー
MX – メール交換
CNAME – 正規名

@   IN  SOA     ns1.itzgeek.local. root.itzgeek.local. (
                                                1001    ;Serial
                                                3H      ;Refresh
                                                15M     ;Retry
                                                1W      ;Expire
                                                1D      ;Minimum TTL
                                                )

;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.
ゾーンルックアップファイルを更新するときはいつでも、1002;Serialのようにシリアルを変更/インクリメントする必要があります。

/ var/namedディレクトリの下に逆引きゾーン用の192.168.0.dbというゾーンファイルを作成します。

vi /var/named/192.168.0.db

以前に作成したフォワードゾーンエントリのリバースポインタを作成します。

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

@   IN  SOA     ns1.itzgeek.local. root.itzgeek.local. (
                                                1001    ;Serial
                                                3H      ;Refresh
                                                15M     ;Retry
                                                1W      ;Expire
                                                1D      ;Minimum TTL
                                                )

;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.
ゾーンルックアップファイルを更新するときはいつでも、1002;Serialのようにシリアルを変更/インクリメントする必要があります。

ゾーンファイルが作成されたら、バインドサービスを再起動します。

systemctl restart named

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

systemctl enable named

ファイアウォール

ファイアウォールに許可ルールを追加して、クライアントが名前解決のためにDNSサーバーに接続できるようにします。

firewall-cmd --permanent --add-port=53/udp

firewall-cmd --reload

ゾーンの確認

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

nameserver 192.168.0.10

Network Managerがネットワークを管理している場合は、次のエントリを/ etc / sysconfig / network-scripts/ifcfg-eXXファイルに配置します。

DNS1=192.168.0.10

ネットワークサービスを再起動します。

systemctl restart NetworkManager

次のコマンドを使用して、前方参照を確認します。

dig www.itzgeek.local

出力: DNSサーバーは、www.itzgeek.localのIPとして192.168.0.100を提供する必要があります。

; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> www.itzgeek.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35563
;; 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.      86400   IN      A       192.168.0.100

;; AUTHORITY SECTION:
itzgeek.local.          86400   IN      NS      primary.itzgeek.local.

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

;; Query time: 0 msec
;; SERVER: 192.168.0.10#53(192.168.0.10)
;; WHEN: Wed Jul 03 02:00:40 EDT 2019
;; MSG SIZE  rcvd: 100
BINDユーティリティyuminstall-y bind-utilsパッケージをインストールして、nslookupまたはdigコマンドを取得します。

逆引き参照を確認します。

dig -x 192.168.0.100

出力: DNSサーバーは、192.168.0.100の名前としてwww.itzgeek.localを提供します。

; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> -x 192.168.0.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4807
;; 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. 86400 IN    PTR     www.itzgeek.local.

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

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

;; Query time: 0 msec
;; SERVER: 192.168.0.10#53(192.168.0.10)
;; WHEN: Wed Jul 03 02:02:47 EDT 2019
;; MSG SIZE  rcvd: 124

これで、順方向ルックアップと逆引きルックアップの両方が正常に機能していることが確認されました。

結論

それで全部です。これで、マスターサーバーとしてCentOS 7 /RHEL7にBINDが正常にインストールされました。冗長性のためにスレーブDNSサーバーを構成できます。


Cent OS
  1. RHEL 8 / CentOS8LinuxにDNSサーバーをインストールする方法

  2. chrootを使用してCentOS5/RHEL5でDNSを構成する

  3. CentOS8でBINDを使用してプライベートDNSサーバーを設定する方法

  1. CentOS 5 /RHEL5でDNSサーバーを構成する方法

  2. CentOS 7 / RHEL 7でスレーブDNS(BIND)を構成する方法

  3. CentOS / RHEL 7 で NTP サーバーとクライアントを構成する方法

  1. CentOS7でDNSサーバーをバインドするためのRNDCキーを構成する

  2. RHEL 8 / CentOS8LinuxでNTPサーバーを構成する方法

  3. CentOS 8 /RHEL8でRsyslogサーバーを構成する方法