Tôi cần phải xây dựng một máy chủ DNS bộ nhớ đệm không độc quyền tùy chỉnh trong C/C++. Bất kỳ hướng dẫn nào? Liên kết? Mẫu? Cảm ơn!Làm thế nào để xây dựng một máy chủ DNS tùy chỉnh đơn giản trong C/C++
Trả lời
Không có thứ như máy chủ DNS "đơn giản", đặc biệt nếu bạn muốn bảo mật tốt. Các cuộc tấn công DNS gần đây đã chỉ ra rằng chức năng cache trong các máy chủ DNS đệ quy đặc biệt dễ bị tấn công.
Đánh giá lại xem bạn có thực sự cần bộ đệm ẩn cục bộ của riêng mình hay không. Nếu không, bạn có lẽ nên thay đổi mã proxy DNS hiện tại (chẳng hạn như 'dnsmasq').
Nếu bạn muốn cuộn riêng, có các thư viện tốt như ldns
có thể cung cấp quyền truy cập vào các gói DNS cơ bản.
Tôi đang sử dụng ldns
bản thân mình cùng với libevent
để triển khai máy chủ DNS Fuzzing mà tôi đã đề cập trong câu hỏi trước đó.
Bắt đầu với djbdns.
Tôi sẽ cẩn thận về điều đó. phần mềm của djb có giấy phép rất hạn chế. đảm bảo rằng nó đồng ý với mục đích sử dụng của bạn. – SingleNegationElimination
djbdns hiện là miền công cộng, nhưng tôi vẫn không sử dụng ... – Alnitak
Có một loạt các triển khai phần mềm miễn phí của DNS. Bạn có thể xem mã nguồn của họ. Ví dụ:
Cuốn sách DNS and BIND có thể hữu ích. Và, tất nhiên, có các RFC chỉ định DNS, xem http://rfc-editor.org/.
Cách khác, bạn có thể sử dụng Ragel State Machine Compiler để xây dựng máy chủ của mình từ đầu.
Máy trạng thái là một phần rất nhỏ của mã máy chủ ... – bortzmeyer
Đối với nội dung được xác định bởi thông số rất nghiêm ngặt như máy chủ DNS, đó là (và cho là phần quan trọng nhất). –
Nếu bạn thực sự cần phải làm điều đó (nó là một khổng lồ làm việc, thấy trả lời Alnitak của), bắt đầu từ một chương trình tốt hiện có (không phải là một người đàn ông thử nghiệm bỏ dở trong một thời gian dài như djbdns) và sửa đổi nó.
Unbound có lẽ là lựa chọn hợp lý cho việc này. (Cơ sở mã nhỏ hơn BIND.)
Lưu ý cho người đọc: nhớ bỏ qua các phiếu giảm giá nếu không có bình luận để giải thích chúng. – bortzmeyer
Phần mềm của djb thường xuyên được biết là hành xử trái với các tiêu chuẩn vì niềm tin chung của anh ấy là tốt hơn tiêu chuẩn, và anh ta cũng được biết là phủ nhận sự tồn tại của các lỗi nâng cao đặc quyền từ xa nghiêm trọng trong mã của anh ấy. Cùng với thời gian dài, trong đó djbdns hoàn toàn không được duy trì, tôi nghĩ những yếu tố này làm cho nó hoàn toàn công bằng khi bortzmeyer gọi nó là "một trải nghiệm một người không mặc dù trong một thời gian dài" và ngăn cản việc triển khai trên môi trường không có sở thích. –
Tôi đã viết một máy chủ DNS cơ bản cho một cuộc phỏng vấn xin việc theo giấy phép BSD.
Có thể ai đó có thể tìm thấy nó hữu ích:
- 1. Máy chủ DNS rất đơn giản
- 2. Làm thế nào để xây dựng một máy chủ SMTP?
- 3. Bạn muốn tìm hiểu cách xây dựng một máy chủ lưu trữ java đơn giản
- 4. Làm thế nào để xây dựng một proxy web đơn giản trong Mule 3?
- 5. Tra cứu DNS từ máy chủ DNS tùy chỉnh trong C#
- 6. Máy chủ XMPP siêu đơn giản hoặc lời khuyên cho một thành phần Openfire tùy chỉnh đơn giản
- 7. Làm thế nào để xây dựng một chỉ số đảo ngược đơn giản?
- 8. Làm thế nào để xây dựng một máy chủ nhân bản rubygems?
- 9. Làm thế nào để xây dựng một tập tin chiến tranh đơn giản với sbt?
- 10. Làm thế nào để viết một máy chủ web đơn giản trong Erlang?
- 11. Viết một máy chủ email đơn giản
- 12. Xây dựng Chủ đề tùy chỉnh hoặc Sử dụng Chủ đề chuẩn trong WPF
- 13. Cách định cấu hình độ phân giải tên máy chủ để sử dụng máy chủ DNS tùy chỉnh trong Java?
- 14. cách xây dựng trang lỗi tùy chỉnh cấp máy chủ trong tomcat?
- 15. Chọn Máy chủ Xây dựng
- 16. Làm thế nào để xây dựng một máy chủ web hình ảnh?
- 17. Làm thế nào để xây dựng chương trình thúc đẩy đơn giản trên Mac OS (Lion)
- 18. Máy chủ Socket đơn giản trong Bash?
- 19. Làm thế nào để gọi trình đơn xây dựng lại từ thành phần front-end tùy chỉnh trong Joomla?
- 20. Làm thế nào để xây dựng một bảng HTML với một vòng lặp đơn giản trong Jinja2?
- 21. một máy chủ smtp đơn giản
- 22. Làm thế nào để xây dựng các tab đơn giản với jQuery?
- 23. Máy chủ hình ảnh đơn giản
- 24. nusoap đơn giản máy chủ
- 25. Máy chủ http đơn giản
- 26. Dự án thử nghiệm đơn vị không xây dựng từ máy chủ xây dựng
- 27. Làm thế nào để xây dựng một hệ thống đánh giá 5 sao cơ bản và đơn giản?
- 28. Làm thế nào để viết máy chủ REST đơn giản trong C# trên mono?
- 29. Làm cách nào để xây dựng một dự án đơn giản với Cabal?
- 30. Máy chủ HTTPS Java đơn giản
Tại sao trên trái đất bạn có thể có thể cần phải xây dựng máy chủ DNS của riêng bạn? –
Vì tôi cần một máy chủ DNS với một số chức năng không standart –
Tôi khuyên bạn nên tìm giải pháp thay thế, nhưng nếu đây là cách bạn phải đi… djbdns là miền công cộng, vì vậy bạn có thể hack nó lên tất cả những gì bạn muốn. –