 
 ドメインネームシステム(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: 124bind-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サーバーを構成する方法を説明します。