LinuxでのDNSサーバーの設定の詳細な説明

LinuxでのDNSサーバーの設定の詳細な説明

1. DNSサーバーの概念

インターネットでの通信には IP アドレスの助けが必要ですが、数字に対する人間の記憶力は単語に対する記憶力に比べてはるかに劣っています。そのため、IP アドレスを覚えやすい単語に変換するのは良い考えですが、コンピューターは 0 と 1 のコードしか認識できません。このとき、IP アドレスとホスト名の変換問題を解決するメカニズムが必要です。DNS は Domain Name System の略で、よく使用する「Web サイト」を IP アドレスに解決するオンライン分散データベース システムです。ほとんどの DNS 名はローカルで解決され、オンラインで通信する必要があるのは少数だけなので、非常に効率的です。

2. DNS関連の概念

DNS はツリー状のディレクトリ構造を使用してホスト名の管理をさまざまなレベルに分散し、ホスト名の検索を高速化し、ホスト名解決の変更をより便利に行うことができます。

ドメイン:

TLD: トップレベルドメイン

組織のドメイン: .com、.org、.net、.edu、.gov、.mil、.cc、…

国別ドメイン: .cn、.us、.tw、.iq、…

逆ドメイン:.in-addr-arpa

完全修飾ドメイン名:

FQDN は Fully Qualified Domain Name の略で、完全修飾ドメイン名です。
FQDN は、ホスト名とドメイン名の 2 つの部分で構成されます。
DNS は階層的に管理されるため、ホスト名とドメイン名はレベルごとに異なります。
www.google.com を例に挙げます。
2 番目のレイヤーでは、.com がドメイン名で、google がホスト名です。
そして3番目のレイヤーは.googleです。
前方解決: FQDN から IP アドレスへの変換を前方解決と呼びます。

逆解決: IPアドレスからFQDNへの変換を逆解決と呼びます。

ゾーン: 順方向または逆方向の解決では、各ドメインレコードはゾーンです。

3. DNSサーバーの解決

DNS の主な機能はホスト名を解決することです。

分析:

ユーザーが指定した名前に従って、解析ライブラリにクエリを実行して別の名前を取得します。 ドメイン名 -> IP、IP -> ドメイン名

リソースレコード: rr (リソースレコード) にはタイプの概念があり、このレコードを解析するために使用される属性があります。

  1. *SOAレコード: 権限の開始レコード。ゾーンファイルには1つしか含められません。
  2. *A レコード: ホスト名 (またはドメイン名) に対応する IP (ipv4) アドレス レコードを指定するために使用されます。 (AAAA IPv6)
  3. *CNAMEレコード: エイリアス解決(ドメイン名)
  4. *NS レコード: ドメイン名を解決する DNS サーバーを指定するために使用されるドメイン ネーム サーバー レコード。
  5. *MXレコード: メールサーバーを指すメール交換レコード
  6. *PTRレコード: 逆DNSレコード、Aレコードの逆
  7. *TTL値: 生存時間、DNSサーバー上のDNSレコードのキャッシュ時間

4. DNSサーバーの原理

DNSは再帰と反復の2つのクエリメカニズムを使用します。

クライアントは DNS サーバーにクエリ要求を送信します。DNS サーバーはローカル解決ライブラリを検索しましたが、結果が見つからないため、ルート ドメインにクエリ要求を送信します。ルート ドメインは、DNS サーバーに、.com サーバーに必要なリソースがあることを伝えます。DNS サーバーは .com サーバーに再度クエリ要求を送信し、.google.com サーバーに必要な結果があることを伝えます。最終的に、.google.com サーバーで解決レコードが見つかり、クライアントに返されます。上記のクエリ プロセスでは、クライアントは要求を 1 回だけ送信し、最終結果を取得します。このクエリ メソッドは再帰と呼ばれます。DNS サーバーは、目的の結果が得られるまで、クエリ プロセス中に要求を送信し続けます。このクエリ メソッドは反復と呼ばれます。

5. DNSクエリの順序

  1. ローカルホストファイル
  2. ローカル DNS キャッシュ
  3. ローカル DNS サーバー
  4. 反復クエリを開始する

6. DNSサーバーポート TCP UDP 53

7. DNSサーバーの種類

プライマリ DNS サーバー:

クライアントにドメイン名解決を提供する主な領域。プライマリ DNS サーバーに障害が発生した場合、セカンダリ DNS サーバーが有効になり、サービスを提供できるようになります。

DNS サーバーから:

  1. 1. マスターサーバーのDNSが長時間応答しない場合、スレーブサーバーもサービスの提供を停止します。
  2. 2. マスター領域とスレーブ領域間の同期には、定期的なチェックと通知メカニズムが使用されます。
  3. 3. スレーブ サーバーは定期的にマスター サーバーのレコードをチェックします。変更が見つかった場合は同期されます。また、マスター サーバーのデータが変更された場合は、すぐにスレーブ サーバーに通知してレコードを更新します。

キャッシュサーバー:

サーバー自体は解決ゾーンを提供しておらず、非権威応答のみを提供します。

転送サーバー:

DNS サーバーの解決領域 (キャッシュを含む) が現在の要求に対して信頼できる回答を提供できない場合、要求は他の DNS サーバーに転送されます。このとき、ローカル DNS サーバーが転送サーバーになります。

構成:

nslookup、dig dns クライアント テスト ツール
#tcpdump、wireshark パケットキャプチャ解析ツール

DNS サーバーの設定、順方向解決、逆方向解決

1. ファイアウォールとSelinuxをオフにする

systemctl 停止 ファイアウォール 
systemctl ファイアウォールを無効にする 
強制0を設定する 
強制する

2. DNSサーバーソフトウェアをインストールする

yum インストール bind-chroot 
#メイン設定ファイル /etc/named.conf
#ゾーン設定ファイル /etc/named.rfc1912.zones は、ドメイン名と IP アドレスの対応を保存するために使用されます。#データ設定ファイル ディレクトリ /var/named は、ドメイン名と IP アドレスの対応の場所を保存するために使用されます。

3. メイン設定ファイルを変更する

vi /etc/named.conf 
listen-on port 53 { any; }; #サーバー上のすべてのIPアドレスがDNSドメイン名解決サービスを提供できます allow-query { any; }; #誰もがこのサーバーにDNSクエリ要求を送信できるようにします #named-checkconfコマンド検出構文

4. 地域設定ファイルを変更する

#ドメイン名とIPアドレスの対応関係を保存するファイルです。このファイルにはドメイン名とIPアドレスの解決ルール、保存ファイルの場所、サービス種別などが定義されていますが、具体的なドメイン名、IPアドレスの対応情報は含まれていません。サービスには、ヒント (ルートゾーン)、マスター (プライマリゾーン)、スレーブ (セカンダリゾーン) の 3 種類があります。一般的に使用されるマスターとスレーブは、プライマリサーバーとスレーブサーバーゾーン "c74.com" IN { を指します。  
     type master; #サービス タイプ ファイル "c74.com.zone"; #ドメイン名と IP アドレス解決ルールの保存ファイル allow-update { none; }; #どのクライアントが解決情報を動的に更新できるか }; #転送解決パラメーター zone "1.168.192.in-addr.arpa" IN { #192.168.1.0/24 ネットワーク セグメントで表されるリフレクション解決ゾーン type master;  
     ファイル "192.168.1.arpa"; 
     }; #逆解析パラメータ

5. 前方解析

5.1 vi /etc/named.rfc1912.zones

元のベースで変更することも、クリアして、使用されている情報ゾーン「c74.com」のみを保持することもできます。IN { #サービス タイプ type master; #ドメイン名と IP アドレス解決ルールの保存ファイル file "c74.com.zone"; #解決情報を動的に更新できるクライアント allow-update { none; }; 
     }; 
#named-checkzone はゾーンファイルの設定をチェックします

5.2#データ設定ファイルを編集します。 /var/named ディレクトリから前方解決テンプレート ファイル (named.localhost) をコピーし、ドメイン名と IP アドレスの対応するデータをデータ構成ファイルに入力して保存します。コピーするときに、元のファイルの所有者、グループ、権限属性などを保持できる -a パラメータを追加することを忘れないでください。

cd /var/named
cp -a named.localhost c74.com.zone #named.localhost のファイル内容 (テンプレート) を c74.com.zone にコピーします vi c74.com.zone 
$TTL 1D #ライフサイクルは1日です @ IN SOA c74.com. root.c74.com.( #@現在のドメイン名 #認証情報の開始 #DNSゾーンのアドレス #ドメイン管理者の電子メールに@記号を使用しないでください 0 ; serial #シリアル番号を更新 1D ; refresh #更新時間 1H ; retry #再試行遅延 1W ; expire #有効期限 3H ); minimum #無効な解決レコード時間 NS ns.c74.com. #ドメイン ネーム サーバー レコード ns IN A 192.168.5.153 #アドレス レコード ns.c74.com.  
 IN MX 10 mail.c74.com. #メールボックス交換レコード 10 は優先度番号で、数字が小さいほどレベルが高くなります。mail IN A 192.168.5.153 #アドレスレコード mail.c74.com. 
 www IN A 192.168.5.153 #アドレスレコード www.c74.com。 
 news IN A 192.168.5.153 #アドレスレコード news.c74.com。 

5.3 サービスを開始してテストする

 systemctl 再起動名前付き 
 yum インストールbind-utils -y 
 #bind-utils は nslookup を使用してクライアントの DNS をテストします 
 > www.c74.com 
 サーバー: 192.168.5.153 
 住所: 192.168.5.153#53
 #他のテストも必要ですが、ここでは省略します

6. 逆分析

#逆解決の機能は、ユーザーが送信した IP アドレスを対応するドメイン名情報に解決することです。一般的には、特定の IP アドレスにバインドされているすべてのドメイン名を一括してブロックしたり、特定のドメイン名から送信されたスパムをブロックしたりするために使用されます。

6.1 vi /etc/named.rfc1912.zones

ゾーン "1.168.192.in-addr.arpa" IN { 
 タイプマスター; 
 ファイル "192.168.1.arpa";
 };

6.2 設定ファイルの編集

 # /var/named ディレクトリから逆解析テンプレート ファイル (named.loopback) をコピーし、次のパラメータをファイルに入力します cd /var/named 
 cp -a 名前付きループバック 192.168.1.arpa 
 vi 192.168.1.arpa 
 $TTL 1日 
 @ SOA c74.com 内。root.c74.com。(          
       0 ; シリアル          
       1D ; 更新          
       1H;再試行          
       1W ; 期限切れ          
       3H ) ; 最小  
      NS ns.c74.com をご覧ください。 
  nsA 192.168.5.153 
  153 PTR ns.c74.com。#PTR はポインタ レコードであり、逆方向の解決にのみ使用されます 153 PTR mail.c74.com。
  153 PTR www.c74.com. 
  153 PTR news.c74.com.

6.3 テスト

 systemctl 再起動名前付き 
  nslookup

7. DNS アドバンスド マスター スレーブ サービス

#マスターサーバーは上記で導入したので、以下では主にスレーブサーバーを紹介します
#DNSドメイン名解決サービスにおいて、スレーブサーバーはマスターサーバーから指定されたゾーンデータファイルを取得できるため、バックアップ解決記録と負荷分散の役割を果たします。したがって、スレーブサーバーを導入することで、マスターサーバーの負荷圧力を軽減し、ユーザーのクエリ効率を向上させることができます。
#テストには 2 台のサーバーが必要です。マスター 192.168.10.10、スレーブ 192.168.10.20

7.1#マスターサーバーのゾーン構成ファイルでスレーブサーバーの更新要求を許可します。つまり、allow-update {ゾーン情報の更新を許可するホストアドレス};パラメータを変更し、マスターサーバーのDNSサービスプログラムを再起動します。

 vi /etc/named.rfc1912 を参照してください。
  ゾーン ゾーン "c74.com" IN { 
        タイプマスター;
        ファイル "c74.com.zone"; 
        更新を許可します { 192.168.10.20; }; 
        }; 
  ゾーン "10.168.192.in-addr.arpa" IN { 
        タイプ マスター; ファイル "192.168.10.arpa"; 
        更新を許可します { 192.168.10.20; };
        }; 
  systemctl 再起動名前付き 

7.2#マスターサーバーのIPアドレスとスレーブサーバーにキャプチャするエリア情報を入力し、サービスを再起動します。このときのサービス タイプはマスターではなくスレーブである必要があることに注意してください。 masters パラメータの後にマスター サーバーの IP アドレスを指定し、file パラメータで同期データ構成ファイルが保存される場所を定義します。後でこのディレクトリ内の同期ファイルを確認できます。

 vi /etc/named.rfc1912.zones 
  ゾーン "c74.com" IN {
       タイプスレーブ; 
       マスター { 192.168.10.10; }; 
       ファイル "slaves/c74.com.zone"; 
       }; 
  ゾーン "10.168.192.in-addr.arpa" IN { 
       タイプスレーブ; 
       マスター { 192.168.10.10; }; 
       ファイル "slaves/192.168.10.arpa"; 
       }; #ファイルパラメータは、同期されたデータ構成ファイルが保存される場所を定義します。後でこのディレクトリ内の同期されたファイルを確認できます。}; systemctl restart named

7.3 #解析結果を確認します。通常、スレーブ サーバーの DNS サービス プログラムを再起動すると、データ構成ファイルはマスター サーバーから自動的に同期され、デフォルトではゾーン構成ファイルで定義されたディレクトリの場所に配置されます。次に、スレーブ サーバーのネットワーク パラメータを変更し、DNS アドレス パラメータを 192.168.10.20 に変更して、スレーブ サーバー自体が提供する DNS ドメイン名解決サービスを使用できるようにします。その後、nslookup コマンドを使用して解析結果を正常に確認できます。

 cd /var/named/slaves
  ls #スレーブ サーバーはマスター サーバーのファイルを同期することに注意してください。
  nslookup 
  ホームページ 
  192.168.10.10

上記は、編集者が紹介した Linux での DNS サーバーの設定の詳細な統合です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • HTTPブラウザキャッシュメカニズムに基づく包括的な分析
  • ブラウザキャッシュの知識要約とアプリケーション分析
  • jsを使用してブラウザのキャッシュをクリアするいくつかの方法
  • ブラウザのキャッシュをクリアするいくつかの方法の概要(必読)
  • Windows Server 2008 R2 DNS サーバー構成のグラフィック チュートリアル
  • Docker のデフォルト ブリッジ ネットワークで DNS を構成する方法
  • Windows Server 2012 で DNS サーバーをインストールして構成する方法の詳細な説明
  • Windows 7にDNSサーバーbind9をインストールする方法の詳細な説明
  • Linux で IP、DNS、ルーティングのコマンドライン設定を変更する方法
  • Cent0S 6.7 の /etc/resolv.conf ファイルで DNS アドレスを直接変更しても、再起動後に反映されない問題を解決します。
  • Nginx で CDN サーバーを構築する方法の詳細な説明 (画像とテキスト)
  • ウェブサイトの高速化における CDN、SCDN、DCDN の違いは何ですか?どうやって選ぶ?
  • CDN を使用して React Webpack パッケージファイルを高速化する詳細な説明
  • Alibaba Cloud Server ドメイン名解決手順 (初心者向けチュートリアル)
  • この記事では、ブラウザキャッシュ、DNS、CDN、ドメイン名解決の種類について説明します。

<<:  MySQL 5.7.17 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

>>:  Javascript で SessionStorage と LocalStorage を使用する方法

推薦する

MySQL ビッグデータ クエリ最適化エクスペリエンスの共有 (推奨)

本格的な MySQL 最適化! MySQL のデータ量が少ない場合は最適化は不要です。データ量が多い...

MySQLのデッドロックとログに関する詳細な説明

最近、MySQL オンラインでいくつかのデータ異常が発生しましたが、すべて早朝に発生しました。ビジネ...

ubuntu14.04 に jdk1.8 をインストールするチュートリアル

1. jdkダウンロードアドレスをダウンロードする我下載的是jdk-8u221-linux-x64....

Linux で Ceph 分散ソフトウェアをインストールして使用する方法に関するチュートリアル

目次序文1. 基本環境1. サービス配信2. ネットワーク構成(全ノード) 3. SSHパスワードフ...

簡潔なReactコンポーネントを書くためのヒント

目次スプレッド演算子を使用してプロパティを渡すのは避けてください関数パラメータをオブジェクトにカプセ...

知らないかもしれない奇妙で興味深いDockerコマンド

はじめに使えるかもしれないが、あまり使われていない、シンプルで実用的なDockerコマンドをいくつか...

VMware vCenter の不正な任意ファイルアップロードの脆弱性 (CVE-2021-21972) について

背景CVE-2021-21972 VMware vCenter における認証されていないコマンド実行...

Vueアイコンセレクターのサンプルコード

出典: http://www.ruoyi.vip/ 'vue' から Vue をイン...

inline-blockプロパティとの互換性

<br />1年前、インターネット上にはinline-blockプロパティに関する記事は...

純粋なJSを使用してセカンダリメニュー効果を実現します

この記事の例では、セカンダリメニュー効果を実現するためのJSの具体的なコードを参考までに共有していま...

データベースを削除して逃げる?xtraback を使用して MySQL データベースをバックアップする方法

1. mysqldump バックアップ方法では論理バックアップが使用されます。最大の欠点は、バック...

MySQL データベース データのロード 複数の用途

目次MySQL Load Dataの多様な用途1. LOAD の基本的な背景2. 基本パラメータをロ...

メタを使用してトラフィックキャッシュをキャンセルし、ページにアクセスするたびにページを更新して簡単にデバッグできるようにします。

コードをコピーコードは次のとおりです。 <!-- ブラウザがローカル キャッシュからページにア...

MySQL インデックス失敗の原理

目次1. インデックス失敗の理由2. インデックスの秩序が崩れる状況を見てみましょう。 - インデッ...

Angularコンポーネントの仲介モードの詳細な説明

目次1. 仲介業者モデル2. 例1. 見積コンポーネントに購入ボタンを追加する2. 親コンポーネント...