使用CoreDNS搭建DNS服务器

木木2年前技术文章1891

简介

CoreDNS是一个DNS服务器/转发器,用Go编写,可以链接插件。每个插件执行一个 (DNS) 功能。

CoreDNS是云原生计算基金会毕业的项目。

CoreDNS是一个快速灵活的DNS服务器。这里的关键词是_灵活的_:使用CoreDNS,您可以通过利用插件对DNS数据执行所需的操作。如果某些功能不是开箱即用的,您可以通过编写插件来添加它。

安装

获取CoreDNS源代码

git clone https://github.com/coredns/coredns

使用Docker编译CoreDNS

CoreDNS 需要 Go 才能编译。但是,如果您已经安装了 Docker,并且不想设置 Go 环境,则可以使用Docker轻松构建 CoreDNS:

# 进入clone下来的源码目录
docker run --rm -i -t -v $PWD:/v -w /v golang:1.17 make

此处建议安装go 环境进行编译,无论如何编译都需要设置goproxy,否则会因为网络原因导致编译失败。

编译成功后可以看到一个二进制的文件

测试下是否正常

./coredns -dns.port 1053

再开一个会话测试一下

dig @localhost -p 1053 a www.baidu.com

可以看到正常

域名解析配置

基本参数

先看下CoreDns的参数

./coredns -h

编写配置文件

配置文件名称Corefile

# 监听1053端口,将所有域名解析请求转发到223.5.5.5的53端口
.:1053 {
   forward . 223.5.5.5:53
   log
}

forward的相关说明

重新开启服务后再次测试下

可以看到已经正常解析了

插件

由于我们的目的是给内网的机器配置上对应的域名,所以这里使用hosts插件

创建hosts文件

# qanp nas
192.168.0.150 nas.ilomumu.xyz

# rancher
172.16.0.7 rancher.ilomumu.xyz

# harbor
172.16.0.7 notary.ilomumu.xyz
172.16.0.7 harbor.ilomumu.xyz

# gitlab
172.16.0.12 gitlab.ilomumu.xyz

# grafana
172.16.0.7 grafana.ilomumu.xyz

# traffik
172.16.0.7 traefik.ilomumu.xyz
172.16.0.7 rancher-traefik.ilomumu.xyz

编辑CoreDns配置

# ilomumu.xyz
ilomumu.xyz:53 {
    # 开启缓存
    cache
    # 使用hosts文件
    hosts /opt/coredns/hosts {
        # 解析失败使用下个模块
        fallthrough
    }
    # 失败后转发
    forward . 2400:3200::1
    log
}

# 监听53端口,将所有域名解析请求转发到223.5.5.5的53端口
.:53 {
    cache
    forward . 2400:3200::1
    log
}

测试一下

看到可以正常解析

验证一下

可以看到正常解析内外网

编写service文件

创建文件/usr/lib/systemd/system/coredns.service

[Unit]
Description=CoreDns

[Service]
Type=simple
ExecStart=/opt/coredns/coredns -conf /opt/coredns/Corefile -pidfile /opt/coredns/coredns.pid

[Install]
WantedBy=multi-user.target

启动服务并开机启动

systemctl start coredns
systemctl enable coredns

可以看到启动成功


相关文章

CDP实操--配置Hive/Impala的Ranger策略验证(二)

CDP实操--配置Hive/Impala的Ranger策略验证(二)

1.1Hive/impala的Ranger策略验证确保hive-on-tez的配置页面里已经勾选了“Ranger Service”在terminal中,kerberos登录到hive,用如下命令登录b...

dbms_support包跟踪10046

系统默认没有安装dbms_support这个包,可以手动执行$ORACLE_HOME/rdbms/admin/dbmssupp.sql脚本来创建该包。安装dbms_support包: SQL>...

flink web监控

flink web监控

1.1 监控指标进入Flink的原生页面,需要从yarn的原生页面的后台链接进入,如下图:这里必须要用supergroup组的用户或者flink提交任务的用户(如果该用户是机机用户不能登录)才能够看到...

Greenplum数据库建立外部表加载HDFS文件实践指导

Greenplum数据库建立外部表加载HDFS文件实践指导

环境概述(1)     Greenplum数据库版本号Greenplum Database 4.3.0.0POC3 build 45206(基于PostgreS...

大数据高可用系列--kudu高可用应急方案

大数据高可用系列--kudu高可用应急方案

1 设置机架感知1.1 前置说明    1.9版本后的kudu已经支持机架感知(cdh6之后的版本中的kudu已支持),由于kudu的每个Tablet一般是三副...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。