需要使用C创建自定义DNS名称服务器,该服务器将检查mysql数据库以查看是否需要将客户端IP定向到其他服务器。将其用于测试网络,因此如果启用了真正的查找,对foo.com的请求将仅在那里,否则请求将被定向到开发环境。有什么建议/建议吗?
目前正在寻找像ldns或c-ares这样的东西
答案 0 :(得分:2)
BIND已经有了mySQL扩展(使用动态可加载区域)。您需要做的就是创建一个包含翻译的地址表,并使用该表定义构建正确DNS记录的查询。
有关完整文档,请参阅:http://bind-dlz.sourceforge.net/
答案 1 :(得分:1)
非常类似于我现在正在处理的事情,除非在我的情况下,我必须让DNS服务器返回不同于正常情况的错误消息,以适应它在专用网络上运行的事实。
我决定只下载BIND源代码并将我的修改作为补丁编写。然后,为了进行部署,我们可以下载最新的BIND源代码,其中包括新的安全补丁,应用我们的自定义补丁并构建它。
我建议您做同样的事情,只需获取BIND并根据需要进行修改。您可以获取BIND及其所有文档here at ISC.ORG。
答案 2 :(得分:1)
答案 3 :(得分:1)
我最终选择了libevent 1.4,它包含自己的处理dns请求的函数。 libevent包含的evdns函数非常简单,我需要创建q自定义dns服务器。我看着使用bind,但不想处理必须设置区域和额外配置,evdns允许我使用现有的resolv.conf将任何dns请求转发到实名服务器并根据需要修改响应包含在mysql表中。