DNSの逆引きにより、LAN上のネットワーク操作が遅くなる


9

環境

私のLANセットアップは非常に基本的です。

  • ISPのモデムとインターネットに接続されたルーター
  • ルーターに直接接続した開発用PC

ルーターは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 起動時に完了するまでに時間がかかる

これらの一部には、私の開発用PCのIPを/etc/hosts追加したり、DNS逆ルックアップを回避するためにコマンド固有のオプションを追加したりするなどの回避策があります。明らかに、/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

hostとdigはどちらもパブリック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サーバーが含まれていません。

回答:


3

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

nameserver 192.168.1.1 ルーターが「ISPのDNSサーバーを送信する」のではなく、DNSサーバーとして自身をアドバタイズしていることを示唆しています。

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

ルーターがリクエストをISPのネームサーバーに転送しているかどうかは疑問ですが、ISPのネームサーバーはリクエストをドロップしています192.168.1.50

提案:

  • ルーターの設定を再確認してください。それはあなた自身のプライベートネットワークのリクエストに答えるべきです。ルーターのウェブインターフェースに静的ホストエントリを追加できますか?
  • ネットワーク上のすべてのシステムにAvahiをインストールしてみてください。
  • ルーターにGoogleパブリックDNS8.8.8.8および8.8.4.4)またはOpenDNSを使用するように伝えます

私のルーターは「NETGEARルーターWNR3500L」@ 192.168.1.1です。ログには、管理インターフェースへのDHCPリースとログインのみが表示されます。そうです、ルーターはDHCPリースを処理するときに192.168.1.1をDNSサーバーとして送信します(Wiresharkで確認済み)。ルーターの管理インターフェイスで、DNSアドレスに「ISPから自動的に取得」を使用しています。もう1つのオプションは、IPで直接DNSサーバーを指定することです。これは、DNS要求が実際にルーターによって転送されることを意味すると思います。
bernie 2012

ええ、私はそれがDNSリクエストを転送していると思います。代わりにGoogleパブリックDNS(8.8.8.8および8.8.4.4)を使用するように変更するとどうなりますか?
ミケル2012

うわーこれは実際に大きな違いを生みます!どうやら、これらのDNSサーバー(GoogleとOpenDNS)は、プライベートIPアドレスが与えられたときに速く失敗します。さらにいくつかのテストを実行しますが、これで問題が解決すると思います。
バーニー

これを承認済みの回答としてマークします。3つの回答は役に立ちましたが、DNSサーバーを変更することで、問題は「全体的に」解決しました。
バーニー

4

DNSルックアップの失敗はすぐに失敗します。ただし、私は通常、dnsmasqを実行します。これは、hostsファイルを読み取り、それらのエントリを正引きおよび逆引きに提供します。また、上流のDNSサーバーの負荷を軽減するDNSキャッシングサーバーとしても機能します。

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

編集:リゾルバー応答をテストするには、を使用してみてくださいtime getent hosts 192.168.1.50。これにより/etc/hosts、DNSだけでなくファイルからのルックアップも返されます。hostそしてdigコマンドのみDNSを確認してください。これが戻るのに数秒かかる場合は、ファイルをリストの先頭hosts/etc/nsswitch.conf移動する際のエントリの順序を変更することができます。

dnsmasqDNS /etc/resolve.confのみに依存して名前を検索するプログラムがある場合は、それをプライマリDNSネームサーバーとして設定して使用すると、問題が解決します。Eximは、ベースルックアップのリゾルバーを使用する必要があります。/etc/hostsファイルが必要になります。ルーターのDHCPサーバーを無効にできない場合は、DHCPに使用できdnsmasqます。 dnsmasq処理するDHCP要求で提供された名前は、自動的に登録されます。

EDIT2:常に稼働しているコンピューターがない場合は、sambaのインストールとwinsnsswitch構成での使用を検討することをお勧めします。それは高速でなければならないのでdns、hostsエントリの前に置くとうまくいくかもしれません。

またavahi、リンクローカルネットワークでの自動検出を可能にするユーティリティのインストールを確認することもできます。IPv6側で機能していますが、IPv4アドレスを公開していません。ホストのデフォルトドメインは「.local」です。これはあなたの場合には適さないかもしれませんが、上書きすることができます。また、nsswitch構成で先行することは適切ではない場合があるwinsため、ルックアップの実行が遅いように見えます。mdnsdns


LANのルックアップはすべて(そして唯一)遅く、ホストファイルを完全に回避しようとしていると彼は言ったと思います。
ckhan 2012

これは単なるテストサーバー(そして仮想サーバーでもある!)なので、LAN全体のDHCPサーバーとして信頼することはできません。私の開発用PC、つまりテストサーバーが実行されていない場合でも、IPを必要とするワイヤレスクライアントが他にも時々あります。
bernie

私の投稿を再度更新しました。これまでのご協力に感謝します。
バーニー

3

ホームネットワーク用のローカルDNS(および場合によってはDHCP)サーバーを設定する演習を行いたくない場合は、DNS逆引き参照を実行しないようにサービスに指示することができます。

たとえば、SSHDのDNS逆引き参照を無効にするには、sshd_configファイルに次を追加します(ディストリビューションによっては同様)。

UseDNS no

この行をExim構成から削除することもできますが、これが起動速度に影響するかどうかはわかりませんが、接続しているクライアントでのDNSの逆引き参照を防止します。

host_lookup = *

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

export AS_NO_REVERSE_DNS=true


私が持っている実際の機器でDNSサーバーをセットアップできたらいいのにと思いますが、ルーターに別のファームウェアをロードしない限り、それは実際には実現できません。設定オプションをありがとう; AS_NO_REVERSE_DNSGlassfish のオプションについては知らなかったので、見てみましょう。
バーニー

1

動的IPから静的IPに変更した後も同じ問題がありました。現在設定されているネットワーク:静的-IPv6なし、メールサーバーを使用する予定はありません。

私は次のようにして問題を解決しました:

1:dpkg-reconfigure exim4-configを実行する

2:DNSルックアップの質問に到達したとき-> DNSルックアップを最小に設定(ダイヤルアップ)

この種類の検索が機能しないというエラーと、/ etc / hostsを編集するようにという提案がありましたが、/ etc / hostsで行った唯一のことは、ip6-allnodes行とip6-allrouters行をコメント化することでした。

再起動が速くなったはずです(少なくとも私にとっては)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.