Làm thế nào để vượt qua giới hạn trình giải libc của tối đa 3 máy chủ tên?


10

Giả sử tôi làm việc trong môi trường với số lượng thay đổi tên miền và lan truyền chậm.
Tôi muốn kiểm tra cấu hình miền ngay lập tức sau khi thay đổi cài đặt nhưng quá trình lan truyền chậm. Vì vậy, tôi muốn thêm nhiều máy chủ tên vào /etc/resolv.conftệp trong máy tính xách tay Debian 6.0.3 của mình. Đặc biệt là máy chủ tên miền của công ty đăng ký tên miền của tôi. Tôi làm điều đó bằng cách thêm:

append domain-name-servers 85.128.130.10, 194.204.152.34;

vào /etc/dhcp/dhclient.conftập tin của tôi Sau khi kết nối lại với mạng, tôi /etc/resolv.confđược cập nhật chính xác, nhưng với thông báo sau:

# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.

Vậy có cách nào để sử dụng nhiều hơn 3 máy chủ tên tại thời điểm đó không?

Câu trả lời:


19

Chỉ 127.0.0.1đặt tên máy chủ tên /etc/resolv.confvà chạy bộ đệm DNS cục bộ. Tôi khuyên bạn nên dùng Dnsmasq , nó rất nhẹ và dễ cài đặt. Trên các bản phân phối như Debian và Ubuntu, tôi cũng khuyên bạn nên cài đặt resolvconf gói, trong đó chăm sóc duy trì /etc/resolv.confkhi bạn không chạy một bộ nhớ cache DNS địa phương, hoặc của việc duy trì cấu hình chương trình bộ nhớ cache của DNS khi bạn đang có.


Có, bộ đệm DNS cục bộ (và cụ thể là dnsmasq ) đã thực hiện thủ thuật này. Tôi sẽ cho phép bản thân mở rộng giải pháp của bạn dưới đây.
malloc4k

Tôi muốn thêm rằng systemd sẽ cung cấp systemd-yet.service , một dịch vụ hệ thống quản lý độ phân giải tên mạng. Nó thực hiện một trình phân giải DNS lưu trữ bộ đệm và một trình phân giải và phản hồi LLMNR.
Cristian Ciupitu

8

Đây là cách tôi tạo Debian sử dụng nhiều hơn 3 máy chủ tên cùng một lúc.

  1. Cài đặt gói dnsmasq

  2. Định cấu hình máy khách DHCP cục bộ của tôi không sử dụng địa chỉ máy chủ DNS được cung cấp bởi máy chủ DHCP mà chỉ thay vào đó là máy chủ cục bộ. Để làm như vậy tôi thêm vào /etc/dhcp/dhclient.conftập tin của mình dòng sau

    supersede domain-name-servers 127.0.0.1;

  3. Cấu hình dnsmasq không sử dụng /etc/resolv.conftệp mặc định , nhưng tệp thay thế của chính nó. Trong /etc/dnsmasq.confthêm dòng sau

    resolv-file=/etc/resolv.dmasq

  4. Tạo /etc/resolv.dmasqvới nhiều máy chủ tên như bạn muốn.

  5. Khởi động lại dnsmasqdịch vụ.

Tôi đã thử nghiệm nó với 9 máy chủ tên được xác định không chứa tên miền của tôi. Hệ thống không thể giải quyết tên của nó. Khi tôi thêm máy chủ tên thứ 10, hệ thống đã giải quyết chính xác tên của nó.


5

Từ độ phân giải:

Có thể liệt kê tối đa MAXNS (hiện tại 3) máy chủ tên, mỗi máy chủ một dòng. Nếu có nhiều máy chủ, thư viện trình phân giải truy vấn chúng theo thứ tự được liệt kê. Nếu không có mục nhập máy chủ tên, mặc định là sử dụng máy chủ tên trên máy cục bộ. (Thuật toán được sử dụng là để thử một máy chủ tên và nếu hết truy vấn, hãy thử tiếp theo, cho đến khi hết máy chủ tên, sau đó lặp lại thử tất cả các máy chủ tên cho đến khi số lần thử lại tối đa được thực hiện.)

Khi tất cả các máy chủ tên đã được thử và truy vấn không thành công mặc định là trả về thông báo không tìm thấy máy chủ.

Bạn có thể lặp lại cùng một dòng dưới đây trong tệp conf để thêm nhiều nameserverchỉ thị. Mỗi dòng lệnh nameserverhỗ trợ tối đa 3 địa chỉ DNS (mỗi dòng).

Xin lưu ý rằng chỉ có một máy chủ lưu trữ đã từng thử và đó là trên cùng của danh sách trong độ phân giải; nếu không tìm thấy địa chỉ trên máy chủ thứ nhất hoặc máy chủ không truy cập được và chỉ sau đó, địa chỉ thứ hai được thử và sau đó tiếp tục cho máy chủ thứ ba nếu truy vấn trên máy chủ thứ hai không thành công. Không có lựa chọn ngẫu nhiên hoặc lựa chọn ngẫu nhiên các máy chủ tên từ độ phân giải trong quá trình phân giải máy chủ, vì vậy chi phí thử tất cả các máy chủ tên sẽ đánh thuế trực tiếp vào hiệu năng của các hệ thống / ứng dụng cơ bản.

Tuy nhiên, tôi nghĩ rằng bạn nên triển khai tốt hơn một máy chủ tên bộ nhớ đệm cục bộ, việc tăng hiệu suất DNS cho các ứng dụng sử dụng / tùy thuộc vào độ phân giải của máy chủ sẽ tăng nếu số lượng cuộc gọi dns cũng giảm / phụ thuộc vào độ trễ.

Một cách tiếp cận khác là sử dụng các máy chủ openDNS, có lẽ chúng có các máy chủ DNS phục vụ nhanh nhất và cập nhật nhanh nhất trên internet.


2

Một câu trả lời khác. Tôi không chắc liệu điều này có liên quan đến Debian hay không nhưng gần đây đây là một cách tiếp cận thông thường (& thời trang) được tìm thấy trên hầu hết các bản phát hành phân phối mới nhất.

Sử dụng hồ sơ mạng. Ý tưởng là chuyển sang cài đặt mạng trong các môi trường mạng khác nhau hoặc tự động hoặc sử dụng đầu vào của người dùng, trong khi vẫn duy trì các bản sao của tệp cấu hình và cài đặt cho tất cả các mạng khác có thể không hoạt động tại thời điểm đó.

http://www.linuxhowtos.org/Tips%20and%20Tricks/switchingnetwork.htmlm http://www.linuxhomenetworking.com/forums/showthread.php/15822-Configure-multipl-network-profiles http: // wiki. debian.org/NetworkManager


-2

Chỉnh sửa /etc/resolvconf/update.d/libcdòng sau

[ "$N" = 3 ] && return 0

Đến

[ "$N" = 4 ] && return 0

Bây giờ bạn có thể chèn 4 máy chủ tên /etc/network/interfaces, chèn dòng trong giao diện của bạn

dns-nameservers x.x.x.x y.y.y.y a.a.a.a b.b.b.b

3
Nếu libc không sử dụng nhiều hơn ba, sự thay đổi này dường như vô nghĩa.
Mikel
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.