このhosts
ファイルを使用すると、DNSサーバーシステム全体をオーバーライドし、特定のDNS名を特定のIPアドレスに解決するようにシステムを構成できます。しかし、この目的で特定のDNSサーバーを使用したい場合はどうすればよいですか?
答え1
これは…分割地平線DNSサービスこれを行う方法は4つあります。たとえば、分割地平線unix.stackexchange.com.
(もちろん、その下のドメイン名ツリーのすべての部分)を構成するとします。これを行う方法は、ローカルで実行するように選択した項目によって異なります。
あなたは地域を運営フォワードプロキシDNSサーバー。 これはローカルキャッシュを必要としますが、ローカルシステムがパブリックインターネットからファイアウォールで保護されている場合や、これらのシステムのクエリ検証がLAN上の1つの場所で集中的にクエリを実行するのに比べて比較的高価な一般的な状況です。
unix.stackexchange.com.
別のサーバーに転送するように指示します。unix.stackexchange.com.
サブドメインに対するクエリの解決方法を知っている2番目の(リモート)プロキシDNSサーバーを設定する必要があります。また、そのドメインとそのサブドメインの実際の代替データを提供し、unix.stackexchange.com.
2番目のプロキシDNSサーバーが認識して使用するように構成されたプライベートコンテンツDNSサーバーを設定する必要があります。あなたはできるすでに持っている後者の2つは、特に大規模な組織である場合はさらにそうです。実際には、クエリ検証操作を実行する中央コンピュータとして、検証プロキシDNSサーバーが既に存在する可能性があります。さまざまな内部トラフィックが組織外に「漏洩」するのを防ぐために、パブリックコンテンツDNSサーバーをローカルにミラーリングするプライベートコンテンツDNSサーバーがすでに存在している可能性があり、ここにデータを
.
追加するだけです。unix.stackexchange.com.
ローカルフォワードプロキシDNSサーバーの設定:
- Bernstein
dnscache
(FORWARDONLY
モード)などのサーバーの場合は、servers/unix.stackexchange.com
プロキシDNSサーバーのIPアドレス構成ファイル(サーバーのルート/作業ディレクトリにあります)を使用してクエリをサーバーに渡してサーバーを再起動できます。 - ~のため分割されたDNSサーバーは、MicrosoftのDNSサーバー、ISCのBINDと同じです。転送エリア
unix.stackexchange.com.
サーバーを再ロード/再起動します。
/etc/resolv.conf
:)。まっすぐフォワードプロキシDNSサーバーを仲介者として使用する代わりに(ローカル/リモート)プロキシDNSサーバーで解決します。- Bernstein
あなたは地域を運営プロキシDNSサーバーの確認。 1980年代にDomain Name Systemが登場した後、UnicesやLinuxなどのマルチタスクオペレーティングシステムは、過去のようにすべてのコンピュータで検証プロキシDNSサーバーを実行することを躊躇しませんでした。ただし、オプション#1で説明したように、「ローカル」は単一のコンピュータのローカルではなく、LANのローカルである可能性があります。
unix.stackexchange.com.
クエリ解決は、パブリックDNSデータベースに公開されているものとは異なるDNSサーバーで起動する必要があることを知らせます。unix.stackexchange.com.
サブドメインの実際の代替データを提供するには、プライベートコンテンツDNSサーバーを設定する必要があります。ローカル検証プロキシDNSサーバーを設定します。
- Bernsteinなどのサーバー
dnscache
(非FORWARDONLY
モード)の場合は、servers/unix.stackexchange.com
コンテンツDNSサーバーのIPアドレス設定ファイル(サーバーのルート/作業ディレクトリにあります)を使用してクエリ検証を開始し、サーバーを再起動できます。 - ~のため分割されたDNSサーバーは、MicrosoftのDNSサーバー、ISCのBINDと同じです。スタブエリア
unix.stackexchange.com.
サーバーを再ロード/再起動します。
- Bernsteinなどのサーバー
パブリックコンテンツDNSサーバーは、クエリを送信した人に基づいて代替データを提供できます。 まれにこれを行うソフトウェアがある場合は、構造的に設定するのが最も簡単です。
プロキシDNSサーバーを操作する必要はなく、2番目のプライベートコンテンツDNSサーバーを設定する必要もありません。どのクライアントクラスがどのクラスに属するかを公開コンテンツDNSサーバーに通知し、サービスするラベル付きのさまざまなデータセット
unix.stackexchange.com.
とそのサブドメインをサーバーに提供します。何があっても、誰もが何らかの方法で公開コンテンツDNSサーバーに到達しました。- Bernsteinなどのサーバーの
tinydns
場合位置コード機能し、すべての「あなたの」プロキシDNSサーバー(バックエンドクライアントIPアドレス)を1つの場所コードに設定し、残りのインターネットを別の場所コードとして設定します。最初の位置コードを使用して、プロキシDNSサーバーに表示されるデータベース内のすべてのデータと、残りのインターネットに表示されるすべてのデータ(または場所コードがまったく存在しない)を表示できます。%時:10 %si:192.168 %lo:127 … =unix.stackexchange.com:127.0.0.1:::lo =unix.stackexchange.com:192.168.72.3:::si =unix.stackexchange.com:151.101.1.69:::
- MicrosoftのDNSサーバーの場合、使用にはもう少し問題があります。地理的範囲システム。 DNS クライアントの送信元 IP アドレスを表示するのではなく、サーバー自体の受信インターフェイスの IP アドレスを表示することで機能します。 MicrosoftのPowerShellの例を適用しました。
追加-DnsServerQueryResolutionPolicy - 名前 "SplitHorizonZonePolicy" - 操作を許可する -ServerInterface "eq,10.0.0.56" -ZoneScope "internal,1" -ZoneName "stackexchange.com" 追加-DnsServerResourceRecord -ZoneName "stackexchange.com" -A - 名前 "unix" -IPv4Address "151.101.1.69" 追加-DnsServerResourceRecord -ZoneName "stackexchange.com" -A - 名前 "unix" -IPv4Address "10.0.0.69" -ZoneScope "内部"
- ISCのBINDの場合、それを使用することは間違いなくもっと面倒です。コメントシステム。
tinydns
しかし、独自のパブリックOpenBSDシステムに独自のデータを公開する場合、この方法で分割水平DNSサービスを提供することは非常に簡単です。 ☺- Bernsteinなどのサーバーの
洗練されたDNSクライアントソフトウェアを使用してください。 一般に、DNSクライアントは、システムのアプリケーションソフトウェアに接続されたCライブラリのコードです。しかし、時にはそうではないときもあります。
アプリケーションソフトウェアは、systemdと通信するデスクトップバスシステムなどのものを使用できます
systemd-resolved
。プロキシDNSサーバーはDNSプロトコルを使用しません。 (systemdの人々はアプリケーションソフトウェアの作成者がこの作業を中止することをお勧めします。)代わりに、彼らはこれを行うために特別で非標準的なデスクトップバスプロトコルを使用しますsystemd-resolved
。systemd-resolved
その結果、現在のネットワーク構成に基づいて実際の方向を決定する複雑なシステムがあります。どのDNSサーバーがDNSプロトコルクエリを送信するか。このローカル DNS サービスは、
systemd-resolved
libc NSS または [デスクトップ] バス API と同じように、すべての機能を備えているわけではありません。 [...] したがって、すべてのアプリケーションはlibc NSS APIまたはデフォルトのsystemd-resolved
[デスクトップ]バスAPIを使用することをお勧めします。
—レナート・ポートリン、2016-06-25これを操作することは、このような一般的な範囲の質問と回答の範囲をはるかに超えています。
MicrosoftのDNSサーバー、ISCのBINDなどの実行後に忘れてしまうDNSサーバーソフトウェアの場合、dnsmasq
オプション#1、#2、#3が混在しているように見える複雑なシナリオがいくつかあります。本当に複雑ですバージョン#2を選択してください。しかし、ほぼ20年間、すべてを一度に維持しようとする無駄な試みは、多くのDNS世界で悪い考えと見なされました。 (Microsoft DNSサーバーの世界でも約10年間続きました。)DNSサーバーは、コンテンツDNSサーバーとプロキシDNSサーバーを統合してはいけません。 (そのような人もいます。オープンレゾルバプロジェクトこれを行うには、人々のパブリックDNSサーバーを積極的に調査します。 )すでにSMTPおよびHTTPサービスに対して行ったように、サービスタイプを複数のサーバーに適切に分離すると、選択は上記のいずれかに単純化されます。
追加読書
- ジョナサン・ドボイン・ポラード(2000)。「コンテンツ」と「プロキシ」DNSサーバー。 よく与えられる答えです。
- ジョナサン・ドボイン・ポラード(2002)。「分割された地平線」DNSサービスを提供します。 よく与えられる答えです。
- ジョナサンデボインポラード(2003)。「内部」DNSデータベースをデータで埋めることを忘れました。 よく与えられる答えです。
- ジョナサンデボインポラード(2004)。プライベートIPアドレス範囲を使用している場合は、分割水平DNSサービスを使用してください。 よく与えられる答えです。
- マイクロソフト社(2015)。 Microsoft DNSを使用してキャッシュ専用ネームサーバーを作成する方法。 #167234。知識ベース。
- Windowsネットワーキングチーム(2015-05-12)。Windows DNSサーバーポリシーを使用した分割ブレインDNSの展開。マイクロソフト社。
- 劉クリケットとポール・アルビッツ(2006)。 「安全」。 DNSとバインディング。オライリー。 ISBN 978-0596100575。
答え2
bind
1つの解決策は、直接制御したいドメインのゾーンファイルをインストール()して設定することです。named
これを行うための簡単なチュートリアルがたくさんありますが、特に気に入っています。https://www.digitalocean.com/例えばこれ。