CoreDNS是SkyDNS的继任者,可以和很多后端(etcd,k8s等)进行通信 。CoreDNS非常的灵活,它的灵活性得益于其丰富的插件 (https://coredns.io/plugins/ ),也可以写适合自己的插件 。
CoreDNS可以通过UDP/TCP,TLS(RFC 7858)和gRPC监听DNS请求 。
CoreDNS相较于传统DNS Server有很多特点,具体可以参考官网:https://coredns.io/,
依赖CoreDNS可以很快的搭建一台DNS服务器,它的安装方法比较简单,本文主要对它的配置和若干常用插件做介绍 。
默认情况下,CoreDNS加载当前工作目录下的配置文件Corefile,如果没有这个文件则加载whoami插件,然后监听53端口来响应DNS查询服务
- 实现一个代理,查询请求转发给后端的DNS服务器223.5.5.5,223.6.6.6
Corefile:
.:53 {forward . 223.5.5.5:53 223.6.6.6:53log}
这里用到了两个插件,分别是forward和log 。forward插件将请求随机地传给后端的两个实际DNS服务器(注意forward后面的点号,它表示全部域名请求都传递到后端 。如果是example.com,则表示只将匹配example.com的请求传递到后端,后端服务器最多支持15个) 。log插件将查询日志打印到标准输出 。- 使用zone file实现“真正”的DNS服务器
插件file可以让我们像配置Bind一样配置一台DNS服务器,操作起来毫无违和感 。
example.com(zone file文件):
$ORIGIN example.com.; designates the start of this zone file in the namespace$TTL 1h; default expiration time of all resource records without their own TTL valueexample.com.INSOAns.example.com. username.example.com. ( 2007120710 1d 2h 4w 1h )example.com.INNSns; ns.example.com is a nameserver for example.comexample.com.INNSns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.comexample.com.INMX10 mail.example.com.; mail.example.com is the mailserver for example.com@INMX20 mail2.example.com. ; equivalent to above line, "@" represents zone origin@INMX50 mail3; equivalent to above line, but using a relative host nameexample.com.INA192.0.2.1; IPv4 address for example.comINAAAA2001:db8:10::1; IPv6 address for example.comnsINA192.0.2.2; IPv4 address for ns.example.comINAAAA2001:db8:10::2; IPv6 address for ns.example.comwwwINCNAME example.com.; www.example.com is an alias for example.comwwwtestINCNAME www; wwwtest.example.com is another alias for www.example.commailINA192.0.2.3; IPv4 address for mail.example.commail2INA192.0.2.4; IPv4 address for mail2.example.commail3INA192.0.2.5; IPv4 address for mail3.example.com
Corefile:example.com {file example.com}
- CoreDNS还有一个比较吸引人的地方是,它可以集成Prometheus,这样就可以监控DNS请求的情况 。将以下内容添加到Corefile文件里:
.:53 {forward . 223.5.5.5:53 223.6.6.6:53prometheus 10.1.1.1:9253log}
重新启动CoreDNS,访问http://10.1.1.1:9253/metrics 就可以展现出DNS请求相关的Metrics,可以对DNS的请求数,请求延时等做监控(插件prometheus官网 https://coredns.io/plugins/metrics/ )以上就是对CoreDNS的简单介绍,还有其他比较有用的插件,值得你花时间玩味 。
【初试CoreDNS】
推荐阅读
- 考研复试的比重是多少?
- 大学生|2022中石油、中石化启动校招,工资高待遇好,部分学生有望免初试
- 中国石油天然气集团|2022中石油校招启动,平均月薪可达8000,部分学生有机会免除初试
- 成绩|2022考研今日放榜:初试成绩查询时间汇总 可申请成绩复核
- 融合5G和AI技术 临港自动驾驶企业初试“车路协同”
- 以横构图形|中国美院初试素描考什么?看了你就知道(附近年素描高分卷)
- 比例关系|急!一个月后就国美初试,素描半慎还不会画!我教你
- 初试无人机光绘
- 委约|四部力作初试啼声,上海交响乐团委约四代作曲家共谱时代强音
- 《操作系统?芝士答疑集》第2期