CoreDNS_Quick Start

原文参见:https://coredns.io/2017/07/24/quick-start/

通过如下方式获取 CoreDNS

  • *从 github 下载最新版本,解压。然后得到 "coredns" 可执行文件。

  • *从 github 下载源码编译。
    变更目录到 coredns ,然后:

    • go get - 解决依赖关系
    • go build

    现在得到 "coredns" 可执行文件了。

  • *从 docker hub 获取Docker镜像。

如果要在 Kubernetes 中使用 CoreDNS ,请查看 this post about SD with the kuberneters plugin.

文档的其余部分集中于CoreDNS的两个使用范例:

  1. CoreDNS 提供zone解析。Optionally signing the zones as well.
  2. CoreDNS 作为转发代理。

CoreDNS 的配置文件默认 Corefile.

Serving from Files

要以zone file的方式提供服务,需要使用 file 插件。我们以 zone example.org. 作为范例,zonefile 如下。

创建文件 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

创建 Corefile, Corefile,内容如下:

example.org {
    file example.org
    prometheus     # enable metrics
    errors         # show errors
    log            # enable query logs
}

将 CoreDNS 启动于非标端口来检查是否配置正确: coredns -conf Corefile -dns.port 1053 然后使用 dig 发送一个查询:

% dig -p 1053 @localhost AAAA www.example.org +noall +answer

www.example.org.    3600    IN  AAAA    ::1

如果我们启用了log plugin插件打开query loggin ,查询会在标准输出显示如下:

::1 - [24/Jul/2017:10:10:44 +0000] "AAAA IN www.example.org. udp 45 false 4096" NOERROR 121 133.449µs

然后你可以将 CoreDNS 启动于 port 53 了,将其配置到Linux服务管理中。
查阅 the deployment repo 获取更多范例脚本。
查阅更多关于 file, metrics and errors 插件。

CoreDNS as proxy

另有一个插件是 proxy 插件。我们可以根据情况通过HTTPS将 DNS request 发送到Google。创建 Corefile :

. {
    proxy . 8.8.8.8:53 {
        protocol https_google
    }
    prometheus
    errors
    log
}

像上面那样启动 CoreDNS,然后查询测试。CoreDNS 会记录如下:

::1 - [24/Jul/2017:10:44:15 +0000] "AAAA IN www.example.org. udp 45 false 4096" NOERROR 76 83.396955ms
::1 - [24/Jul/2017:10:44:17 +0000] "AAAA IN www.example.org. udp 45 false 4096" NOERROR 76 14.030914ms
::1 - [24/Jul/2017:10:44:19 +0000] "AAAA IN www.example.org. udp 45 false 4096" NOERROR 76 13.286384ms

你看到每次查询的时间("ms"),比较慢 ~83ms, 13ms。所以我们增加一些缓存,开启 caching 插件。在 Corefile 添加 "cache" ,然后重新加载 CoreDNS: kill -SIGUSR1 <pid_of_coredns>。再次查询:

::1 - [24/Jul/2017:11:33:54 +0000] "AAAA IN www.example.org. udp 45 false 4096" NOERROR 76 43.469743ms
::1 - [24/Jul/2017:11:33:55 +0000] "AAAA IN www.example.org. udp 45 false 4096" NOERROR 73 133.073µs

第一次还是慢的,但是随后的查询只用了133 µs。

Possible Errors

health 插件的文档描述 "This plugin only needs to be enabled once",这可能会让你认为如下的配置是正确的:

health

. {
    whoami
}

但是这个配置没用,并且会导致一些简短的报错:

"Corefile:3 - Error during parsing: Unknown directive '.'".

咋回事呢? health 被视为一个 zone ,解析器期望看到指令类似(cache, etcd, etc.),而不期望下个符号是 .,这不是一个指令。Corefile 应该按照如下结构组织:

. {
    whoami
    health
}

那么health文档描述的那一行的意思其实是,一旦 health被配置了,它就是全局的,哪怕配置在一个server内。

Also See

CoreDNS还有好多插件 numerous other 。你也可以写自己的插件

queries are processed 对CoreDNS如何处理DNS查询作了更深入的探讨。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容