CoreDNS 上手
关于 CoreDNS
CoreDNS 是一个从 Caddy 中Fork出来的项目(同时继承了它的链式中间件风格),作为CNCF项目中的一员,它的目标是提供一个快速且灵活的DNS服务。
部署 CoreDNS
当前(2017/08/22)CoreDNS 还处于早期阶段,直接在Github上下载对应执行文件压缩包。
Linux上下载安装(这里以 v010 版本为例):
wget https://github.com/coredns/coredns/releases/download/v010/coredns_010_linux_x86_64.tgz
tar xzf coredns_010_linux_x86_64.tgz
mv coredns /usr/local/bin
配置示例
参考 QuickStart 中的配置。
配置文件Corefile
示例如下:
. {
proxy . 223.5.5.5:53 {
except example.org
protocol dns
}
prometheus # enable metrics
errors stdout # show errors
log stdout # show query logs
}
example.org {
file /etc/coredns/zones/example.org
prometheus # enable metrics
errors stdout # show errors
log stdout # show query logs
}
具体Corefile
配置说明请参考文档
而/etc/coredns/zones/example.org
的配置文件示例如下:
$ORIGIN example.org.
@ 3600 IN SOA sns.dns.icann.org. noc.dns.icann.org. (
2017042745 ; serial
7200 ; refresh (2 hours)
3600 ; retry (1 hour)
1209600 ; expire (2 weeks)
3600 ; minimum (1 hour)
)
3600 IN NS a.iana-servers.net.
3600 IN NS b.iana-servers.net.
www IN A 127.0.0.1
IN AAAA ::1
tt IN A 192.168.2.4
IN AAAA ::1
IN TXT HelloExampleTest
运行与测试
运行 CoreDNS 很简单,命令如下:
coredns -conf /etc/coredns/Corefile -dns.port 1053
这里指定了DNS查询的端口号为1053
,若不指定默认为53
。
打开另一个Shell使用dig
进行测试
查找 www.example.org 的A记录
dig -p 1053 @localhost A www.example.org +noall +answer # 返回结果如下 ; <<>> DiG 9.10.3-P4-Ubuntu <<>> -p 1053 @localhost A www.example.org +noall +answer ; (2 servers found) ;; global options: +cmd www.example.org. 3600 IN A 127.0.0.1
查找 tt.example.org 的TXT记录
dig -p 1053 @localhost TXT tt.example.org +noall +answer # 返回结果如下 ; <<>> DiG 9.10.3-P4-Ubuntu <<>> -p 1053 @localhost TXT tt.example.org +noall +answer ; (2 servers found) ;; global options: +cmd tt.example.org. 3600 IN TXT "HelloExampleTest"
参考资料
无