Cách tốt nhất để thiết lập bộ nhớ đệm DNS?


28

Để tăng tốc độ tra cứu DNS, tôi muốn cài đặt bộ đệm DNS hoặc proxy.

Tôi có thể thấy ít nhất ba chương trình tôi nghĩ sẽ thực hiện công việc: bind9, pdnsd hoặc dnsmasq.

Tôi muốn đảm bảo rằng nếu tôi cài đặt một trong số đó, tôi sẽ không cấu hình kém theo quan điểm hiệu suất hoặc bảo mật. Vì vậy, mọi người sẽ khuyên gì, và có bất kỳ thay đổi cấu hình nào tôi nên thực hiện ngay sau khi cài đặt không?


Đối với một máy trạm, phải không? Hay chúng ta đang nói LAN / ISP?

Có, điều này là để tăng tốc các máy trạm riêng lẻ, không phải cho mạng LAN.

Câu trả lời:


15
  1. Cài đặt bind9
  2. Điểm phân giải điểm đến 127.0.0.1

Để làm điều này theo các bước sau:

Để cài đặt Bind9

  1. Mở "Trung tâm phần mềm Ubuntu" (Ứng dụng-> Trung tâm phần mềm Ubuntu)
  2. Tìm kiếm bind9
  3. Kiểm tra để hiển thị "Mục kỹ thuật"
  4. Đánh dấu bind9 và cài đặt nó

Cập nhật /etc/resolv.conf

  1. Mở Trình quản lý mạng (Hệ thống-> Tùy chọn-> Trình quản lý mạng)
  2. Tìm kết nối của bạn và chỉnh sửa nó (có dây hoặc không dây)
  3. Chuyển đổi tab "cấu hình IPV4"
  4. Trên trường "Máy chủ DNS", hãy viết 127.0.0.1

Xong rôi!

Để kiểm tra

Mở gnome-terminal (Ứng dụng> Phụ kiện> Terminal) và gõ

dig ubuntu.com 

(nếu bạn không có nó, hãy cài đặt gói dnsutils như được giải thích cho bind9)

Kiểm tra các câu trả lời cuối cùng, làm ví dụ:

Truy vấn đầu tiên của tôi tại ubfox.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

Truy vấn thứ hai của tôi:

;; 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

Máy chủ 127.0.0.1 có nghĩa là bạn đang giải quyết cục bộ. Hãy xem trong thời gian truy vấn (bao quanh **), cái thứ hai được lưu trữ.


Cảm ơn, Igor. Tôi đã thử cách tiếp cận này và nó hoạt động tốt cho việc tra cứu tên, nhưng dường như nó không lưu trữ tra cứu địa chỉ IP đảo ngược. Làm thế nào tôi có thể làm điều này bằng cách sử dụng bind9?

Điều này đã không làm bất cứ điều gì trên thiết lập của tôi. Thời gian truy vấn vẫn còn ~ 100ms
Ashfame

Cả hai bạn: nếu nó dường như không hoạt động, hãy kiểm tra xem máy chủ đào nói gì đã nhận được câu trả lời. Nếu nó không nói 127.0.0.1, thì bạn đã không thiết lập đúng. Lưu ý: Hướng dẫn cài đặt độ phân giải có thể khác nhau đối với các phiên bản Ubuntu khác nhau.
thomasrutter

Vì vậy, bạn đang chạy một máy chủ tên bộ nhớ đệm trên hộp gui? Vâng, tất nhiên là có thể .. Nhiều khả năng hầu hết các ppl đọc này sẽ có cài đặt máy chủ - và GUI là tùy chọn. Một đơn giản sudo apt install bind9sudo nano /etc/resolv.confnên được thêm vào câu trả lời của bạn như là lựa chọn thay thế.
bshea

Tôi đã làm mọi thứ nhưng thiết lập không hoạt động. Tôi đã làm resolv.confđến 127.0.0.1 cuối cùng. Điều này có thể thất bại không? dig ubunut.comcho biết "đã hết thời gian kết nối; không có máy chủ nào có thể truy cập được"
Satya Prakash

9

Tôi muốn giới thiệu dnsmasq,

Xem một hướng dẫn tốt đẹp ở đây; http://embraceubfox.com/2006/08/02/local-dns-cache-for-faster-browsing/

Bạn có thể muốn đọc một so sánh ở đây;

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


Tôi sử dụng dnsmasq cho bộ nhớ cache DNS. Cũng cung cấp ánh xạ cục bộ từ / etc / hosts và DHCP (tùy chọn sử dụng / etc / ethers.)
BillThor

Tôi đã thử dnsmasq và nó hoạt động cũng như bind9 để tra cứu tên bộ đệm, nhưng dường như nó cũng không lưu trữ tra cứu địa chỉ IP. Điều này có thể sử dụng dnsmasq?

1
Hãy coi chừng Trình quản lý mạng ghi đè độ phân giải của bạn mỗi lần khởi động.
daithib8

6

"Để tăng tốc độ tra cứu DNS, tôi muốn cài đặt bộ đệm DNS hoặc proxy."

Được. Nhưng cũng có một cách dễ dàng hơn. Sử dụng OpenDNS và / hoặc máy chủ tên Google sẽ nhanh hơn bộ đệm cục bộ của riêng bạn cho các tên đã tồn tại trong bộ nhớ cache OpenDNS / Google. Sử dụng 208.67.222.222, 208.67.220.220 và / hoặc 8.8.8.8 làm tên phục vụ sẽ nhanh hơn hầu hết thời gian. Bạn có thể kiểm tra điều này với time nslookup www.google.com 208.67.222.222để kiểm tra tốc độ trên một trong các máy chủ tên OpenDNS, time nslookup www.google.com 8.8.8.8cho Google hoặc time nslookup www.google.com 127.0.0.1trên bộ đệm cục bộ của bạn. Khi tôi nói nhanh hơn, tôi có nghĩa là về mặt kỹ thuật nhanh hơn và không nhanh hơn nhiều đến mức một người có thể dễ dàng nhận thấy sự khác biệt.

"Tôi có thể thấy ít nhất ba chương trình mà tôi nghĩ sẽ thực hiện công việc: bind9, pdnsd hoặc dnsmasq."

Bạn có mở phần dnscache của djbdns không? Hướng dẫn dưới đây. Mặc dù vậy, nó không lưu bộ nhớ cache mà không có bản vá ...

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

Sau đó, chúng tôi sẽ cần cho hệ thống sử dụng bộ đệm của chúng tôi.

sudo gedit /etc/resolv.conf

Chỉnh sửa tập tin để trông giống như ví dụ này. Tệp này xác định máy chủ tên nào sẽ sử dụng, tên miền mặc định và hậu tố tìm kiếm. Hậu tố tìm kiếm cho phép chạy các truy vấn chỉ sử dụng phần tên máy chủ của tên miền đủ điều kiện. Đối với exmaple, 'nslookup www' tự động trở thành 'nslookup www.example.com' khi example.com là giá trị của tham số "tìm kiếm".

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

Điều này là một chút ưa thích, nhưng chúng ta cần phải có được các máy chủ tên gốc mới nhất.

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

Tôi nghĩ rằng tệp giải quyếtvv bị ghi đè khi chúng tôi sử dụng DHCP. Tôi chọn cho mình một địa chỉ IP tĩnh và xóa phần mềm xóa nó, chỉnh sửa tệp giao diện để thiết lập địa chỉ IP tĩnh. Nhưng bạn có thể thử làm việc với Trình quản lý mạng nếu bạn quá thiên về.

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

Tệp giao diện của tôi trông như sau, nhưng sửa đổi cấu hình của bạn.

# 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

Bây giờ hãy khởi động lại.

sudo reboot

Bây giờ bạn đang sử dụng một trình phân giải cục bộ và các máy chủ gốc mới nhất. Nhưng bạn sẽ chú ý nếu bạn thử rằng OpenDNS và Google trên thực tế đang trả lời nhanh hơn (đối với các tên trong bộ nhớ cache của họ, đó là tất cả các tên miền phổ biến nhất). Không có cấu hình bổ sung nào có thể khiến phần mềm trở nên an toàn hơn mà nó đã có.


Cảm ơn Christopher. Bạn có thể giải thích tại sao Google DNS nhanh hơn bộ nhớ cache cục bộ của tôi không? Tôi tin rằng nó nhanh, nhưng làm thế nào có thể nhanh hơn để đi đến tất cả các máy chủ của họ hơn là đi bộ đệm cục bộ của tôi?
Eric Johnson

Bởi vì rất có thể nó đã có câu trả lời mà không cần phải tìm kiếm lại.

@Christopher: Nhưng một khi bộ nhớ cache cục bộ của bạn có nó, việc tra cứu là ngay lập tức. Nếu bạn sử dụng Google DNS, bạn phải đợi 80 ms mỗi lần bạn thực hiện truy vấn.
Zan Lynx

@Zan Lynx Yeah .. vì vậy hãy tạo bộ nhớ cache cục bộ của bạn hỏi Google. Woo-hoo!

6
Mặc dù @ user8290 có một điểm, tôi không nói việc sử dụng GoogleDNS nhanh hơn địa phương. Vâng, google có kết quả được lưu trong bộ nhớ cache, nhưng thôi nào - nếu tốc độ quốc tế của bạn giảm, điều đó không quan trọng ngay cả khi Google có tất cả các kết quả DNS trên thế giới. Mạng cục bộ thường có 100mbps + vì vậy, yêu cầu máy chủ dns mạng cục bộ của bạn trả lời sẽ nhanh hơn ít nhất 10 lần so với yêu cầu 8.8.8.8/8.8.4.4 (tùy thuộc vào tốc độ quốc tế của bạn). Tất nhiên, đây là về mặt bạn có kết quả được lưu trữ trên máy chủ DNS của bạn.
tftd

3

Tôi đang sử dụng " dnscache " ( gói "dnscache-run" ) và nó rất đơn giản. Không cần phải cấu hình bất cứ điều gì.
Nó nắm bắt các kiến ​​nghị DNS ( cổng 53 ) và nó lưu lại các phản hồi, lần sau khi Linux yêu cầu tên miền đó, dnscache sẽ trả lại IP ngay lập tức.
Mặc dù có hai tham số có thể thay đổi để cải thiện chương trình này:

echo 16000000 > /etc/sv/dnscache/env/CACHESIZE
echo 16777216 > /etc/sv/dnscache/env/DATALIMIT

0

Dù bạn sử dụng công cụ nào, hãy đảm bảo rằng cổng 53 không được bật trên tường lửa của bạn. Bạn có thể chỉ muốn cho phép máy chủ lưu trữ truy cập ra ngoài bộ đệm.

DNSMasq rất dễ thiết lập và được ghi chép tốt. Nếu bạn cài đặt nó trên tường lửa, chỉ định các giao diện sẽ liên kết để loại trừ giao diện Internet.

Bind khó cấu hình hơn và có thể quá mức cần thiết làm bộ đệm cho một mạng nhỏ. Tôi tin rằng cấu hình mặc định là chỉ lưu trữ. Bạn có thể muốn thêm ACL để hạn chế địa chỉ nào có thể sử dụng máy chủ của bạn.


0

Gói chạy dnscache đã có ít xung đột nhất với các gói khác, như libvirt, sử dụng mạng cầu nối và dnsmasq.

sudo apt-get install dnscache-run

Gói này loại bỏ độ phân giải (/etc/resolv.conf) và bạn sẽ cần sử dụng / etc / mạng / giao diện hoặc trình quản lý mạng để xem cấu hình của mình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.