ウェブサイト検索

RHEL/CentOS 7 で「非バインド」を使用して「キャッシュ専用 DNS サーバー」をインストールおよび構成する方法


Unbound」 (検証、再帰、キャッシュを行う DNS サーバー ソフトウェア) を使用したネーム サーバーのキャッシュ。RHEL/CentOS 6.x (x はバージョン番号) では、bind を使用していました。 DNS サーバーを構成するソフトウェア。

この記事では、「アンバインド」キャッシュ ソフトウェアを使用して、RHEL/CentOS 7 システムに DNS サーバーをインストールして構成します。

DNS キャッシュ サーバーは、受信した DNS クエリを解決するために使用されます。サーバーがクエリをキャッシュし、今後クライアントによってリクエストされた同じクエリが DNS の「アンバウンド」キャッシュから配信される場合、これは最初に解決されたときよりも数ミリ秒以内に実行できます。

キャッシュは、いずれかのフォワーダーからのクライアントのクエリを解決するエージェントとしてのみ機能します。キャッシュ サーバーを使用すると、キャッシュ データベースがバインドされていないサーバーに保持されるため、Web ページの読み込み時間が短縮されます。

私のサーバーとクライアントのセットアップ

デモンストレーションの目的で、2 つのシステムを使用します。最初のシステムはマスター (プライマリ) DNS サーバーとして機能し、2 番目のシステムはローカルDNS クライアントとして機能します。強い>。

マスターDNSサーバー
Operating System   :    CentOS Linux release 7.0.1406 (Core)
IP Address	   :	192.168.0.50
Host-name	   :	ns.tecmintlocal.com
クライアントマシン
Operating System   :	CentOS 6
IP Address	   :	192.168.0.100
Host-name	   :	client.tecmintlocal.com

ステップ 1: システムのホスト名と IP を確認する

1. キャッシュ DNS サーバーを設定する前に、システムの静的 IP アドレスが設定されていない場合は、正しいホスト名が追加され、システムに正しい静的 IP アドレスが設定されていることを確認してください。

2. 正しいホスト名と静的 IP アドレスを設定した後、次のコマンドを使用してそれらを確認できます。

hostnamectl
ip addr show | grep inet

ステップ 2: Unbound のインストールと構成

3. 「Unbound」パッケージをインストールする前に、システムを最新バージョンに更新する必要があります。その後、Unbound パッケージをインストールできます。

yum update -y
yum install unbound -y

4. パッケージのインストール後、元のファイルに変更を加える前に、バインドされていない構成ファイルのコピーを作成します。

cp /etc/unbound/unbound.conf /etc/unbound/unbound.conf.original

5. 次に、お気に入りのテキスト エディタを使用して、「unbound.conf」設定ファイルを開いて編集します。

vim /etc/unbound/unbound.conf

ファイルを開いて編集したら、次の変更を加えます。

インターフェース

インターフェイス を検索し、使用するインターフェイスを有効にするか、サーバーに複数のインターフェイスがある場合はインターフェイス 0.0.0.0 を有効にする必要があります。

ここではサーバー IP は 192.168.0.50 でした。そのため、このインターフェースでは unbound を使用します。

Interface 192.168.0.50
IPv4 とプロトコルのサポートを有効にする

次の文字列を検索し、「はい」にします。

do-ip4: yes
do-udp: yes
do-tcp: yes
ロギングを有効にする

ログを有効にするには、次のように変数を追加します。これにより、すべての非バインド アクティビティがログに記録されます。

logfile: /var/log/unbound
ID とバージョンを非表示にする

id.server クエリと hostname.bind クエリを非表示にするには、次のパラメータを有効にします。

hide-identity: yes

version.server クエリと version.bind クエリを非表示にするには、次のパラメータを有効にします。

hide-version: yes
アクセス制御

次に、アクセス制御を検索して許可します。これは、どのクライアントがこの非バインド サーバーにクエリを実行できるかを許可するためです。

ここでは 0.0.0.0 を使用しました。これは、誰でもこのサーバーにクエリを送信することを意味します。ある範囲のネットワークに対するクエリを拒否する必要がある場合、どのネットワークをバインドされていないクエリから拒否する必要があるかを定義できます。

access-control: 0.0.0.0/0 allow

:allow の代わりに、allow_snoop に置き換えることができます。これにより、digdig などの追加パラメータが有効になります。再帰的と非再帰的の両方をサポートします。

ドメインが安全でない

次に、domain-insecure を検索します。ドメインが DNS sec キーで動作する場合は、ドメインが安全でない場合に使用できるサーバーを定義する必要があります。ここでは、ドメインは安全でないものとして扱われます。

domain-insecure: "tecmintlocal.com
フォワードゾーン

次に、このサーバーによって処理されなかったリクエストされたクエリのフォワーダーを変更し、ルート ドメイン (. ) に転送してクエリを解決します。

forward-zone:
        name: "."
        forward-addr: 8.8.8.8
        forward-addr: 8.8.4.4

最後に、wq! を使用して設定ファイルを保存して終了します。

6. 上記の設定を行った後、次のコマンドを使用して、unbound.conf ファイルにエラーがないかどうかを確認します。

unbound-checkconf /etc/unbound/unbound.conf

7. ファイル検証がエラーなく終了したら、「バインドされていない」サービスを安全に再起動し、システム起動時に有効にすることができます。

systemctl start unbound.service
sudo systemctl enable unbound.service

ステップ 3: DNS キャッシュをローカルでテストする

8. 次に、「india.com」ドメインを「ドリル」(クエリ)して、DNS キャッシュをチェックします。最初は、「india.com」ドメインに対する「ドリル」コマンドの結果に数ミリ秒かかります。その後、2 回目のドリルを実行して、クエリ時間についてメモします。 両方のドリルに必要です。

drill india.com @192.168.0.50

上記の出力で、最初のクエリは解決するのに約 262 ミリ秒かかり、2 番目のクエリはドメイン (india.com0 ミリ秒かかったことがわかりましたか? b>)。

つまり、最初のクエリは DNS キャッシュにキャッシュされるため、2 回目にクエリをローカル DNS キャッシュから提供する「ドリル」を実行すると、Web サイトの読み込み速度を向上させることができます。

ステップ 4: Iptables をフラッシュし、Firewalld ルールを追加する

9. 同じマシン上で iptablesfirewalld の両方を同時に使用することはできません。両方を使用すると、互いに競合してしまいます。 ipables ルールを削除することは良い考えです。 iptables を削除またはフラッシュするには、次のコマンドを使用します。

iptables -F

10. iptables ルールを完全に削除した後、DNS サービスをfirewalld リストに恒久的に追加します。

firewall-cmd --add-service=dns
firewall-cmd --add-service=dns --permanent

11. DNS サービス ルールを追加した後、ルールを一覧表示して確認します。

firewall-cmd --list-all

ステップ 5: Unbound の管理とトラブルシューティング

12. 現在のサーバーのステータスを取得するには、次のコマンドを使用します。

unbound-control status

DNSキャッシュのダンプ

13. 万が一、DNS キャッシュ情報のダンプをテキスト ファイルに保存したい場合は、後で使用できるように、以下のコマンドを使用してファイルにリダイレクトできます。

 # unbound-control dump_cache > /tmp/DNS_cache.txt

14. ダンプされたファイルからキャッシュを復元またはインポートするには、次のコマンドを使用できます。

unbound-control dump_cache < /tmp/DNS_cache.txt

DNS レコードのフラッシュ

15. 特定のアドレスがアンバインド キャッシュ サーバーのフォワーダーによって解決されたかどうかを確認するには、以下のコマンドを使用します。

unbound-control lookup google.com

16. DNS キャッシュ サーバーがクエリに応答しない場合がありますが、その間、キャッシュをフラッシュして AAAA などの情報を削除できます。 NSSOCNAMEMXPTR など.. DNS キャッシュからのレコード。 flush_zone を使用すると、すべての情報を削除できます。これにより、すべての情報が削除されます。

unbound-control flush linux-console.net
unbound-control flush_zone tecmintlocal.com

17. 解決に現在どのフォワードが使用されているかを確認します。

unbound-control list_forwards

ステップ 6: クライアント側の DNS 構成

18. ここではクライアント マシンとして CentOS 6 サーバーを使用しています。このマシンの IP は 192.168.0.100 です。インターフェイス設定でバインドされていない DNS サーバー IP (つまりプライマリ DNS) を使用します。

クライアント マシンにログインし、プライマリ DNS サーバー IP をアンバインド サーバーの IP に設定します。

setup コマンドを実行し、TUI ネットワーク マネージャーからネットワーク構成を選択します。

次にDNS構成を選択し、アンバインドDNSサーバーのIPをプライマリDNSとして挿入します。ただし、ここではプライマリセカンダリ<の両方を使用しています。 他に DNS サーバーがないためです。

Primary DNS	: 192.168.0.50
Secondary DNS	: 192.168.0.50

OK –> 保存して終了 –> 終了 をクリックします。

19. プライマリおよびセカンダリ DNS IP アドレスを追加したら、次のコマンドを使用してネットワークを再起動します。

/etc/init.d/network restart

20. 次に、クライアント マシンからいずれかの Web サイトにアクセスし、アンバインド DNS サーバーのキャッシュを確認します。

elinks aol.com
dig aol.com

結論

以前は、RHEL および CentOS システムでバインド パッケージを使用して DNS キャッシュ サーバーをセットアップしていました。ここまで、バインドされていないパッケージを使用して DNS キャッシュ サーバーをセットアップする方法を説明しました。これにより、バインド パッケージよりも早くクエリ リクエストが解決されることを願っています。