RHEL / CentOS7で「Unbound」を使用して「CacheOnlyDNSServer」をインストールおよび構成する方法


' Unbound '(検証、再帰、およびキャッシングDNSサーバーソフトウェア)を使用してネームサーバーをキャッシングし、RHEL/CentOS 6.x(xはバージョン番号)に戻って、 bindを使用しました DNSサーバーを構成するためのソフトウェア。

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

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

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

デモンストレーションの目的で、2つのシステムを使用します。最初のシステムはマスター(プライマリ)DNSサーバーとして機能し、2番目のシステムはローカル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:アンバウンドのインストールと構成

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

# 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 だったので、このインターフェースではアンバウンドを使用します。

Interface 192.168.0.50

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

do-ip4: yes
do-udp: yes
do-tcp: yes

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

logfile: /var/log/unbound

次のパラメータを有効にして、 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 に置き換えることができます。これにより、 dig などの追加パラメーターが有効になり、再帰的と非再帰的の両方がサポートされます。

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

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.次に、1つの「india.com」ドメインを「ドリル」(クエリ)して、DNSキャッシュを確認します。最初に「india.com」ドメインの「drill」コマンドの結果に数ミリ秒かかり、次に2番目のドリルを実行して、両方のドリルにかかるクエリ時間についてメモします。

drill india.com @192.168.0.50

上記の出力で確認したように、最初のクエリの解決にはほぼ 262ミリ秒かかり、2番目のクエリの解決には 0ミリ秒かかります( india.com )。

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

ステップ4:Iptablesをフラッシュし、ファイアウォールで保護されたルールを追加する

9.同じマシンでiptablesとfirewalldの両方を同時に使用することはできません。両方を使用すると互いに競合するため、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:アンバウンドの管理とトラブルシューティング

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

# unbound-control status

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

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

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

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

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

# unbound-control lookup google.com

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

# unbound-control flush www.digitalocean.com
# 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 として挿入しますが、ここではプライマリセカンダリ<の両方で使用しています。/b>他にDNSサーバーがないため。

Primary DNS	: 192.168.0.50
Secondary DNS	: 192.168.0.50

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

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

# /etc/init.d/network restart

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

# elinks aol.com
# dig aol.com

結論

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

全著作権所有。 © Linux-Console.net • 2019-2022