LinuxシステムでDNSサービスを構築する方法

DNSサービスの構築方法

Linux システム上に DNS サービスを構築するには、次の手順に従います。

1. BIND パッケージをインストールします。

sudo yum install bind bind-utils

2. メイン DNS サーバーを構成します。/etc/named.confファイルを開いて、DNS サーバーの構成を編集します。ドメイン名とネットワーク環境に応じて、次の設定例を適切な値に変更します。

options {
  listen-on port 53 { any; };
  allow-query { any; };
  recursion yes;
};

zone "example.com" IN {
  type master;
  file "/var/named/example.com.zone";
  allow-update { none; };
};

3. マスター DNS ゾーン ファイルを作成します。DNS レコードを保存するゾーン ファイルを作成します。/var/named/というディレクトリの下にファイルを作成しexample.com.zone対応する DNS レコードを追加します。例:

$TTL 86400
@   IN SOA   ns1.example.com. root.example.com. (
            2018010101 ; Serial
            3600       ; Refresh
            1800       ; Retry
            604800     ; Expire
            86400      ; Minimum TTL
          )
@    IN NS    ns1.example.com.
@    IN A     192.168.1.10
www  IN A     192.168.1.20

4. 逆分析の構成:/etc/named.confファイルを開き、逆分析構成を追加します。例:

zone "1.168.192.in-addr.arpa" IN {
  type master;
  file "/var/named/1.168.192.zone";
  allow-update { none; };
};

5. リバース分析ゾーン ファイルの作成:リバース分析用のディレクトリに という名前のファイル/var/named/を作成します。1.168.192.zone以下を追加します。

$TTL 86400
@   IN SOA   ns1.example.com. root.example.com. (
            2018010101 ; Serial
            3600       ; Refresh
            1800       ; Retry
            604800     ; Expire
            86400      ; Minimum TTL
          )
@    IN NS    ns1.example.com.
10   IN PTR   example.com.
20   IN PTR   www.example.com.

6. ファイアウォール ルールを設定します。ファイアウォールが有効になっている場合は、DNS トラフィックの通過を必ず許可してください。

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

7. DNS サービスを開始して有効にします。

sudo systemctl start named
sudo systemctl enable named

これで、Linux システム上の DNS サーバーがセットアップされました。DNS サーバーを他のデバイス上の CentOS ホストの IP アドレスに設定して、この DNS サーバーをドメイン名解決に使用できます。

実際の運用環境では、ネットワーク要件を満たすために、他のリージョンの追加や転送の構成など、より複雑な構成が必要になる場合があることに注意してください。

DNS の原則と解決プロセス

DNS は、インターネットでドメイン名を IP アドレスに解決するために使用されるシステムです。これは、人間が読めるドメイン名をコンピュータが理解できる IP アドレスにマッピングする分散データベースとして機能します。

DNS 解決プロセスは次のとおりです。

1. ユーザーはブラウザに次のようなドメイン名を入力します。www.example.com

2. オペレーティング システムは、まずローカル キャッシュ (ローカル DNS キャッシュと呼ばれます) をチェックして、ドメイン名の解決結果がすでに存在するかどうかを確認します。その場合は、すぐに戻ってステップ 8 に進みます。そうでない場合は、次の手順に進みます。

3. オペレーティング システムは、事前設定されたローカル DNS サーバーに DNS クエリ要求を送信します。このローカル DNS サーバーは通常、ユーザーの ISP (インターネット サービス プロバイダー) またはカスタム DNS サーバーによって提供されます。

4. ローカル DNS サーバーはクエリ要求を受信すると、まず自身のキャッシュを確認し、対応するドメイン名解決結果があれば、それをオペレーティング システムに直接返します。そうでない場合は、次の手順に進みます。

5. ローカル DNS サーバーは、ドメイン名のトップレベル ドメイン (TLD) に従って、適切なルート ドメイン ネーム サーバー (ルート DNS サーバー) を選択し、クエリ要求を送信します。ルート ドメイン ネーム サーバーは、トップレベル ドメイン ネーム サーバーのアドレス情報を管理します。

6. ルート ドメイン ネーム サーバーは、トップレベル ドメイン ネーム サーバーのアドレスをローカル DNS サーバーに返します。

7. ローカル DNS サーバーは、トップレベル ドメイン ネーム サーバーにクエリ要求を再度送信します。トップレベルドメインネームサーバーは、対応するトップレベルドメイン配下の権威ドメインネームサーバー(権威DNSサーバー)のアドレス情報を管理する役割を担っています。

8. 権限のあるドメイン ネーム サーバーのアドレスを受信した後、ローカル DNS サーバーは最後のクエリ要求を権限のあるドメイン ネーム サーバーに送信します。

9. クエリ要求を受信した後、権威ドメイン ネーム サーバーは、自身のデータ内のドメイン名の解決結果を検索します。

10. 権威ドメイン ネーム サーバーは、ドメイン名の解決結果を見つけると、それをローカル DNS サーバーに返します。

11. 解決結果を受信すると、ローカル DNS サーバーはそれをキャッシュし、解決結果をオペレーティング システムに返します。

12. オペレーティング システムは、解析結果をブラウザなどのアプリケーション プログラムに渡します。

13. アプリケーションプログラムは、解析結果の IP アドレスを使用してサーバーとの接続を確立し、その後の通信処理を完了します。

DNS 解決プロセス全体には複数のクエリと応答が含まれる場合がありますが、DNS システムの分散構造とキャッシュ メカニズムにより、ほとんどの解決結果はローカル DNS キャッシュまたはローカル DNS サーバーのキャッシュから取得できるため、パフォーマンスが向上します。解決速度が向上し、DNS サーバーの負荷が軽減されます。

なお、DNS 解決は一度に完了せず、DNS レコードが変更される可能性があるため、場合によっては、最新の解決結果を取得するまでに DNS レコードの更新時間 (TTL) が経過するまで待つ必要があります。

さらに詳しい内容については、公式アカウント: Sixpence IT をご覧ください。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/vivlol918/article/details/131736561