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

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

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

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

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

前提条件

ホスト名: ns1.itzgeek.local

IPアドレス: 192.168.0.10

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

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

yum -y install bind bind-utils

DNSサーバーの構成

BINDのメイン構成ファイルは/etc/named.confです。このファイルを使用して、DNSサーバーを構成し、DNSゾーンを定義します。

デフォルトでは、BINDはローカルホストでリッスンします。そのため、すべてのネットワークインターフェイスまたは特定のインターフェイスでリッスンするようにDNSサーバーを構成します。

/etc/named.confファイルを編集します。

vi /etc/named.conf

次の行をコメントアウトします。これにより、BINDはローカルホスト以外のシステムネットワークインターフェイスをリッスンできるようになります。

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

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

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

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

次の行にネットワークを追加します。 192.168.0.0/24ネットワークのクライアントがDNSサーバーに名前からIPへの変換を照会できるようにするために192.168.0.0/24を追加しました。

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

ゾーンの作成

/etc/named.confファイルを編集します。

vi /etc/named.conf

フォワードゾーン

以下は、itzgeek.localドメイン用に作成されたnamed.confファイルのフォワードゾーンエントリです。

zone "itzgeek.local" IN { // Domain Name
           
           type master;  // Master DNS Server

           file "itzgeek.local.db";  // Zone File (/var/named/)

           allow-update { none; };  // Since master DNS, it is none

};

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

逆引きゾーン

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

zone "0.168.192.in-addr.arpa" IN { // Reverse Zone Name, should match with network in reverse order
             
             type master;  // Master DNS Server
             
             file "192.168.0.db";  // Zone File (/var/named/) 
             
             allow-update { none; }; // Since master DNS, it is none
 
};

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

ゾーンファイルを作成する

次に、作成したゾーンのルックアップファイルを作成します。デフォルトでは、ゾーンルックアップファイルは/ var/namedディレクトリの下に配置されます。 / var/namedディレクトリの下に前方参照用のitzgeek.local.dbというゾーンファイルを作成します。

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

フォワードゾーン

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

ファイルを作成します。

vi /var/named/itzgeek.local.db

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

$TTL 86400
@   IN  SOA     ns1.itzgeek.local. root.itzgeek.local. (
                                              3           ;Serial
                                              3600        ;Refresh
                                              1800        ;Retry
                                              604800      ;Expire
                                              86400       ;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.

DNSレコードを更新するためにゾーンファイルを更新するときはいつでも、シリアルをインクリメントすることを忘れないでください。

逆引きゾーン

/ var / namedディレクトリの下に逆引きゾーン用の192.168.0.dbというゾーンファイルを作成し、上記の順方向ゾーンエントリへの逆引きポインタを作成します。

vi /var/named/192.168.0.db

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

$TTL 86400
@   IN  SOA     ns1.itzgeek.local. root.itzgeek.local. (
                                       3           ;Serial
                                       3600        ;Refresh
                                       1800        ;Retry
                                       604800      ;Expire
                                       86400       ;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.

DNSレコードを更新するためにゾーンファイルを更新するときはいつでも、シリアルをインクリメントすることを忘れないでください。

DNSサーバー構成の検証

named-checkconfコマンドを使用して、構成ファイルを検証します。

named-checkconf /etc/named.conf

エラーが表示されない場合は、問題ありません。

以下のコマンドで作成したフォワードゾーンファイルを検証します。

named-checkzone itzgeek.local /var/named/itzgeek.local.db

itzgeek.local ドメイン名

/var/named/itzgeek.local.db ゾーンファイルへのパス

出力:

zone itzgeek.local/IN: loaded serial 3
OK
出力に記載されているシリアル番号は、ゾーンファイルのシリアル番号と一致している必要があります。

逆引きゾーンについても同じように実行します。

named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.db

出力:

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

DNSサービスを開始する

DNS構成を検証したら、バインドサービスを再起動します。

systemctl restart named

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

systemctl enable named

DNSレコードの更新

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

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

### Forward Zone ###

rndc reload itzgeek.local

### Reverse Zone ###

rndc reload 0.168.192.in-addr.arpa

ファイアウォール

クライアントマシンからのDNSクエリを許可するファイアウォールルールを追加します。

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

firewall-cmd --reload

DNSサーバーの確認

Network Managerがネットワークを管理していない場合は、任意のクライアントマシンにアクセスし、DNSサーバーのIPアドレスを/etc/resolv.confに追加します。

nameserver 192.168.0.10

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

DNS1=192.168.0.10

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

service network restart

OR

systemctl restart NetworkManager

次のコマンドを使用して、前方参照を確認します。ここで、DNSサーバーはwww.itzgeek.localのIPとして192.168.0.100を提供します

dig www.itzgeek.local

出力:

; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> www.itzgeek.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42679
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 99d94df91828bc8e957709ec5e13f9cd0c242970a9488a91 (good)
;; 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      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: Tue Jan 07 08:53:56 IST 2020
;; MSG SIZE  rcvd: 124
bind-utilsパッケージをインストールして、nslookupまたはdigコマンドを取得します。

DNSサーバーが192.168.0.100の名前としてwww.itzgeek.localを指定する逆引き参照を確認します 。これで、順方向ルックアップと逆引きルックアップの両方が正常に機能していることが確認されました。

dig -x 192.168.0.100

出力:

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: d36aa24edb88f8951b3fbf8c5e13fa2cbf0e3ed754a00eee (good)
;; 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: Tue Jan 07 08:55:30 IST 2020
;; MSG SIZE  rcvd: 148

結論

それで全部です。これで、マスターサーバーとしてCentOS 8 /RHEL8にBINDが正常にインストールされました。次の記事では、CentOS 8 /RHEL8でスレーブDNSサーバーを構成する方法を説明します。


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

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

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

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

  2. CentOS / RHEL 7/6/5でDNS(バインド)サーバーをセットアップする方法

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

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

  2. CentOS / RHEL :DHCP サーバーの構成方法

  3. Centos 7 :DNS サーバーの構成