環境

環境

環境

私のLAN設定は非常に基本的です。

  • ISPモデムとインターネットに接続されたルーター
  • 私の開発コンピュータはルータに直接接続されています。

ルーターはDHCPを提供しますが、独自のDNSサーバーを実行しません。実際、私の一般的なホームネットワーク設定(LAN)のどこにもホストされているDNSサーバーはありません。ルータは、DHCP リース情報の一部として ISP の DNS サーバを送信するように設定されます。

開発PCにVirtualBoxシステムを設定し、ここにDebian Squeeze(6.0.4)をインストールしました。 VirtualBoxネットワークモードはBridged Adapter私のLANのスタンドアロンサーバーをシミュレートします。物理サーバーではなくVirtualBoxサーバーであることは重要ではありませんが、完全性のために言及しています。

質問

各ネットワークタスクは、実行前にLAN IPでDNSリバースルックアップを実行し、サーバーは長時間遅延します。遅いネットワーク操作のいくつかの例:

  • 私の開発PCからサーバーへのSSH接続
  • Glassfish サーバーの管理ポートに接続する
  • netstat -lnetstat -nlとても速い)
  • Starting MTA: exim4開始を完了するのに時間がかかる

その中には、開発コンピュータのIPを追加したり、/etc/hostsDNSリバースルックアップを避けるためにコマンド固有のオプションを追加するなどの回避策があります。明らかに/etc/hostsDHCPと一致しないので、使用法はこれまでにのみ可能です。

しかし、私は何かを見逃しているという考えを消すことはできません。私はありますか?本物LANのどこかにDNSサーバーを設定する必要がありますか?これは私のニーズに比べて膨大で役に立たない努力のように見え、私のようなDHCP環境には他のオプションがないとは信じられません。

この問題についてオンラインでたくさん検索しましたが、正しいクエリがない可能性がありますが、解決策が見つかりませんでした...

BillThorの答えに基づいたアップデート1

ホストの使用(digは同じ結果を提供します):

# ip of stackoverflow.com
$ time host -v 64.34.119.12
Trying "12.119.34.64.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15537
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;12.119.34.64.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
12.119.34.64.in-addr.arpa. 143  IN      PTR     stackoverflow.com.

Received 74 bytes from 192.168.1.1#53 in 15 ms

real    0m0.020s
user    0m0.008s
sys     0m0.000s

# ip of dev pc
$ time host -v 192.168.1.50
Trying "50.1.168.192.in-addr.arpa"
;; connection timed out; no servers could be reached

real    0m10.004s
user    0m0.004s
sys     0m0.000s

私の/etc/resolv.conf(インストール中に自動的に生成されます)

nameserver 192.168.1.1

パブリックIPの場合、ホストと発掘の両方が非常に迅速に返されますが、LAN IPの場合はタイムアウトするのに10秒かかります。現在のタイムアウト値は10秒のようです。

アップデート2

dev-pc/etc/hosts ファイルから:

$ time getent hosts 192.168.1.50
192.168.1.50    dev-pc

real    0m0.001s
user    0m0.000s
sys     0m0.000s

dev-pc/etc/hosts ファイルに見つかりません:

$ time getent hosts 192.168.1.50

real    0m10.012s
user    0m0.004s
sys     0m0.000s

リバースDNS検索を試みるすべてのプログラムの準備プログラムオプションまたはパラメータを見つける必要性がますます大きくなっているようです。私のLANでDNSサーバーとして機能できるシステム(仮想かどうかにかかわらず)は常に実行されていないからです。残念ながら、ルーターのファームウェアにはDNSサーバーは含まれていません。

答え1

192.168.1.1 このルータの IP アドレスですか?

nameserver 192.168.1.1ルーターが「ISP の DNS サーバーを送信」するのではなく、自分を DNS サーバーとして宣伝していることを示します。

どのブランドとモデルのルーターをお持ちですか? Webインターフェイスにログメッセージが表示されますか?

あなたのルーターが要求をISPのネームサーバーに転送しているかどうか疑問に思います。ただし、ISPのネームサーバーは、自分のIPシステム名を知りたくないため、要求を削除しています192.168.1.50

提案:

  • ルーターの設定をもう一度確認してください。あなたの要求に答える必要がありますプライベートネットワーク。ルータのWebインターフェイスに静的ホストエントリを追加できますか?
  • インストールを試みるあふれネットワーク内のすべてのシステムで。
  • ルーターに使用するように指示Google パブリック DNS(8.8.8.8および8.8.4.4/またはオープンDNS

答え2

ホームネットワークにローカルDNS(およびDHCP)サーバーを設定したくない場合は、可能であれば、逆方向DNS検索を実行しないようにサービスに指示できます。

たとえば、SSHD のリバース DNS ルックアップをディセーブルにするには、ファイルに以下を追加しますsshd_config(またはデプロイに応じて類似)。

UseDNS no

Exim構成からこの行を削除できます。起動速度に影響を与えるかどうかはわかりませんが、クライアント接続時にDNSリバースルックアップが防止されます。

host_lookup = *

Glassfishプロセスを開始するユーザーのためにこの環境変数をエクスポートできるようです。

export AS_NO_REVERSE_DNS=true

答え3

失敗したDNS検索はすぐに失敗します。しかし、私は通常、ホストファイルを読み込み、そのエントリの順方向および逆方向のルックアップを提供するdnsmasqを実行します。また、アップストリームDNSサーバーの負荷を軽減するためにDNSキャッシュサーバーとしても機能します。

hostまたは、digコマンドを使用してどの検索が遅いかを確認できます。実行されていないDNSサーバーにリダイレクトされると、DNSが失敗するのにかなりの時間がかかります。タイムアウトと再試行を調整することで、/etc/resolv.confエラーの発生速度を上げることができます。

編集:リゾルバーの応答をテストするには、を試してください。これにより、ファイルとDNStime getent hosts 192.168.1.50から検索が返されます。コマンド/etc/hostsはDNSのみを確認します。この操作が返されますが数秒かかる場合は、ファイルがリスト内の前の項目に移動される順序を変更する必要があるかもしれません。hostdighosts/etc/nsswitch.conf

dnsmasq名前検索にDNSのみに依存するプログラムがある場合は、そのプログラムをデフォルトのDNSネームサーバーに設定すると問題が解決します。/etc/resolve.confEximは基本的な照会にパーサーを使用する必要があります。/etc/hostsルーターでDHCPサーバーを無効にできない場合は、DHCPに使用できるファイルが必要ですdnsmasqdnsmasq処理する DHCP 要求に名前が与えられると、自動的に登録されます。

wins編集2:常に実行しているコンピュータがない場合は、Sambaをインストールしてnsswitch設定で使用することをお勧めします。高速化が必要なので、dnsホストエントリの前に置くと機能します。

avahiリンクローカルネットワークで自動検出を有効にするユーティリティのインストールも検討できます。 IPv6側で動作しますが、IPv4アドレスを公開しません。ホストのデフォルトドメインは「.local」です。あなたの場合に合わないかもしれませんが、上書きすることができます。また、クエリはwinsnsswitch設定mdnsの初期に実行するのが不適切である可能性があるよりも速いようですdns

答え4

フローティングIPから固定IPに変更した後も同じ問題が発生しました。私のネットワークは次のように構成されています。固定 - IPv6がなく、メールサーバーが計画されていません。

以下を実行して問題を解決しました。

1:dpkg-reconfigure exim4-configの実行

2: DNS ルックアップに問題がある場合 -> DNS ルックアップを最小に設定 (電話接続)

このクエリが機能しないというエラーが発生し、/ etc / hostsを編集することを提案しました。しかし、/etc/hostsについて私がした唯一のことは、ip6-allnodes行とip6-allrouters行をコメントアウトしただけでした。

もう一度始めるのは早くなければなりません(少なくとも私にとっては)。

関連情報