How to Build a custom simple DNS server in C/C++(如何在 C/C++ 中构建自定义的简单 DNS 服务器)
问题描述
我需要在 C/C++ 中构建一个自定义的简单非权威缓存 DNS 服务器.任何指导?链接?样品?
I need to build a custom simple non-authoritative caching DNS server in C/C++. Any guidance? Links? Samples?
推荐答案
没有简单"缓存 DNS 服务器这样的东西,特别是如果您想要体面的安全性.最近的 DNS 攻击表明递归 DNS 服务器中的缓存功能特别容易受到攻击.
There's no such thing as a "simple" cacheing DNS server, particularly if you want decent security. Recent DNS attacks have shown that the cacheing function in recursive DNS servers is particularly vulnerable.
重新评估您是否真的需要自己的本地缓存.如果不这样做,您可能最好修改现有的 DNS 代理代码(例如dnsmasq").
Re-evaluate whether you actually need local cacheing of your own. If you don't, you're probably better off modifying existing DNS proxy code (such as 'dnsmasq').
如果您确实想自己动手,有一些不错的库,例如 ldns 可以提供对底层 DNS 数据包的访问.
If you do want to roll-your-own, there are good libraries such as ldns which can provide the access to the underlying DNS packets.
我自己使用 ldns 和 libevent 来实现我在前面的问题中提到的 Fuzzing DNS 服务器.
I'm using ldns myself in conjunction with libevent to implement the Fuzzing DNS server I mentioned in an earlier question.
这篇关于如何在 C/C++ 中构建自定义的简单 DNS 服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 C/C++ 中构建自定义的简单 DNS 服务器
基础教程推荐
- 为什么 RegOpenKeyEx() 在 Vista 64 位上返回错误代码 2021-01-01
- 初始化列表*参数*评估顺序 2021-01-01
- GDB 显示调用堆栈上函数地址的当前编译二进制文 2022-09-05
- 通过引用传递 C++ 迭代器有什么问题? 2022-01-01
- CString 到 char* 2021-01-01
- 我应该对 C++ 中的成员变量和函数参数使用相同的名称吗? 2021-01-01
- 为什么派生模板类不能访问基模板类的标识符? 2021-01-01
- 如果我为无符号变量分配负值会发生什么? 2022-01-01
- 非静态 const 成员,不能使用默认赋值运算符 2022-10-09
- 为什么 typeid.name() 使用 GCC 返回奇怪的字符以及如 2022-09-16
