web-dev-qa-db-ja.com

DNSキャッシングを設定する最良の方法は?

DNSルックアップを高速化するために、DNSキャッシュまたはプロキシをインストールします。

Bind9、pdnsd、またはdnsmasqの3つのプログラムが動作すると思います。

いずれかをインストールする場合、パフォーマンスまたはセキュリティの観点から不適切に構成されたままにしないでください。だから、人々は何をお勧めしますか、インストール後にすぐに行う必要がある構成の変更はありますか?

27
user8979
  1. Bind9をインストールする
  2. Resolv.confを127.0.0.1にポイントします

これを行うには、次の手順を実行します。

Bind9をインストールするには

  1. 「Ubuntu Software Center」を開きます(アプリケーション-> Ubuntu Software Center)
  2. Bind9を検索
  3. 「技術的なアイテム」を表示するためにチェックします
  4. Bind9をマークしてインストールする

/ etc/resolv.confの更新

  1. ネットワークマネージャーを開きます([システム]-> [設定]-> [ネットワークマネージャー])
  2. 接続を見つけて編集します(有線または無線)
  3. 「IPV4構成」タブを切り替えます
  4. [DNSサーバー]フィールドに127.0.0.1と書き込みます

終わった!

テストするために

Gnome-terminalを開き([アプリケーション]> [アクセサリ]> [ターミナル])、入力します

Dig ubuntu.com 

(お持ちでない場合は、bind9の説明に従ってdnsutilsパッケージをインストールしてください)

例として、最後の回答を確認してください。

Ubuntu.comでの最初のクエリ

;; Query time: **209 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:20:12 2011
;; MSG SIZE  rcvd: 196

2番目のクエリ:

;; Query time: **0 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:18:23 2011
;; MSG SIZE  rcvd: 156

サーバー127.0.0.1は、ローカルで解決していることを意味します。クエリ時間(**で囲まれている)を見てください。2番目のキャッシュはキャッシュされています。

15
Lin

私はdnsmasqをお勧めします、

こちらの素敵なチュートリアルをご覧ください。 http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/

ここで比較を読みたいかもしれません。

http://en.wikipedia.org/wiki/Comparison_of_DNS_server_software

9
dblang

"DNSルックアップを高速化するために、DNSキャッシュまたはプロキシをインストールしたい。"

OK。しかし、もっと簡単な方法もあります。 OpenDNS/Googleのネームサーバーを使用すると、OpenDNS/Googleのキャッシュに既に存在する名前に対して、独自のローカルキャッシュよりも高速になります。 208.67.222.222、208.67.220.220、および/または8.8.8.8を名前サーブとして使用すると、ほとんど常に高速になります。 time nslookup www.google.com 208.67.222.222を使用してこれをテストし、OpenDNSネームサーバーのいずれかで速度をテストできます。Googleの場合はtime nslookup www.google.com 8.8.8.8、ローカルキャッシュの場合はtime nslookup www.google.com 127.0.0.1です。速く言うと、技術的に速く、それほど速くはないので、人は簡単に違いに気付くことができます。

「私は仕事をするだろうと思う少なくとも3つのプログラムを見ることができます:bind9、pdnsd、またはdnsmasq。」

Djbdnsのdnscache部分を開いていますか?以下の手順。ただし、パッチなしではキャッシュは保存されません...

Sudo apt-get remove bind9 dnsmasq-base
Sudo apt-get install djbdns dnscache-run
Sudo killall -9 dnsmasq
Sudo update-rc.d -f bind9 remove

次に、システムにキャッシュを使用するように指示する必要があります。

Sudo gedit /etc/resolv.conf

この例のようにファイルを編集します。このファイルは、使用するネームサーバー、デフォルトドメイン、および検索サフィックスを定義します。検索接尾辞を使用すると、完全修飾ドメイン名のホスト名部分のみを使用してクエリを実行できます。たとえば、example.comが「search」パラメータの値である場合、「nslookup www」は自動的に「nslookup www.example.com」になります。

nameserver 127.0.0.1      # Use the local resolver first.
nameserver 208.67.222.222 # OpenDNS
nameserver 8.8.8.8        # Google
domain example.com
search example.com

これは少し凝っていますが、最新のルートネームサーバーを取得する必要があります。

Sudo dnsip $(dnsqr ns . | sed -e '/answer/!d;s/\(.*\)NS \(.*\)/\2/') | Sudo tee /etc/dnscache/root/servers/@

DHCPを使用すると、resolv.confファイルは上書きされると思います。私は自分に静的IPアドレスを与え、それをつぶすソフトウェアを削除し、インターフェイスファイルを編集して静的IPアドレスをセットアップすることにしました。しかし、もしあなたがそんなに傾いているなら、あなたはNetwork Managerで仕事をしようとするかもしれません。

Sudo apt-get purge network-manager network-manager-gnome
Sudo gedit /etc/network/interfaces

私のインターフェースファイルは次のように見えますが、あなたの設定を変更してください。

# Loopback
#
auto lo
iface lo inet loopback

# First network card (attached to NAT router, attached to cable internet)
#
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

今すぐ再起動しましょう。

Sudo reboot

現在、ローカルリゾルバと最新のルートサーバーを使用しています。しかし、OpenDNSとGoogleが実際に高速に応答していることに気付くでしょう(最も一般的なドメインであるキャッシュにある名前に対して)。ソフトウェアが既に安全になっている可能性がある追加の構成はありません。

6
user8290

"dnscache"(package "dnscache-run")を使用していますが、これは非常に簡単です。何も設定する必要はありません。
DNS嘆願書をキャプチャし(port 5)、応答をキャッシュします。次にLinuxがそのドメインを要求すると、dnscacheはすぐにIPを返します。
このプログラムを改善するために変更できる2つのパラメーターがありますが:

echo 16000000 > /etc/sv/dnscache/env/CACHESIZE
echo 16777216 > /etc/sv/dnscache/env/DATALIMIT
3
Juan Simón

どのツールを使用する場合でも、ポート53がファイアウォールで受信可能になっていないことを確認してください。キャッシュアウトバウンドアクセスを持つホストのみを許可したい場合があります。

DNSMasqはセットアップが簡単で、十分に文書化されています。ファイアウォールにインストールする場合は、インターネットインターフェイスを除くバインドするインターフェイスを指定します。

バインドは設定がより難しく、小規模ネットワークのキャッシュとしては過剰になる可能性があります。デフォルトの設定はキャッシュのみだと思います。 ACLを追加して、サーバーを使用できるアドレスを制限することができます。

0
BillThor

Dnscache-runパッケージは、ブリッジネットワーキングとdnsmasqを使用するlibvirtなどの他のパッケージとの競合が最も少なくなっています。

Sudo apt-get install dnscache-run

このパッケージはresolvconf(/etc/resolv.conf)を削除するため、構成を表示するには/ etc/network/interfacesまたはネットワークマネージャーを使用する必要があります。

0
rickfoosusa