Phát hành PowerDNS Recursor 4.2 và sáng kiến ​​ngày cờ DNS 2020

Sau một năm rưỡi phát triển trình bày phát hành máy chủ DNS bộ nhớ đệm Tài nguyên PowerDNS 4.2, chịu trách nhiệm chuyển đổi tên đệ quy. Bộ đệ quy PowerDNS được xây dựng trên cùng cơ sở mã với Máy chủ có thẩm quyền PowerDNS, nhưng các máy chủ DNS đệ quy và có thẩm quyền của PowerDNS được phát triển qua các chu kỳ phát triển khác nhau và được phát hành dưới dạng các sản phẩm riêng biệt. Mã số dự án phân phối bởi được cấp phép theo GPLv2.

Phiên bản mới loại bỏ mọi vấn đề liên quan đến việc xử lý gói DNS có cờ EDNS. Các phiên bản cũ hơn của PowerDNS Recursor trước năm 2016 có thói quen bỏ qua các gói có cờ EDNS không được hỗ trợ mà không gửi phản hồi ở định dạng cũ, loại bỏ các cờ EDNS theo yêu cầu của thông số kỹ thuật. Trước đây, hành vi không chuẩn này đã được hỗ trợ trong BIND dưới dạng một giải pháp thay thế, nhưng trong phạm vi đã tiến hành sáng kiến ​​tháng XNUMX Ngày cờ DNS, các nhà phát triển máy chủ DNS đã quyết định từ bỏ vụ hack này.

Trong PowerDNS, các vấn đề chính trong việc xử lý gói bằng EDNS đã được loại bỏ vào năm 2017 trong bản phát hành 4.1 và trong nhánh 2016 được phát hành vào năm 4.0, các điểm không tương thích riêng lẻ đã xuất hiện phát sinh trong một số trường hợp nhất định và nói chung là không ảnh hưởng đến hoạt động bình thường. hoạt động. Trong PowerDNS Recursor 4.2, như trong BIND 9.14., Đã xóa giải pháp thay thế để hỗ trợ các máy chủ có thẩm quyền phản hồi không chính xác các yêu cầu có cờ EDNS. Cho đến thời điểm hiện tại, nếu sau khi gửi yêu cầu có cờ EDNS mà không có phản hồi sau một khoảng thời gian nhất định, máy chủ DNS sẽ cho rằng các cờ mở rộng không được hỗ trợ và gửi yêu cầu thứ hai không có cờ EDNS. Hành vi này hiện đã bị vô hiệu hóa do mã này dẫn đến độ trễ tăng lên do truyền lại gói, tải mạng tăng lên và sự mơ hồ khi không phản hồi do lỗi mạng, đồng thời ngăn chặn việc triển khai các tính năng dựa trên EDNS như Cookie DNS để bảo vệ khỏi các cuộc tấn công DDoS.

Nó đã được quyết định tổ chức sự kiện vào năm tới Ngày cờ DNS 2020được thiết kế để tập trung sự chú ý vào quyết định vấn đề bị phân mảnh IP khi xử lý các tin nhắn DNS lớn. Là một phần của sáng kiến đã lên kế hoạch sửa kích thước bộ đệm được đề xuất cho EDNS thành 1200 byte và dịch xử lý yêu cầu qua TCP là một tính năng bắt buộc phải có trên máy chủ. Bây giờ cần có hỗ trợ xử lý các yêu cầu qua UDP và TCP là mong muốn nhưng không cần thiết để hoạt động (tiêu chuẩn yêu cầu khả năng vô hiệu hóa TCP). Đề xuất loại bỏ tùy chọn vô hiệu hóa TCP khỏi tiêu chuẩn và chuẩn hóa quá trình chuyển đổi từ gửi yêu cầu qua UDP sang sử dụng TCP trong trường hợp kích thước bộ đệm EDNS đã thiết lập không đủ.

Những thay đổi được đề xuất như một phần của sáng kiến ​​sẽ loại bỏ sự nhầm lẫn khi chọn kích thước bộ đệm EDNS và giải quyết vấn đề phân mảnh các tin nhắn UDP lớn, việc xử lý chúng thường dẫn đến mất gói và hết thời gian chờ ở phía máy khách. Về phía máy khách, kích thước bộ đệm EDNS sẽ không đổi và các phản hồi lớn sẽ được gửi ngay lập tức đến máy khách qua TCP. Tránh gửi tin nhắn lớn qua UDP cũng sẽ cho phép bạn chặn các cuộc tấn công để đầu độc bộ đệm DNS, dựa trên thao tác của các gói UDP bị phân mảnh (khi chia thành các đoạn, đoạn thứ hai không bao gồm tiêu đề có mã định danh, do đó nó có thể bị giả mạo, chỉ cần tổng kiểm tra khớp là đủ) .

PowerDNS Recursor 4.2 tính đến các vấn đề với các gói UDP lớn và chuyển sang sử dụng kích thước bộ đệm EDNS (edns-outending-bufsize) là 1232 byte, thay vì giới hạn được sử dụng trước đó là 1680 byte, điều này sẽ làm giảm đáng kể khả năng mất các gói UDP . Giá trị 1232 được chọn vì đây là giá trị tối đa mà kích thước của phản hồi DNS, có tính đến IPv6, vừa với giá trị MTU tối thiểu (1280). Giá trị của tham số ngưỡng cắt ngắn, chịu trách nhiệm cắt bớt các phản hồi cho máy khách, cũng đã giảm xuống còn 1232.

Những thay đổi khác trong Bộ đệ quy PowerDNS 4.2:

  • Đã thêm hỗ trợ cơ chế XPF (X-Proxied-For), là DNS tương đương với tiêu đề HTTP X-Forwarded-For, cho phép thông tin về địa chỉ IP và số cổng của người yêu cầu ban đầu được chuyển tiếp qua proxy trung gian và bộ cân bằng tải (chẳng hạn như dnsdist) . Để kích hoạt XPF có các tùy chọn "xpf-cho phép-từ"Và"mã xpf-rr";
  • Cải thiện hỗ trợ cho tiện ích mở rộng EDNS Mạng con khách hàng (ECS), cho phép bạn truyền các truy vấn DNS đến máy chủ DNS có thẩm quyền, thông tin về mạng con mà yêu cầu ban đầu được truyền dọc theo chuỗi đã bị nhiễm độc (dữ liệu về mạng con nguồn của máy khách là cần thiết để mạng phân phối nội dung hoạt động hiệu quả) . Bản phát hành mới bổ sung các cài đặt để kiểm soát có chọn lọc việc sử dụng Mạng con Máy khách EDNS: "ecs-add-cho» kèm theo danh sách mặt nạ mạng mà IP sẽ được sử dụng trong ECS ​​trong các yêu cầu gửi đi. Đối với các địa chỉ không nằm trong mặt nạ được chỉ định, địa chỉ chung được chỉ định trong lệnh "địa chỉ ecs-scope-zero". Thông qua chỉ thị "sử dụng-đến-edns-mạng con» bạn có thể xác định các mạng con mà từ đó các yêu cầu đến có giá trị ECS đã điền sẽ không bị thay thế;
  • Đối với các máy chủ xử lý số lượng lớn yêu cầu mỗi giây (hơn 100 nghìn), lệnh “chủ đề phân phối", xác định số lượng luồng để nhận yêu cầu đến và phân phối chúng giữa các luồng công việc (chỉ có ý nghĩa khi sử dụng "pdns-distributes-queries=có").
  • Đã thêm cài đặt danh sách-hậu tố công khai để xác định tập tin của riêng bạn với danh sách các hậu tố công khai các miền trong đó người dùng có thể đăng ký miền phụ của họ, thay vì danh sách được tích hợp trong Bộ đệ quy PowerDNS.

Dự án PowerDNS cũng đã thông báo chuyển sang chu kỳ phát triển sáu tháng, với bản phát hành chính tiếp theo của PowerDNS Recursor 4.3 dự kiến ​​vào tháng 2020 năm 4.2. Các bản cập nhật cho các bản phát hành quan trọng sẽ được phát triển trong suốt cả năm, sau đó các bản sửa lỗi lỗ hổng sẽ được phát hành thêm sáu tháng nữa. Như vậy, việc hỗ trợ cho nhánh PowerDNS Recursor 2021 sẽ kéo dài đến tháng 4.2 năm XNUMX. Những thay đổi tương tự trong chu kỳ phát triển đã được thực hiện cho PowerDNS Authoritative Server, dự kiến ​​sẽ phát hành phiên bản XNUMX trong tương lai gần.

Các tính năng chính của PowerDNS Recursor:

  • Công cụ thu thập số liệu thống kê từ xa;
  • Khởi động lại ngay lập tức;
  • Công cụ tích hợp để kết nối các trình xử lý bằng ngôn ngữ Lua;
  • Hỗ trợ DNSSEC đầy đủ và DNS64;
  • Hỗ trợ RPZ (Vùng chính sách phản hồi) và khả năng xác định danh sách đen;
  • Cơ chế chống giả mạo;
  • Khả năng ghi lại kết quả độ phân giải dưới dạng tệp vùng BIND.
  • Để đảm bảo hiệu suất cao, các cơ chế ghép kênh kết nối hiện đại được sử dụng trong FreeBSD, Linux và Solaris (kqueue, epoll, /dev/poll), cũng như trình phân tích cú pháp gói DNS hiệu suất cao có khả năng xử lý hàng chục nghìn yêu cầu song song.

Nguồn: opennet.ru

Thêm một lời nhận xét