CoreDNS 上手

· Read in about 2 min · (222 Words)
CNCF dev learn

关于 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"
    

参考资料

Comments