本文介绍: 本文主要用于介绍CoreDNS实现递归服务器的几种方式以及在生产环境中遇到的一些问题和解决方案。在开始之前我们需要知道一些关于CoreDNS的基本知识:CoreDNS本身是没有能力作为一个递归查询的DNS服务器(Recursive DNS),但是它有着众多的插件,可以通过插件来实现对域名的递归查询和缓存等功能从而加速客户端的DNS查询性能。这里主要实现的插件有或。
本文主要用于介绍CoreDNS实现递归服务器的几种方式以及在生产环境中遇到的一些问题和解决方案。
在开始之前我们需要知道一些关于CoreDNS的基本知识:CoreDNS本身是没有能力作为一个递归查询的DNS服务器(Recursive DNS),但是它有着众多的插件,可以通过插件来实现对域名的递归查询和缓存等功能从而加速客户端的DNS查询性能。这里主要实现的插件有内部插件(Plugins)forward或外部插件(External Plugins)unbound。
1 unbound
我们先来了解一下不依靠外部程序实现递归查询功能的unbound插件,unbound是一个非常优秀的DNS软件,专注于递归查询和缓存,但对于权威DNS服务器这方面的功能稍显不足,因此理论上将unbound和CoreDNS结合就可以很好的弥补两者的不足。
1.1 编译安装
unbound插件的编译安装稍显麻烦,unbound 中有详细介绍操作步骤和注意事项,需要特别注意的是编译安装了unbound
插件的CoreDNS会从原来的静态二进制文件,变成了需要动态加载依赖库。因此如果需要提前编译然后大范围使用,最好保证编译环境的系统和最终的使用环境系统一致或全兼容。
1.2 一些问题
unbound插件已经很长一段时间没有更新维护了,尽管它有Maintained by CoreDNS
的标注,因此如果使用较新版本的go编译之后,在启动的时候会有报警。
另外就是在运行的过程中会出现panic异常,一开始怀疑是和负载有关,后面测试发现当请求量极低(个位数qps)的时候也会出现此类异常。
2 forward
2.1 配置使用
2.2 一些问题
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。