使用CoreDNS搭建DNS服务器

木木1年前技术文章733

简介

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

可以看到启动成功


相关文章

Flink-CDC部署及测试

Flink-CDC部署及测试

1、CDC简介CDC (Change Data Capture) ,在广义的概念上,只要能捕获数据变更的技术,都可以称为 CDC 。但通常我们说的CDC 技术主要面向数据库(包括常见的mysql,Or...

hdfs数据迁移

hdfs数据迁移

通过使用distcp进行数据全量迁移DistCp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作...

Linux操作系统之Linux命令的返回值

Linux命令执行后无论成功与否都有一个返回值,如果为 0,则表示命令执行成功,其它值则表示执行错误。具体的错误码含义如下:  "OS error code  1: Operation not per...

ranger_audits更换审计日志保留时间

ranger_audits更换审计日志保留时间

本次测试集群为:hdp: 3.1.5.0-152Infra Solr: 0.1.0Ranger: 1.2.0.3.1修改Solr 的中ranger_audits 数据保留时长HDP、CDP中Range...

MySQL 8.0 新特性:innodb_dedicated_server

MySQL 8.0 新特性:innodb_dedicated_server

一、前言Innodb Dedicated Server 是 8.0 版本推出的一个参数,开启之后可以根据服务器的配置自适应 innodb 引擎中的一些重要影响性能的参数,默认是关闭的。二、参数测试使用...

Hive优化之SQL的优化(三)

Hive优化之SQL的优化(三)

     Hive是大数据领域常用的组件之一,主要是大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hi...

发表评论    

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