Tải máy chủ DNS cân bằng: UDP / TCP


10

Tôi đã được yêu cầu xây dựng lại cơ sở hạ tầng cân bằng tải của chúng tôi trong trung tâm dữ liệu.

Yêu cầu ban đầu là tải các máy chủ FTP cân bằng. Tôi đã thử làm điều đó bằng cách sử dụng bộ cân bằng tải hiện tại ( Piranha / LVS), nhưng không khởi động được và chạy. Không chỉ bởi vì có rất ít tài liệu cho phần mềm này. Vì Piranhabị coi là không được chấp nhận, tôi đã đi qua HAProxysau một vài ngày cố gắng, công việc đã làm trong một phần nhỏ thời gian dành cho Piranha.

Vì vậy, tôi đã có cân bằng tải FTP (chế độ thụ động). Bây giờ, tôi đã được yêu cầu thay thế toàn bộ Piranha Load Balancer trong trung tâm dữ liệu. Trong cấu hình Piranha hiện tại, chúng tôi có một số máy chủ web, máy chủ IIS .... aaaand DNS .

Không có gì ở đây:
HAProxydường như là một LB thường được sử dụng, nhưng nó không có khả năng xử lýUDP load balancing . Đây là một người lập dị, vì tôi thích cách làm HAProxyviệc. Vì vậy, tôi đã googled rất nhiều và tình cờ thấy một số điều. Hầu hết mọi người dường như sử dụng LVSlàm LB cho DNS (TCP / UDP). Một số sử dụng dlbDNS, một số sử dụng lbnamed, và một số sử dụng netfilter / iptables.

Vì tôi muốn gắn bó với HAProxymáy chủ FTP, HTTP, IIS, tôi đã nhầm lẫn khi sử dụng nó cạnh nhau LVS.

Yêu cầu:
2 phiên bản LB có chuyển đổi dự phòng
2 máy chủ DNS (đã tồn tại) với chuyển đổi dự phòng
Nhiều máy chủ phụ trợ (http, ứng dụng, v.v.)

Câu hỏi:
Điều này có thể không? Là cân bằng tải UDP trên các máy chủ DNS thậm chí cần thiết? Có loại tài nguyên nào có thể chỉ cho tôi cách bắt đầu với nó không? Hoặc có một giải pháp LB nào có khả năng không chỉ xử lý TCP / HTTP mà còn cân bằng tải UDP không?

PS: Giải pháp LB phải là phần cứng và nguồn mở / giấy phép GPL / miễn phí.

Bất kỳ trợ giúp hoặc dẫn đến các nguồn lực tương ứng được nhiều đánh giá cao!


Kiểm tra Nginx nginx.com/blog/announcing-udp-load-balbal điều này dường như để giải quyết câu hỏi dns của bạn
user433519

Câu trả lời:


15

Không tải cân bằng DNS của bạn.

Đó là một giao thức cực kỳ nhẹ - bạn cần một lượng lưu lượng khổng lồ cần nhiều hơn một hộp (trong trường hợp đó bạn sẽ chỉ bị tắc nghẽn trên bộ cân bằng tải của mình) và có khả năng phục hồi được tích hợp vì bạn có thể sử dụng nhiều bản ghi NS trong phái đoàn của bạn (các máy chủ khác sẽ được sử dụng nếu có sự cố).


Chắc chắn sử dụng nhiều bản ghi NS, vì TCP trở nên phổ biến hơn đối với DNS chỉ để nó tự cân bằng tải. Phát minh lại bánh xe là đau đớn vì một lý do.
cpt_fink

Nhiều máy chủ DNS cung cấp dự phòng và ngăn chặn hoàn toàn thất bại, nhưng một máy chủ DNS bị giảm vẫn sẽ gây ra sự chậm trễ trong việc phân giải tên.
200_success 18/2/2015

Được rồi, có ý nghĩa với tôi. Có một điều là tôi vẫn sẽ cần một IP ảo cho mục đích chuyển đổi dự phòng nếu tôi không nhầm, bởi vì chúng tôi sẽ có 2 máy sẽ chứa HAProxy và LVS để định tuyến. Làm thế nào tôi sẽ tiếp cận điều này?
Hố Mosh

2
@MoshPit vrrpd hoặc keepaliving là những lựa chọn tốt.
Shane Madden

Tôi giả sử bạn đang nói về một thiết lập Active - Active Hot Standby, đúng không?
Mosh Pit

11

Tôi không thoải mái với câu hỏi này vì nó thực sự chưa được thiết lập loại máy chủ DNS mà bạn đang nói đến. Có một số quan niệm sai lầm đáng kể khi nói đến khả năng phục hồi của DNS đệ quy và điều quan trọng là mọi người bay qua các công cụ tìm kiếm không rời khỏi cuộc thảo luận này với ý thức bảo mật sai.

  • DNS có thẩm quyền : Đối với các máy chủ DNS có thẩm quyền, kiến ​​thức phổ biến về khả năng phục hồi của DNS là khá phổ biến. Miễn là bạn có nhiều máy chủ DNS có thẩm quyền dự phòng địa lý, bạn vẫn ổn. Lý do chính để thêm tính khả dụng cao cho các IP riêng lẻ là nếu bạn đang lưu trữ nhiều vùng có thẩm quyền. Điều này cho phép bạn tăng số lượng máy chủ của mình mà không phải thay đổi cài đặt đăng ký cho mỗi tên miền được lưu trữ.

  • DNS đệ quy : Luôn sử dụng một số dạng giải pháp khả dụng cao. (BGP, thiết bị, v.v.) Đây là nơi bạn có thể gặp một số rắc rối nghiêm trọng. Tất cả các thư viện trình phân giải không được tạo bằng nhau: Các máy khách DNS của Windows sẽ làm tròn máy chủ ban đầu được sử dụng giữa các truy vấn, nhưng phần lớn các hệ thống dựa trên Unix sẽ luôn tuần hoàn trong danh sách. Điều thậm chí còn ít được biết đến là các thư viện Unix này sẽ phải hết thời gian trên mọi kết hợp miền tìm kiếm trước khi chuyển sang máy chủ tiếp theo. Nếu bạn có nhiều miền tìm kiếm được định cấu hình và máy chủ đầu tiên theo thứ tự tra cứu trình phân giải đã chết, điều này có thể tạo ra độ trễ đáng kể trong độ phân giải DNS cho mỗi yêu cầu: quá đủ để gây ra sự cố trong các ứng dụng quan trọng của bạn.

Khi nói đến DNS đệ quy, hãy nhớ rằng cơ sở hạ tầng máy chủ của bạn chỉ có khả năng phục hồi như cấu hình máy khách dũng cảm nhất. Khi công ty của bạn phát triển, đây là điều bạn không bao giờ kiểm soát được. Không đưa ra bất kỳ giả định thiết kế nào dựa trên môi trường HĐH máy chủ đồng nhất, vì mọi thứ hiếm khi giữ nguyên trong một công ty đang phát triển. Điều này chắc chắn sẽ cắn ai đó nếu bạn không lên kế hoạch trước cho nó.


Chúng tôi đang sử dụng bind / được đặt tên là dịch vụ DNS cho đến nay.
Mosh Pit

Điểm hay - Tôi đã giả sử có thẩm quyền trong câu trả lời của mình nhưng bạn nói đúng, nó có thể là một người nhận.
Shane Madden

1
@MoshPit Nhận xét "dịch vụ DNS" của bạn không làm rõ liệu đây là đệ quy hay có thẩm quyền. Có thẩm quyền là khi bạn đang lưu trữ tên miền. Đệ quy là thứ bạn sẽ sử dụng để lấy địa chỉ IP của các tên miền bạn không lưu trữ. Máy chủ làm cả hai là "hỗn hợp", chống lại các thực tiễn tốt nhất về bảo mật.
Andrew B

1
Tôi xin lỗi vì điều đó, nhận thấy rằng khi bạn đăng bình luận đó. Chúng tôi đang kiểm soát các máy chủ DNS của riêng mình và những máy chủ này có thẩm quyền.
Mosh Pit

Đừng sử dụng bộ cân bằng tải để sẵn sàng cao.
womble

2

Ngày nay, bạn có thể sử dụng dnsdistPowerDNS

Từ README

dnsdist là một trình cân bằng tải nhận thức cao về DNS-, DoS- và lạm dụng. Mục tiêu của nó trong cuộc sống là định tuyến lưu lượng truy cập đến máy chủ tốt nhất, cung cấp hiệu suất cao nhất cho người dùng hợp pháp trong khi tắt hoặc chặn lưu lượng lạm dụng.

dnsdist là động, theo nghĩa là cấu hình của nó có thể được thay đổi trong thời gian chạy và các số liệu thống kê của nó có thể được truy vấn từ giao diện giống như bàn điều khiển.

https://github.com/PowerDNS/pdns/tree/master/pdns/dnsdistdist

Họ cung cấp kho lưu trữ cho các hệ điều hành phổ biến: https://repo.powerdns.com/

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.