web-dev-qa-db-ja.com

内部ネットワークホスト名の名前解決

ホストの命名規則を標準化することを計画しており、異なるサーバー間で簡単に通信できるように「内部」ネットワークをセットアップしたいと考えています。同じローカルネットワークに物理的に接続されていない複数の異なる専用サーバープロバイダーからサーバーを購入します。現在、Webサーバーなどを構成する際には、各マシンのIPアドレスを使用します。これを「db1-fr.internalnet」のようなホスト名に置き換えて、物事を単純化し、理解しやすくしたいと思います。各マシンで名前解決を処理するための最良の方法は何ですか?私は現在、各サーバーのhostsファイルにエントリを追加することを計画していますが、保守性に関しては、これは規模がかなり小さいようです。単に内部ネットワークルックアップのために本格的なDNSサーバーをホストすることは避けたいのですが、それが推奨される方法である場合は、確かにオプションです。次の質問は、このDNSサーバーを構成する適切な場所はどこですか?サーバー全体のDNSサーバーを交換すると、問題が発生し始めます。ローカルルックアップ用の特定の設定ファイルはありますか?

2
jduncanator

本番ドメインを使用することに満足している場合は、内部ネットワークでDNSMasqを実行し、すべてのサーバーにキャッシュリゾルバーとして使用させることができます。

これには2つの利点があります

  1. 結果をローカルにキャッシュするため、内部ネットワーク全体のDNS解決を高速化
  2. DNSMasqのaliasconfigコマンドを使用してDNS結果をオンザフライで変更する機能

上記のポイント2について、dnsmasqの設定例からもう少し情報を提供します。

# If you want to fix up DNS results from upstream servers, use the
# alias option. This only works for IPv4.
# This alias makes a result of 1.2.3.4 appear as 5.6.7.8
#alias=1.2.3.4,5.6.7.8
# and this maps 1.2.3.x to 5.6.7.x
#alias=1.2.3.0,5.6.7.0,255.255.255.0
# and this maps 192.168.0.10->192.168.0.40 to 10.0.0.10->10.0.0.40
#alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0

基本的にこれは、通常DNSでIP 1.2.3.4を返すアドレスのDNSルックアップを実行すると、その場でそれを書き換えて5.6.7.8を返すことを意味します。

これを外部IPから内部IPへのマッピングに置き換えてから、勝者に置き換えます

「内部専用ゾーン」を使用する場合の代替手段は、DNSmasqとdnsmasqサーバー上のhostsファイルを使用して内部DNSレコードを定義することです。dnsmasqはhostsファイルとその構成済みの外部リゾルバーを使用してDNS結果をクライアント(デフォルトではhostsファイルが優先されます)は、各ボックスのhostsファイルにレコードを追加する場合と同じですが、1つの場所で追加するだけで済みます。

そのマシンのhostsファイルに変更を加えるときは、dnsmasqをリロード/再起動することを忘れないでください

1
anthonysomerset