このガイドでは、キャッシュモードのみでRHEL 8 / CentOS 8にDNSサーバーをインストールして構成する方法、またはマスタースレーブ構成なしで単一のDNSサーバーとして構成する方法を示します。リバースゾーンとフォワードゾーンの例が提供されています。
このチュートリアルでは、次のことを学びます。
- RHEL 8 /CentOS8にDNSサーバーをインストールする方法
- サーバーをDNSサーバーのみをキャッシュするように構成する方法
- サーバーを単一のDNSサーバーとして構成する方法
 DNSサーバーを介してクエリを解決するクライアント。
  DNSサーバーを介してクエリを解決するクライアント。 使用されるソフトウェア要件と規則
| カテゴリ | ネットワーキング | 
|---|---|
| RHEL 8 / CentOS 8 | |
| バインド | |
| rootまたは sudoを介したLinuxシステムへの特権アクセス コマンド。 | |
| # –指定されたLinuxコマンドは、rootユーザーとして直接、または sudoを使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります | 
前提条件
開始する前に、次のことを前提としています。
- あなたまたはあなたの組織はすでにRedHatでアカウントを作成しています
- RHEL 8 /CentOS8はすでにダウンロードおよびインストールされています
- システムはサブスクリプションを通じてすでに登録されています
 マネージャー
- すでにローカルまたはリモートリポジトリを設定しています
DNSサーバーのインストール
- バインドのインストール
 最も有名なオープンソースDNSサーバーであるパッケージBINDをdnfを介してインストールします。 現在yumになっているツール に基づいています。
 実行するコマンドは次のとおりです。# dnf -y install bind* これらすべてのパッケージをインストールする必要があります:  バインドパッケージのリスト バインドパッケージのリスト
一般的なDNSサーバー構成
- ファイアウォールの構成
 DNSサービスを有効にする必要があります:# firewall-cmd --permanent --zone=public --add-service=dns 構成をリロードします: # firewall-cmd --reload 
- メイン構成ファイルのバックアップ
 メインバインド構成ファイルの初期バックアップコピーを作成することは常に良い習慣です。変更前にも。# cp /etc/named.conf /etc/named.conf.org # cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.org 
- ネットワーク構成の確認
 DNSサーバーには静的IPアドレスが必要です。その場合を確認しましょう:$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s3|egrep -i "boot|ipaddr|mask|gateway" たとえば、次の結果が得られます。 BOOTPROTO=static ONBOOT=yes IPADDR=10.0.0.63 NETMASK=255.255.255.0 GATEWAY=10.0.0.1 もちろん、ネットワーク構成は異なる場合がありますが、IPアドレスは静的である必要があります。 
- ドメイン名の選択
 完全修飾ドメイン名またはFQDNを設定するには# hostnamectl set-host name dns-srv.vulcansys-local.com もちろん、別の名前を選択することもできます。ここでは、どの組織にも登録されていないように見えるドメイン名を発明しました。 
- リゾルバーの構成resolv.confを構成します ファイル。最初の行は次のようにする必要があります:search vulcansys-local.com nameserver 10.0.0.63 これは、サーバーとDNSをクエリするクライアントの両方にあります。もちろん、インターネットサイトやその他のドメインを解決するには、2番目のネームサーバーを追加する必要があります。 
- NetworkManagerのDNS自動設定を無効にする
 NetworkManagerがresolv.confを変更することは望ましくありません ファイル。これを行うには、
 行を追加するだけです:dns=noneファイル/etc/NetworkManager/NetworkManager.conf、サービスをリロードします:# systemctl reload NetworkManager 
- 起動時にバインドサービスを有効にする
 DNSサービスがシステムで開始されていることを確認する必要があります。# systemctl enable named 
DNSサーバーの種類
一度に1つだけ、以下のモードのいずれかで動作するようにDNSサーバーを構成することができます。
- ルートサーバー
- 単一サーバー
- セカンダリサーバー
- キャッシュ専用サーバー
- 転送サーバー
この記事では、キャッシング専用サーバーと単一サーバーのセットアップ方法についてのみ説明します。
 キャッシュ専用DNSサーバーはゾーンをホストせず、特定のドメインに対して権限がありません。サーバーが最初に起動されたとき、サーバーにはキャッシュされた情報がなく、クライアントの要求が満たされると、情報は時間の経過とともに取得されます。
 
 プライマリまたは単一のDNSサーバーはドメインに対して権限がありますが、高可用性がないため、静的ファイル/etc/hosts 。
これまでに構成したものは、どの「構成モード」を選択する場合でも一般的です。
- DNSサーバーのみをキャッシュする
 次の行がnamed.confで変更/構成されていることを確認します ファイル:listen-on port 53 { 127.0.0.1; 10.0.0.63; }; #listen-on-v6 port 53 { ::1; }; allow-query { 127.0.0.1; 10.0.0.0/24; }; recursion yes; allow-recursion { 127.0.0.1; 10.0.0.0/24; };ここで簡単にするために、サーバーはIPv6アドレスをリッスンしません(したがって、相対行はコメント化されます)。構成に問題がないかどうかを確認するには、次のコマンドを実行します。 # named-checkconf すべてが正常である場合、出力は返されません。最後に、サービスに構成をリロードさせる必要があります: # systemctl reload named 
- 単一のDNSサーバー
 このタイプを選択した場合、選択したドメインの名前解決を担当する権限のあるDNSサーバーになります。ここでも、/etc/named.confを編集します :listen-on port 53 { localhost; 10.0.0.63; }; #listen-on-v6 port 53 { ::1; }; allow-query { 127.0.0.1; 10.0.0.0/24; }; recursion no;このガイドでは、簡単にするために、IPv6アドレスでリッスンするようにバインドサービスを設定していません。 オプション recursion noDNSが特定のクエリに対する回答を提供するためにすべての仕事をするわけではないことを確認しますが、必要に応じてルートサーバーに委任し、他の権限のあるサーバーにそれらの不明な名前またはIPのタスクを委任します。言い換えると、権限のあるサーバーは再帰的であってはなりません 。その後、ゾーンファイルを指定する必要があります。ここでは、フォワードゾーンを構成します (名前からIPに解決するため)および逆引きゾーン (IPアドレスが指定された名前に解決するために)それぞれ特定のファイルで、ファイル named.rfc1912.zonesに次の行を追加します。 ファイル:zone "vulcansys-local.com" IN { type master; file "forward.zone"; allow-update { none; }; }; zone "63.0.0.10.in-addr.arpa" IN { type master; file "reverse.zone"; allow-update { none; }; };オプション allow-updateDNS動的更新を指します。つまり、ホスト内のアプリケーションがDNSレコードを追加できます。セキュリティ上の理由から、これはデフォルトで無効になっているため、システム管理者のみがレコードを手動で追加できます。次に、ファイル forward.zoneを作成する必要があります およびreverse.zone。通常、ゾーンファイルは
 ディレクトリ/var/named内にありますdirectoryから推測できるようにnamed.confのオプション 構成ファイル。forward.zoneファイルには次のものが含まれます:$TTL 1D @ IN SOA dns-srv.vulcansys-local.com. root.vulcansys-local.com. ( 2019022400 ; serial 3h ; refresh 15 ; retry 1w ; expire 3h ; minimum ) IN NS dns-srv.vulcansys-local.com. dns-srv IN A 10.0.0.63そして、 reverse.zoneファイル:$TTL 1D @ IN SOA dns-srv.vulcansys-local.com. root.vulcansys-local.com. ( 2019022400 ; serial 3h ; refresh 15 ; retry 1w ; expire 3h ; minimum ) IN NS dns-srv.vulcansys-local.com. 63 IN PTR dns-srv.vulcansys-local.com上記の設定ファイルで SOA(Start Of Authority)は、ゾーン(ドメイン)のグローバルパラメーターを定義します。指定できるリソースレコードは1つだけです(完全修飾ドメイン名を持つSOAキーワードの行)。残り時間($ TTL)はデフォルトで1日(または86400秒)であり、この構成ファイルのエントリを変更する場合は、取得した情報をキャッシュする期間をDNSサーバーに指示するため、一時的に短縮する必要があります。最も重要なのは、これらの構成ファイル内の完全修飾ドメイン名をドットで終了することを忘れないことです。 。ここで root.vulcansys-local.comは電子メールアドレスであり、2019022400ゾーンファイルの変更を追跡するために実際に存在し、通常はYYYYmmddssの形式のシリアルフィールド 、ここでssは2桁の数字です。逆のファイルでは、最後の行を除いてすべてが同じように見えることに気付いたかもしれません。そこで PTRで指定します10.0.0.63に解決される逆引き参照;最後の桁を入力するだけです63これはホストを識別します(ネットマスクは255.255.255.0であるため) 。これで、正しい権限があることを確認します: # chgrp named /var/named/reverse.zone # chgrp named /var/named/forward.zone ゾーンファイルが正しく構成されていることを確認するには、次のコマンドを発行できます。 # named-checkzone vulcansys-local.com /var/named/forward.zone # named-checkzone 10.0.0.63 /var/named/reverse.zone そして、全体的な構成を確認するには: # named-checkconf -v すべて問題がなければ、サービスをリロードできます: # systemctl reload named 
クライアント構成
- ファイアウォールの構成
 サーバーで上記のようにファイアウォールを構成する必要があります。簡単にするために、クライアントもRHEL7または8であると想定しています。
- リゾルバーの設定
 最初のネームサーバーはサーバーのDNSである必要があります。また、ここでは、ネットワークマネージャーがresolv.confファイルを変更しないようにしてください。
- ホスト名の設定
 一貫性を保つために、ドメイン内のすべてのクライアントにFQDNホスト名が割り当てられます。
最後に、DNSサーバーに名前でpingを実行して、クライアントからDNS構成が機能していることを確認します。
 DNSサーバーを介してクエリを解決するクライアント。
  DNSサーバーを介してクエリを解決するクライアント。 結論
DNSサーバーのセットアップは、真面目な管理者が少なくとも1回は実行する必要のあるタスクであり、RHEL8ではそれを実行する方法は難しくありません。