Windows にキャッシュ DNS サーバーをインストールします。 ローカル ネットワーク用のキャッシュ DNS サーバー (BIND) をセットアップします。 反復または再帰クエリ

09.10.2021

注意

dnsmasq を正しくインストールして構成するには、スーパーユーザー セッションに移動します。

パスワードの入力を求められたら、スーパーユーザーまたはローカル管理者のパスワードを入力します。

DNS キャッシュは、Web サイトの IP アドレスをメモリに保存することで、Web サイトのページの読み込みを高速化するように設計されています。 キャッシュを構成するには、ユーティリティを使用します dnsマスク.

yum dnsmasq をインストールします

テキスト エディタ vi または nano を使用して、次の場所にあるファイルを開きます。 /etc/dnsmasq.conf

/etc/dnsmasq.conf で

Nano /etc/dnsmasq.conf

次の設定を編集します。

Resolv-file=/etc/resolv.dnsmasq no-poll listen-address=127.0.0.1cache-size=150 conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig

また、次のパラメータを追加します。

全サーバー

  • 解決ファイル- DNS サーバーの IP アドレスを含むファイル
  • 投票なし- resolv という名前のファイルへの変更の自動適用を禁止するパラメータ。
  • リッスンアドレス- どのアドレスをリッスンするかを示すパラメータ。
  • キャッシュサイズ- キャッシュサイズ。 デフォルト値では、150 個のホストを保存できます。
  • cオンディレクトリ- 追加の構成ファイルを担当するパラメータ。
  • 全サーバー- DNS リクエストを利用可能なすべての DNS サーバーにリダイレクトし、最初に応答したサーバーから応答を返します。 パラメータは手動で書き留める必要があります。

次のパラメータを指定することもできます。

  • ネガキャッシュなし- サーバーからの否定的な応答をキャッシュしません。
  • bインドインターフェースs- プロセスのコピーを実行できます。
  • dns-forward-max- DNS リクエストの最大数。 デフォルトは 150 です。パラメータは手動で書き留める必要があります。

ファイルを作成します resolv.dnsmasqテキストエディタを使用して ヴィまたは ナノそこに DNS サーバーのアドレスを書き留めます。

Vi /etc/resolv.dnsmasq

Nano /etc/resolv.dnsmasq

次にIPアドレスを追加します 127.0.0.1 ファイルする 解決.conf。 これを行うには、ユーティリティを使用します « ネットワーク接続» にあります 「メニュー」→「オプション」→「ネットワーク接続」グラフィック環境で シナモンまたは 「システム」→「設定」→「ネットワーク接続」グラフィック環境で メイト。 アクティブな接続を選択し、ボタンをクリックします "変化"、タブに移動します 「IPv4設定」、 変化 "方法"の上 「自動(DHCP、アドレスのみ)」、そしてフィールドで」 追加のDNSサーバー» 住所を書きます 127.0.0.1 、「適用」をクリックして再起動します ネットワークマネージャー。

resolv.conf ファイルを編集する テキストエディタ推奨されません。 ファイルは次回のシステム再起動時に上書きされます。

Systemctl は NetworkManager.service を再起動します

変更が有効になっていることを確認するには、ファイルの内容を確認してください。 解決.conf:

猫 /etc/resolv.conf

内容は次のようになります。

# NetworkManager ネームサーバー 127.0.0.1 によって生成

上記の操作により、すべての DNS リクエストをローカル マシンにリダイレクトできるようになります。

サービスを追加する dnsマスク自動実行してセッションに再ログインするには:

Systemctl は dnsmasq.service --now を有効にします

キャッシュをリセットするには、サービスを再起動するだけです。

Systemctl は dnsmasq.service を再起動します

機能チェック

サービスが有効になっているかどうかを確認します。

Systemctl ステータス dnsmasq.service

ポート 53 を確認します。

Netstat -ntlp | grep:53 tcp 0 0 0.0.0.0:53 0.0.0.0:* リッスン 7319/dnsmasq tcp6 0 0:::53:::* リッスン 7319/dnsmasq

次に、dig ユーティリティを使用してサイトに数回アクセスしてみます。 google.com

google.com を掘る | grep "クエリ時間" ;; クエリ時間: 135 ミリ秒

DNS リクエストのキャッシュが機能する場合、次のほぼすべてのリクエストで強調表示された行が表示されます。 クエリ時間はゼロに等しくなります。

;; クエリ時間: 0 ミリ秒

それ以外の場合は、新しいリクエストごとに 0 以上の範囲で変化します。

その結果、ネットワーク上のメイン DNS サーバーの負荷が大幅に軽減されます。

エラーを見つけた場合は、テキストを強調表示して、 Ctrl+Enter.


著者: ポール・コバウト
発行日: 2015 年 5 月 24 日
翻訳: A. パニン
翻訳日: 2015 年 7 月 11 日

第 4 章: DNS サーバーの概要

4.3. DNSサーバーのキャッシュ

DNS ゾーンにはサービスを提供しないが、クエリをキャッシュするために他のネーム サーバーに接続されている DNS サーバーは、キャッシュ DNS サーバーと呼ばれます。 キャッシュ DNS サーバーは、リソース レコードを含む DNS ゾーン データベースでは機能しません。 代わりに、他のネームサーバーに接続し、関連情報をキャッシュします。

DNS キャッシュ サーバーには 2 つのタイプがあります。 これらは、転送 DNS サーバーを使用する DNS サーバーと、ルート DNS サーバーを使用する DNS サーバーです。

4.3.1. フォワーダーを使用しないキャッシュDNSサーバー

フォワーダーを使用しないキャッシュ DNS サーバーは、他の場所から情報を取得する必要があります。 クライアントからリクエストを受信すると、ルート サーバーの 1 つに接続します。 ルート サーバーは、ターゲット ドメインにサービスを提供するサーバーに関する情報をキャッシュ サーバーに渡します。 トップレベルこれにより、別の DNS サーバーに転送されます。 最後のサーバーは、要求に応答するための情報を持っているか、その情報を持っている可能性のある別の DNS サーバーに関する情報を渡すことができます。 最終的に、DNS サーバーはリクエストに応答するために必要な情報を受信し、クライアントに応答を送信します。

以下の図は、クライアントがドメイン名 linux-training.be の IP アドレス情報のリクエストを送信するプロセスを示しています。 キャッシュ サーバーはルート サーバーに接続し、.be トップレベル ドメインを提供するサーバーにリダイレクトされます。 次に、.be トップレベル ドメインを提供するサーバーに接続し、Openminds 組織のネームサーバーの 1 つにリダイレクトされます。 これらのネームサーバーの 1 つ ( この場合 nsq.openminds.be) は、サーバーの IP アドレスを提供することでリクエストに応答します。 ドメイン名 linux-トレーニング.be。 キャッシュサーバーが送信した後 この情報クライアントは、問題の Web サイトに接続できるようになります。

tcpdump スニファを使用して特定のドメイン名を解決すると、次の出力が得られます (各行の最初の 20 文字が削除されています)。

192.168.1.103.41251 > M.ROOT-SERVERS.NET.ドメイン: 37279% A? linux-tr\ aining.be。 (46) M.ROOT-SERVERS.NET.domain > 192.168.1.103.41251: 37279- 0/11/13 (740) 192.168.1.103.65268 > d.ns.dns.be.domain: 38555% A? Linux トレーニング。 (46) d.ns.dns.be.domain > 192.168.1.103.65268: 38555- 0/7/5 (737) 192.168.1.103.7514 > ns2.openminds.be.domain: 60888% A? linux-train\ing.be. (46) ns2.openminds.be.domain > 192.168.1.103.7514: 60888*- 1/0/1 A 188.93.155.\ 87 (62)

4.3.2. フォワーダーサーバーを使用したキャッシュDNSサーバー

フォワーダーを使用するキャッシュ DNS サーバーは、フォワーダーから必要な情報をすべて取得する DNS サーバーです。 たとえば、インターネット サービス プロバイダーの DNS サーバーは、リダイレクト DNS サーバーとして機能できます。

上の図は、DNS サーバーを示しています。 ローカルネットワーク ISP が提供する DNS サーバーを転送 DNS サーバーとして使用する企業。 インターネット プロバイダーから提供された DNS サーバーの IP アドレスが 212.71.8.10 の場合、会社の DNS サーバーのnamed.conf 構成ファイルに次の行が存在する必要があります。

フォワーダー ( 212.71.8.10; );

さらに、条件付きフォワーダーと連携するように DNS サーバーを構成することもできます。 設定ファイル内の条件付きフォワーダー DNS サーバーの説明は次のとおりです。

ゾーン "someotherdomain.local" ( type forward; forward Only; forwarders ( 10.104.42.1; ); );

4.3.3. 反復または再帰クエリ

再帰リクエストは DNS リクエストであり、送信後、クライアントは DNS サーバーから最終応答を受信することを期待しています (上の図では、MacBook から DNS サーバーに向かう太字の赤い矢印で示されています)。 反復リクエストは、送信後にクライアントが DNS サーバーから最終応答を受け取ることを期待していない DNS リクエストです (上の図では、DNS サーバーからの 3 つの黒い矢印で示されています)。 反復クエリはほとんどの場合、ネーム サーバー間で実行されます。 ルート ネームサーバーは再帰的なクエリに応答しません。

DNS ゾーンを管理する DNS サーバーは、そのゾーンの権威 DNS サーバーと呼ばれます。 DNS ゾーンは単なるリソース レコードのコレクションであることに注意してください。

最初の権威DNSサーバー DNSゾーンプライマリDNSサーバーと呼ばれます。 このサーバーは、読み取りと書き込みの両方が可能な DNS ゾーン データベースのコピーを使用して動作します。 障害発生時のデータ セキュリティを強化したり、サーバーのパフォーマンスや負荷分散を改善したりする必要がある場合は、この DNS ゾーンも管理する別の DNS サーバーを委託できます。 このサーバーをセカンダリ DNS サーバーと呼びます。

セカンダリ サーバーは、DNS ゾーン転送中にプライマリ サーバーから DNS ゾーン データベースのコピーを受信します。 DNS ゾーン データ転送のリクエストは、セカンダリ サーバーによって一定の時間間隔で送信されます。 これらの時間間隔の期間は、SOA リソース レコード内で設定されます。

rndc ユーティリティを使用して、DNS ゾーン データを強制的に更新できます。 以下の例では、DNS ゾーン fred.local のデータ転送を開始し、対応するファイル フラグメントも出力します。 シスログ/var/log/syslog。

root@debian7:/etc/bind# rndc リフレッシュ fred.local root@debian7:/etc/bind# grep fred /var/log/syslog | 尾-7 | カット -c38-ゾーン fred.local/IN: 送信通知 (シリアル 1) が制御チャネル コマンド「refresh fred.local」を受信しました ゾーン fred.local/IN: 転送が開始されました。 10.104.109.1#53 からの「fred.local/IN」の転送: 10.104.33.30#57367 ゾーンを使用して接続 fred.local/IN: 転送 10.104.109.1#53 からの「fred.local/IN」のシリアル 2 転送: 転送完了: 1 メッセージ、10 レコード、264 バイト、0.001 秒 (264000 バイト/秒) ゾーン fred.local/IN: 通知の送信 (シリアル 2) root@debian7:/etc/bind#

セカンダリ DNS サーバーを DNS ゾーンに追加する場合、そのサーバーをプライマリ サーバーのスレーブ DNS サーバーとして構成できます。 プライマリ DNS サーバーは、セカンダリ サーバーに対するマスター DNS サーバーになります。

ほとんどの場合、プライマリ DNS サーバーは、すべてのスレーブ サーバーと通信するマスター サーバーです。 場合によっては、スレーブ サーバーが次のレベルのスレーブ サーバーのマスター サーバーになることもあります。 次の図では、ns1 という名前のサーバーがプライマリ サーバーで、ns2、ns3、ns4 という名前のサーバーがセカンダリ サーバーです。 ns2 および ns3 という名前のサーバーのマスター サーバーは ns1 ですが、ns4 のマスター サーバーは ns2 です。

SOA リソース レコードには、refresh という名前の DNS ゾーン データ リフレッシュ レート値が含まれています。 この値を 30 分に設定すると、スレーブ サーバーは 30 分ごとに DNS ゾーン データのコピーを転送する要求を送信します。 このエントリには、 retry という名前のタイムアウト期間の長さの値も含まれています。 この値マスターサーバーが最後の DNS ゾーンデータ転送要求に応答しない場合に使用されます。 有効期限という名前の値は、スレーブ サーバーが DNS ゾーン データを更新せずにクライアントからの要求に応答できる期間を設定します。

以下は、nslookup ユーティリティを使用して DNS ゾーン (linux-training.be) の SOA リソース レコード データを読み取る例です。

ルート@debian6:~# nslookup > セットタイプ=SOA > サーバーns1.openminds.be > linux-training.beサーバー: ns1.openminds.be アドレス: 195.47.215.14#53 linux-training.be 起点 = ns1.openminds.be メール アドレス = hostmaster.openminds.be シリアル = 2321001133 更新 = 14400 再試行 = 3600 期限切れ = 604800 最小 = 3600

DNS ゾーン データの転送は、DNS ゾーン データベース内のデータが変更された場合 (つまり、1 つ以上のデータが変更された場合) にのみ発生します。 もっとマスターサーバー側のリソースレコード)。 スレーブ サーバーは、SOA リソース レコードの自身のコピーのバージョン番号を、対応するマスター サーバーの SOA リソース レコードのバージョン番号と比較します。 バージョン番号が一致する場合、データの更新は必要ありません (他のリソース レコードが追加、削除、または変更されていないため)。 同様の場合、スレーブサーバー側の SOA リソースレコードのバージョン番号が、対応するマスターサーバー側の同じレコードのバージョン番号より小さい場合、DNS ゾーンのデータ転送要求が行われます。

以下は、DNS ゾーンのデータ転送中に傍受されたデータを含む Wireshark スニファー ウィンドウのスナップショットです。

4.9. DNS ゾーン データの完全または部分的な転送

DNS ゾーン データの転送は、完全または部分的に行うことができます。 どちらのモードを使用するかは、転送する必要があるデータの量によって決まります。 完全なアップデートスレーブサーバー上のDNSゾーンデータベース。 変更されたデータの総量がデータベース全体のサイズよりも小さい場合は、ゾーン データの部分転送が推奨されます。 完全な DNS ゾーンのデータ転送は AXFR プロトコルを使用して実行され、部分的な DNS ゾーンのデータ転送は IXFR プロトコルを使用して実行されます。

Web ブラウジングを高速化するには、オペレーティング システム Windowsシステム DNS サーバーの応答をキャッシュします。 DNS サーバーから番号を特定するための応答が到着するとすぐに、Windows はこのアドレスをローカル ストレージに自動的に配置します。 ブラウザーが URL を要求すると、Windows はまずストレージ内で URL を検索し、見つかった場合は、ISP の DNS サーバーに接続せずにすぐに結果を返します。 ローカル キャッシュにより速度が向上し、トラフィックが節約されます。

ローカルDNSキャッシュのクリア

にアドレスを保存する場合、 ローカルストレージ情報が破損したり、IP アドレスが変更されたりすると、ブラウザでサイトを開けることができなくなります。 これはあまり頻繁に起こりません。 幸いなことに、ローカル キャッシュをクリアする方法があります。 即席の解決策生じた問題。

Windows OSにはツールがあります ipconfig、オプションがあります /flushdnsキャッシュされたエントリをすべてクリアします。 ローカル キャッシュをクリアする必要がある場合は、コマンド ライン ウィンドウ ( 始めるプログラム(全プログラム) - 標準コマンドライン) コマンドを入力する必要があります ipconfig /flushdnsそして Enter キーを押します。

ローカル ストレージ内のすべての DNS レコードを表示するには、オプションを使用できます。 /displaydnsチーム ipconfig。 これを行うには、コマンド ライン ウィンドウにコマンドを入力します。 ipconfig / 表示されたDNSそして Enter キーを押します。 キャッシュされたすべての DNS 応答レコードがウィンドウに表示されます。

キャッシュ保持時間の設定

通常、Windows はアドレスを 86,400 秒 (1 日) 以内に保存しますが、保存期間は別の制限に制限される場合があります。 これを行うには、レジストリ エディター ( コマンドライン regedit コマンドを入力して Enter キーを押します)。 エディターの左側のペインには、フォルダーのように見えるレジストリ キーのツリーがあります。 ハードドライブ。 このツリーで、対応するフォルダー展開アイコン (プラス記号) をクリックすると、パスが開きます。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parametersをクリックし、このツリー内のフォルダーにカーソルを置きます。 パラメータ。 このキー (フォルダー) の内容がレジストリ エディターの右側のペインに表示されます。

パラメータの DWORD 値 MaxCacheTtl応答を保存する時間制限を秒単位で指定します。 他のものに変更することもできます。 パラメータの場合 MaxCacheTtlいいえ、それは標準制限が 86400 秒に設定されていることを意味します。 変更するにはパラメータを作成する必要があります MaxCacheTtl必要な制限に等しい値を持つ DWORD を入力します。 パラメータ MaxCacheTtl肯定的な応答の保存時間、つまりドメイン名から IP アドレスを決定できた時間のみを制限します。

プロバイダーの DNS サーバーが否定的な応答を返した場合 (アドレスを特定できなかった場合)、その応答もローカル ストレージに保存されます。 通常、この応答は 15 分間保存されます。 これは、サイトの訪問中にその IP アドレスを特定できなかった場合、たとえこの時間内にサイトが利用可能になったとしても、15 分以内はそのサイトにアクセスできなくなることを意味します。 これを回避するには、否定的な応答の保存時間を短縮するか、その保存を完全に無効にする必要があります。 保存時間を設定するには、DWORD パラメータを調整する (不足している場合は作成する) 必要があります。 MaxNegativeCacheTtl、これにより、否定的な応答の最大保存時間が制限されます。 ストレージを無効にするには、ストレージ時間をゼロに設定するだけです。

DNS 応答キャッシュを一時的に無効にする

ローカル ストレージのアドレス キャッシュを一時的に無効にする必要がある場合は、コマンド ラインに次のコマンドを入力する必要があります。 ネットストップDNSCache(または sc 停止 dnscache) を入力して Enter を押します。 オンに戻すには、コマンドラインにコマンドを入力します。 ネットスタートdnscache(または sc始める dnscache) を入力して Enter キーを押すか、コンピューターを再起動します。

インターネットの速度 (ラスト ワンマイルとバックボーン チャネルの両方) は年々高速化しています。 唯一変わらないことは 1 つだけです。レイテンシはすでに物理的な限界に達しています。光ファイバー内の光の速度は毎秒約 20 万キロメートルであり、したがって、最大 150 ミリ秒よりも速く、大西洋を越えたサーバーからの応答は 1 秒以内には受信できません。予見可能な未来(もちろん、空芯を備えた光ファイバーや無線中継通信のような楽しいものもありますが、これは単なる人間にはほとんどアクセスできません)。

たとえば、ロシアから米国にある Web サイト (NS サーバーはおそらくそこにあるでしょう) を開こうとしたときに、ドメインがプロバイダーの DNS キャッシュに見つからない場合、たとえギガビット インターネット、おそらく 1 秒間です。海を越えている間、ドメインの NS サーバーの名前を受信し、その IP を解決し、DNS リクエスト自体を送受信します...

数年前、Google はパブリック DNS サーバーを立ち上げ、それらへの移行を促進するために、ネットサーフィン履歴に対して DNS テストを実行し、Google DNS がどのように機能するかを示す NameBench ユーティリティを開発しました。 より高速なDNSプロバイダーのサーバー。

しかし、私は Google Public DNS よりも高速に動作する独自の DNS サーバーを作成することに成功したので、この短いメモでその結果を共有したいと思います。

PDNSD

pdnsd- DNS プロキシのキャッシュ。 DNS リクエストの平凡なキャッシュ (最小 TTL を厳密に設定する機能) に加えて、非常に必要な場合があります。 悪いインターネット)、複数の「親」DNS サーバーに同時にリクエストを送信し、返される最初の応答をクライアントに与えることができます。

速度の点で主な利点となるのは、並列ポーリングの組み込みです。、 なぜなら いずれかのプロバイダーのキャッシュで結果が見つかった場合、結果は非常に迅速に取得され、最初のプロバイダーの応答がキャッシュにない場合は、完全で遅い解決を待つ必要はありません。

平凡な apt-get を使用して Ubuntu にインストールします。

設定のいくつかのポイント

global ( perm_cache=10240; //最大キャッシュ サイズ (キロバイト単位)。 //デフォルトでは 1024 で、すべてのレコードが適合しませんでした。cache_dir="/var/cache/pdnsd"; [...] min_ttl=60m; // キャッシュにエントリを保存する最小時間。 // TTL が 60 分未満の場合でも、60 分になります。 max_ttl=1w // キャッシュにエントリを保存する最大時間 neg_ttl=5m;否定応答をキャッシュする時間 (つまり、ドメインが見つからない場合) [..] par_queries=3; //同時にクエリされる「親」DNS サーバーの数) server ( label = "main"; ip = 85.21.192.5 //サーバーは 4 つあり、最初の 3 つが応答しない場合、リクエストは 4 番目の 213.234.192.7 に送信されます // 最初の 2 つのサーバーはプロバイダーのサーバーであり、近隣のサーバー 8.8.4.4 // これはGoogle Public DNS - まれなものはすべてキャッシュされ、すぐに解決されます (8.8.8.8 [.. ] )

原理的には、キャッシュの攻撃性を低くすることができます (たとえば、min_ttl=1m) が、1 年間の運用を通じて特別な問題は発生していません。 問題が発生した場合は、オプションでキャッシュから 1 つのエントリを消去できます。
sudo pdnsd-ctl レコード 3.14.by 削除または一度にすべて:
sudo pdnsd-ctl 空のキャッシュ

NameBench でのテスト結果



リクエストの 50% では 10 ミリ秒未満で応答が得られ、85% では Google Public DNS の方が高速であり、結果は当然 Google と一致します。

テスト結果に基づいて、NameBench は喜んで次のように報告します。

8.8.8.8 SYS-192.167.0.98 の低速レプリカ 8.8.4.4 SYS-192.167.0.98 の低速レプリカ

したがって、並列クエリを備えたスマート キャッシュ DNS プロキシを使用すると、100 メガビットのインターネットでも高速化できます。 また、遅延とパケット損失が大きい低速 (無線) リンクの場合、その差は天と地ほどになる可能性があります。

最新のインターネットの機能を保証する重要なサービスの 1 つは、サイト名を IP アドレスに変換するサービスです。 この記事では、サーバー上に Bind 9 (名前付き) をセットアップする例を使用して、DNS サービスの実装をセットアップします。 CentOSを実行中 7. 必要最小限の基本機能を準備し、ログ設定をもう少し詳しく見ていきます。

Mikrotik ルーターの操作方法を学び、この分野のスペシャリストになりたいと考えている場合は、公式コースの情報に基づいたプログラムに従うことをお勧めします。 このコースは価値があります。詳細についてはリンクを読んでください。 無料のコースもございます。

バインド- 現在の DNS サーバーの最も一般的な実装であり、IP アドレスから DNS 名への変換、またはその逆の変換を保証します。 Freebsd などでは、named とも呼ばれます。 Wikipedia の情報から判断すると、現在、インターネット上の 13 個のルート DNS サーバーのうち 10 個がバインドで実行されています。 ほぼすべての製品に箱から出してすぐにインストールされます Linuxディストリビューション。 CentOS 7 サーバーにインストールすることを検討してみます。

CentOS 7 への Bind 9 (名前付き) のインストール

まず、システムに DNS サーバーがインストールされているかどうかを確認してみましょう。

# rpm -qa バインド* バインド libs-lite-9.9.4-14.el7.x86_64 バインドライセンス-9.9.4-14.el7.noarch

最小限のソフトウェア パッケージを選択したため、インストールしていません。 ネームサーバーは chroot 環境で動作するため、適切なパッケージをインストールします。

# yum - y インストールバインドバインド - utils バインド - chroot

繰り返しになりますが、bind in を使用することに注意してください。 chrootセキュリティを高める環境。 これにより、サーバーのセットアップと管理に特定の機能が課せられます。 こういった小さなことに注意する必要があります。 それでは、bind を実行してみましょう。

# systemctl の開始 名前付きchroot# systemctl を有効にする 名前付きchroot ln -s "/usr/lib/systemd/system/named-chroot.service" "/etc/systemd/system/multi-user.target.wants/named-chroot.service"

chroot ディレクトリの内容を確認します。

# ls -l /var/named/chroot/etc

すべてが順調に進み、サーバーが起動し、必要なファイルが作成され、すべてを構成する準備が整いました。 大事にしましょう。

CentOS 7 での DNS サーバーのセットアップ

サーバー構成ファイルは次の場所にあります。 /var/named/chroot/etc/named.conf。 それを開いて次の形式にします。

# mcedit /var/named/chroot/etc/named.conf オプション ( listen-on ポート 53 ( any; ); listen-on-v6 ポート 53 ( none; ); ディレクトリ "/var/named"; dump-file " /var/named/data/cache_dump.db"; 許可クエリ ( 127.0.0.1; 192.168.7.0/24; ); 再帰 はい; 許可再帰 ( 127.0.0.1; 192.168.7.0/24; ); フォワーダ ( 8.8 .8.8); バージョン "DNS サーバー"; 管理対象キー ディレクトリ "/var/named/dynamic"; セッション キーファイル "/run/named/session.key" "; dnssec-enable いいえ; dnssec-validation いいえ; ); ゾーン「。」 IN (タイプヒント; ファイル "named.ca"; ); 「/etc/named.rfc1912.zones」を含めます。 「/etc/named.root.key」を含めます。 ロギング ( チャネルdefault_file ( ファイル "/var/log/named/default.log" バージョン 3 サイズ 5m; 重大度 動的; 印刷時間 はい; ); カテゴリ デフォルト (default_file; ); );

この構成により、ローカル ネットワーク上で通常のキャッシュ サーバーが確実に動作します。 いくつかのパラメータに関するコメント:

ファイアウォール ルールを正しく編集することを忘れないでください。 DNSの仕事サーバー - 今設定したキャッシュ サーバーの UDP ポート 53 と 53 を開きます。 TCPポートゾーンの転送については後で説明します

次に、ログ用のフォルダーを作成しましょう。 chroot 環境で作業していることを忘れないでください。

# cd /var/named/chroot/var/log && mkdir という名前 && chown という名前。 名前付き

独自のゾーンのサポート

独自のゾーン site1.ru を名前付きゾーンに配置する必要があるとします。 まず最初に、DNS サーバーによって提供されるゾーン ファイルを作成します。

# mcedit /var/named/chroot/var/named/site1.ru.zone $TTL 86400 @ IN SOA site1.ru。 site1.ru.local。 (2015092502 43200 3600 3600000 2592000) NS ns1.site1.ru で。

NS ns2.site1.ru で。

192.168.7.254 IN MX 10 mx.site1.ru。 ゲート IN A 192.168.7.254 mx IN A 192.168.7.250 ns1 IN A 192.168.7.235 ns2 IN A 192.168.7.231

ゾーン ファイルの構文の説明はインターネット上で十分に説明されています。これについては詳しく説明しません。 必要に応じて、誰もが自分のゾーンのサポートを構成する必要があるかどうかを自分の目で確認できます。

必要な権限を設定します。

# chown root:named /var/named/chroot/var/named/site1.ru.zone # chmod 0640 /var/named/chroot/var/named/site1.ru.zone ゾーン "site1.ru" (タイプマスター; ファイル "site1.ru.zone"; );:

次を使用して、名前付き構成を再読み取りします。

RNDC

# rndc 再構成

バインドスレーブゾーンへの追加

別の DNS サーバーから取得したゾーンのコピーをサーバー上に保持したい場合は、次の設定を構成に追加します。

ゾーン "site.ru" IN ( タイプ スレーブ; マスター ( 10.1.3.4; ); ファイル "site.ru.zone"; );

10.1.3.4 - ゾーンの取得元の DNS サーバーの IP アドレス。 DNS サーバーへのゾーン転送を許可することを忘れないでください。 次のように、名前付きグループに書き込み権限を追加する必要があります。この後、バインドを再起動して、スレーブ ゾーン ファイルが作成されたことを確認できます。 上記の設定では、次の場所に配置されます。

/var/named/chroot/var/named/site.ru.zone

。 バインドにファイルを作成する権限がない場合は、ログにエラーが記録されます。

マスター ファイルをダンプ中: tmp-7Swr6EZpcd: オープン: アクセス許可が拒否されました サーバー操作の詳細なログを理解することは、はるかに興味深く、役立ちます。 長い間、私はインターネット上であらゆる種類の推奨事項やサンプル構成を表面的に入手していましたが、このトピックを自分で扱うことに決め、元のマニュアルを調べました。ログ記録用。 サーバーの操作に関連するほぼすべてを記録できます。 今行っています 簡単な例それがどのように機能するかを説明します。

まず、構成で、特定のイベントのログが保存されるチャネルを設定します。 そのようなチャネルの例を次に示します。

チャネル全般 (ファイル "/var/log/named/general.log" バージョン 3、サイズ 5m、重大度は動的、印刷時間はあり、

ここにはチャネルの名前が示されていますが、これは私たち自身が考え出したものです - 一般に、ファイルへのパスが示されており、サイズが5メガバイト以下のログの3つのバージョンを保存すると言われています。 パラメータ 重大度は次の値を取ることができます。

パラメータ 印刷時間イベントの時間をログに記録する必要があることを示します。 指定した設定に加えて、次のパラメータをチャネル構成に追加できます。

  • 印刷重大度はい | no — 重大度パラメータをログに書き込むかどうかを指定します。
  • 印刷カテゴリーはい | no — ログカテゴリの名前を書き込むかどうかを指定します

デフォルト値は次のように設定されているため、これらのパラメータは指定しませんでした。 いいえ、個人的には合っています。

カテゴリ 一般 ( 一般; );

バインド内のログ カテゴリの説明 (名前付き)
デフォルト個別に定義されていない場合、このテーブルのすべてのカテゴリのイベントがここに当てはまりますが、クエリ カテゴリは例外であり、クエリ カテゴリは特別に含める必要があります。 つまり、デフォルト カテゴリのみを指定すると、すべてのカテゴリのイベントがそのカテゴリに流入します。
一般的なこのカテゴリは、リストされているカテゴリのいずれにも含まれないすべてのログを対象としています。
データベースゾーンのストレージとキャッシュに関連するメッセージ。
安全リクエストの確認と拒否。
構成構成ファイルの読み取りと実行に関連するすべて。
リゾルバ名前解決。クライアントに代わってキャッシュ サーバーによって実行される再帰クエリに関する情報が含まれます。
フェーインゾーンの取得に関する情報。
xfer-outゾーンの移行に関する情報。
通知するNOTIFY プロトコル操作のログを記録します。
クライアントクライアントのリクエストを実現します。
比類のないという名前のメッセージはどのクラスにも割り当てられないか、マッピングが定義されていません。
ネットワークネットワーク操作のログ記録。
アップデート動的更新。
アップデートセキュリティ更新リクエストの確認または拒否。
クエリDNS サーバーへのリクエストのログ記録。 このカテゴリを有効にするには、サーバー構成でパラメータを個別に設定する必要があります。 これは、このカテゴリではログ ファイルに大量のエントリが生成され、サーバーのパフォーマンスに影響を与える可能性があるためです。
クエリエラーサーバーへのリクエストのエラー。
急送受信パケットを処理のためにサーバー モジュールにリダイレクトします。
dnssecDNSSEC および TSIG プロトコルの操作。
不自由なサーバーバインドがアクセス時に受け取るエラーを修正しました リモートサーバー名前解決リクエストを解決しようとしています。
委任のみNXDOMAIN を返したログ要求。
edns-無効化タイムアウトを超過したため、プレーン DNS の使用を強制されるリクエスト。
RPZ応答ポリシー ゾーン (RPZ) の実装に関連するすべての操作。
レート制限オプションまたはビュー内の 1 つ以上のレート制限ステートメントに関連する操作。

したがって、ログのすべてのカテゴリを別のファイルに表示するには、名前付き構成に次の構造を追加する必要があります。

ログ ( チャネルのデフォルト ( ファイル "/var/log/named/default.log" のバージョン 3 サイズ 5m; 重大度は動的; 印刷時間 はい; ); チャネルの一般 ( ファイル "/var/log/named/general.log" のバージョン) 3 サイズ 5m; 重大度 動的; /var/log/named/security.log" バージョン 3 サイズ 5m; 重大度 はい; ); チャネル構成 (ファイル "/var/log/ named/config.log" バージョン 3 サイズ 5m; 重大度動的; 印刷時間 はい; ); チャネル リゾルバー ( ファイル "/var/log/named/resolver.log" バージョン 3 サイズ 5m; 重大度動的; 印刷時間 はい; ) ); チャネル xfer-in ( ファイル "/var/log/named/xfer-in.log" バージョン 3 サイズ 5m; 重大度 動的; 出力時 はい; ); /xfer-out.log" バージョン 3 サイズ 5m; 重大度動的 ; 出力時 はい; ); チャネル通知 ( ファイル "/var/log/named/notify.log" バージョン 3 サイズ 5m; 重大度動的; 出力時 はい; ); /client.log" バージョン 3 サイズ 5m; 重大度は動的。 印刷時はい。 ); チャネルが一致しません (ファイル "/var/log/named/unmatched.log" バージョン 3 サイズ 5m; 重大度は動的; 印刷時間はあり; ); チャネル ネットワーク (ファイル "/var/log/named/network.log" バージョン 3 サイズ 5m; 重大度 動的; 印刷時間 はい; ); チャネル更新 (ファイル "/var/log/named/update.log" バージョン 3、サイズ 5m、重大度は動的、印刷時間はあり; ); チャネル更新セキュリティ (ファイル "/var/log/named/update-security.log" バージョン 3 サイズ 5m; 重大度動的; 印刷時間はい; ); チャネル クエリ (ファイル "/var/log/named/queries.log" バージョン 3、サイズ 5m、重大度は動的、出力時はあり; ); チャネル クエリ エラー (ファイル "/var/log/named/query-errors.log" バージョン 3 サイズ 5m; 重大度 動的; 印刷時間 はい; ); チャネルディスパッチ (ファイル "/var/log/named/dispatch.log" バージョン 3、サイズ 5m、重大度は動的、出力時はあり; ); チャネル dnssec ( ファイル "/var/log/named/dnssec.log" バージョン 3、サイズ 5m、重大度は動的、印刷時間はあり; ); チャネル lame-servers (ファイル "/var/log/named/lame-servers.log" バージョン 3 サイズ 5m; 重大度動的; 印刷時間はい; ); チャネル委任のみ (ファイル "/var/log/named/delegation-only.log" バージョン 3、サイズ 5m、重大度は動的、出力時はあり; ); チャネル edns-disabled ( ファイル "/var/log/named/edns-disabled.log" バージョン 3 サイズ 5m; 重大度 動的; 印刷時間 はい; ); チャネル rpz ( ファイル "/var/log/named/rpz.log" バージョン 3、サイズ 5m、重大度は動的、印刷時間はあり; ); チャネル レート制限 (ファイル "/var/log/named/rate-limit.log" バージョン 3 サイズ 5m; 重大度 動的; 印刷時間 はい; ); カテゴリ デフォルト(デフォルト;); カテゴリ 一般(一般;); カテゴリ データベース ( データベース; ); カテゴリ セキュリティ (セキュリティ; ); カテゴリ config(config;); カテゴリ リゾルバー(リゾルバー;); カテゴリ xfer-in ( xfer-in; ); カテゴリ xfer-out ( xfer-out; ); カテゴリ通知 (通知; ); カテゴリ クライアント ( client; ); カテゴリが一致しません (一致しません; ); カテゴリ ネットワーク ( ネットワーク; ); カテゴリ更新(更新;); カテゴリ 更新セキュリティ (更新セキュリティ; ); カテゴリ クエリ (クエリ; ); カテゴリ クエリ エラー (クエリ エラー; ); カテゴリ ディスパッチ (ディスパッチ;); カテゴリ dnssec ( dnssec; ); カテゴリ lame-servers (lame-servers; ); カテゴリ委任のみ (委任のみ; ); カテゴリ edns-disabled ( edns-disabled; ); カテゴリ rpz ( rpz; ); カテゴリ レート制限 ( レート制限; ); );

カテゴリからすべてのリクエストログを収集したい場合 クエリ次に、構成ファイルのオプション セクションに、これを可能にするパラメータを追加する必要があります。

クエリログはい。

バインドを再起動します。

# systemctl は、named-chroot.service を再起動します。

DNSサーバーの動作確認

まず最初に、ログのあるディレクトリに移動し、そこにあるものを確認しましょう。

# cd /var/named/chroot/var/log/named # ls -l

すべてのログ ファイルが作成され、いっぱいになり始めています。 そのうちの 1 つを確認できます。 たとえば、centos サーバー (192.168.7.246) がユーザーのリクエストをどのように記録するかを見てみましょう。 コンピューター 192.168.7.254 (Windows) から nslookup yandex.ru を実行して、ログ ファイルにどのように反映されるかを確認してみましょう。

26-Sep-2015 19:25:30.923 クライアント 192.168.7.254#56374 (yandex.ru): クエリ: yandex.ru IN A + (192.168.7.246) 26-Sep-2015 19:25:31.013 クライアント 192.168.7.254# 56375 (yandex.ru): クエリ: yandex.ru IN AAAA + (192.168.7.246)

次に、site1.ru に ping を実行して、サーバーがゾーンをどのようにサポートしているかを確認してみましょう。

ログの内容を見てみましょう。

2015 年 9 月 26 日 19:28:01.660 クライアント 192.168.7.254#49816 (site1.ru): クエリ: site1.ru IN A + (192.168.7.246)

これにより、コンピュータの移動先を追跡するのが非常に便利になります。 たとえば、DNS サーバーを一時的に起動してクエリ ログを有効にすることができます。 クライアントでは、構成した唯一の DNS サーバーを指定します。 そうすれば、たとえば、ロード後に Windows が知らないうちにどこに移動したかを追跡できるようになります。 または、Skype に広告が読み込まれる場所。 すべてのリクエストはファイルにきちんとコンパイルされ、簡単に分析できるようになります。

この資料で私が伝えたかったのはこれだけです。 バインド (名前付き) の設定に関するトピックは非常に広範囲にわたります。 おそらくまた戻ってくるでしょう。

Mikrotik のオンライン コース

Mikrotikルーターの操作方法を学び、この分野のスペシャリストになりたいという願望がある場合は、公式コースの情報に基づいてプログラムに従ってコースを受講することをお勧めします MikroTik 認定ネットワーク アソシエイト。 その上 公式プログラム、コースは 実験室での仕事では、取得した知識を実際にテストして定着させることができます。 すべての詳細はウェブサイトに掲載されています。 研修費用も非常にリーズナブルなので、 良い機会現在関連している主題分野で新しい知識を得る。 コースの特徴:
  • 実践指向の知識。
  • 実際の状況とタスク。
  • 最高の国際プログラム。