注意
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
また、次のパラメータを追加します。
全サーバー
次のパラメータを指定することもできます。
ファイルを作成します 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.
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 スニファー ウィンドウのスナップショットです。
DNS ゾーン データの転送は、完全または部分的に行うことができます。 どちらのモードを使用するかは、転送する必要があるデータの量によって決まります。 完全なアップデートスレーブサーバー上のDNSゾーンデータベース。 変更されたデータの総量がデータベース全体のサイズよりも小さい場合は、ゾーン データの部分転送が推奨されます。 完全な DNS ゾーンのデータ転送は AXFR プロトコルを使用して実行され、部分的な DNS ゾーンのデータ転送は IXFR プロトコルを使用して実行されます。
Web ブラウジングを高速化するには、オペレーティング システム Windowsシステム DNS サーバーの応答をキャッシュします。 DNS サーバーから番号を特定するための応答が到着するとすぐに、Windows はこのアドレスをローカル ストレージに自動的に配置します。 ブラウザーが URL を要求すると、Windows はまずストレージ内で URL を検索し、見つかった場合は、ISP の 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、これにより、否定的な応答の最大保存時間が制限されます。 ストレージを無効にするには、ストレージ時間をゼロに設定するだけです。
ローカル ストレージのアドレス キャッシュを一時的に無効にする必要がある場合は、コマンド ラインに次のコマンドを入力する必要があります。 ネットストップ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 サーバーを作成することに成功したので、この短いメモでその結果を共有したいと思います。
速度の点で主な利点となるのは、並列ポーリングの組み込みです。、 なぜなら いずれかのプロバイダーのキャッシュで結果が見つかった場合、結果は非常に迅速に取得され、最初のプロバイダーの応答がキャッシュにない場合は、完全で遅い解決を待つ必要はありません。
平凡な apt-get を使用して Ubuntu にインストールします。
原理的には、キャッシュの攻撃性を低くすることができます (たとえば、min_ttl=1m) が、1 年間の運用を通じて特別な問題は発生していません。 問題が発生した場合は、オプションでキャッシュから 1 つのエントリを消去できます。
sudo pdnsd-ctl レコード 3.14.by 削除または一度にすべて:
sudo pdnsd-ctl 空のキャッシュ
テスト結果に基づいて、NameBench は喜んで次のように報告します。
8.8.8.8 SYS-192.167.0.98 の低速レプリカ 8.8.4.4 SYS-192.167.0.98 の低速レプリカ
最新のインターネットの機能を保証する重要なサービスの 1 つは、サイト名を IP アドレスに変換するサービスです。 この記事では、サーバー上に Bind 9 (名前付き) をセットアップする例を使用して、DNS サービスの実装をセットアップします。 CentOSを実行中 7. 必要最小限の基本機能を準備し、ログ設定をもう少し詳しく見ていきます。
Mikrotik ルーターの操作方法を学び、この分野のスペシャリストになりたいと考えている場合は、公式コースの情報に基づいたプログラムに従うことをお勧めします。 このコースは価値があります。詳細についてはリンクを読んでください。 無料のコースもございます。
バインド- 現在の DNS サーバーの最も一般的な実装であり、IP アドレスから DNS 名への変換、またはその逆の変換を保証します。 Freebsd などでは、named とも呼ばれます。 Wikipedia の情報から判断すると、現在、インターネット上の 13 個のルート DNS サーバーのうち 10 個がバインドで実行されています。 ほぼすべての製品に箱から出してすぐにインストールされます Linuxディストリビューション。 CentOS 7 サーバーにインストールすることを検討してみます。
まず、システムに 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
すべてが順調に進み、サーバーが起動し、必要なファイルが作成され、すべてを構成する準備が整いました。 大事にしましょう。
サーバー構成ファイルは次の場所にあります。 /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 再構成
バインドスレーブゾーンへの追加
別の 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つのバージョンを保存すると言われています。 パラメータ 重大度は次の値を取ることができます。
パラメータ 印刷時間イベントの時間をログに記録する必要があることを示します。 指定した設定に加えて、次のパラメータをチャネル構成に追加できます。
デフォルト値は次のように設定されているため、これらのパラメータは指定しませんでした。 いいえ、個人的には合っています。
カテゴリ 一般 ( 一般; );
デフォルト | 個別に定義されていない場合、このテーブルのすべてのカテゴリのイベントがここに当てはまりますが、クエリ カテゴリは例外であり、クエリ カテゴリは特別に含める必要があります。 つまり、デフォルト カテゴリのみを指定すると、すべてのカテゴリのイベントがそのカテゴリに流入します。 |
一般的な | このカテゴリは、リストされているカテゴリのいずれにも含まれないすべてのログを対象としています。 |
データベース | ゾーンのストレージとキャッシュに関連するメッセージ。 |
安全 | リクエストの確認と拒否。 |
構成 | 構成ファイルの読み取りと実行に関連するすべて。 |
リゾルバ | 名前解決。クライアントに代わってキャッシュ サーバーによって実行される再帰クエリに関する情報が含まれます。 |
フェーイン | ゾーンの取得に関する情報。 |
xfer-out | ゾーンの移行に関する情報。 |
通知する | NOTIFY プロトコル操作のログを記録します。 |
クライアント | クライアントのリクエストを実現します。 |
比類のない | という名前のメッセージはどのクラスにも割り当てられないか、マッピングが定義されていません。 |
ネットワーク | ネットワーク操作のログ記録。 |
アップデート | 動的更新。 |
アップデートセキュリティ | 更新リクエストの確認または拒否。 |
クエリ | DNS サーバーへのリクエストのログ記録。 このカテゴリを有効にするには、サーバー構成でパラメータを個別に設定する必要があります。 これは、このカテゴリではログ ファイルに大量のエントリが生成され、サーバーのパフォーマンスに影響を与える可能性があるためです。 |
クエリエラー | サーバーへのリクエストのエラー。 |
急送 | 受信パケットを処理のためにサーバー モジュールにリダイレクトします。 |
dnssec | DNSSEC および 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 を再起動します。
まず最初に、ログのあるディレクトリに移動し、そこにあるものを確認しましょう。
# 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 に広告が読み込まれる場所。 すべてのリクエストはファイルにきちんとコンパイルされ、簡単に分析できるようになります。
この資料で私が伝えたかったのはこれだけです。 バインド (名前付き) の設定に関するトピックは非常に広範囲にわたります。 おそらくまた戻ってくるでしょう。