搭建内网DNS服务器教程

发布于

内网DNS服务器的软件有许多,比如Bind9,dnsmasq,PowerDNS等等

而这次搭建内网dns服务的软件CoreDNS,CoreDNS是Golang编写的一个插件式DNS服务器,也是Kubernetes 1.13 后所内置的默认DNS服务器.自己也考虑过使用Bind9,但配置感觉太麻烦了,故选择了比较简单灵活的CoreDNS作为搭建dns服务的软件

使用spring3

下载安装

  • 编译安装(不推荐)

    # 编译安装首先确保环境中有Golang且版本为1.12或者更高 
    # 且因为软件编译时会下载来自谷歌的依赖,所以还是不是特别推荐编译安装
    git clone https://github.com/coredns/coredns
    cd coredns
    make
    
  • 下载安装

    从Github下载对应系统的依赖 https://github.com/coredns/coredns/releases

    # 下载依赖
    wget https://github.com/coredns/coredns/releases/download/v1.7.1/coredns_1.7.1_linux_amd64.tgz
    # 解压
    tar -zxvf coredns_1.7.1_linux_arm.tgz
    

编译/解压 完成后,都会得到一个coredns 的二进制文件,这个就是CoreDNS软件

域名解析配置

CoreDNS基本参数

./coredns -h

参数解释
-conf指定配置文件(默认为当前目录的 Corefile
-dns.port指定 DNS 服务监听端口
-pidfile指定 pid 文件的存放路径
-plugins列出已安装的插件
-quiet不打印日志
-version显示版本信息

域名解析

coredns 所在目录下,新建文件 Corefile,并且添加一下内容

.:53 {
    forward . 8.8.8.8:53
    log
}

forward是将DNS消息转发到上游DNS服务器上

当时你也可以添加多个上游DNS服务器

.:53 {
    forward . 8.8.8.8:53 223.5.5.5:53 223.6.6.6:53 [2400:3200::1]:53
    log
}

在终端输入 ./coredns -conf Corefile 即可运行(未root用户则需要添加sudo)

打开一个新终端,输入 dig @localhost a baidu.com 就可以测试coredns是否运行成功(未安装dig的输入apt-get install dnsutils进行安装)
使用spring2

可以看到,域名解析成功了

内网域名解析

内网的环境比较简单,这里使用hosts插件进行解析

.:53 {
    forward . 8.8.8.8:53
    hosts {
        172.10.162.32 guiyun.test
        # ttl
        ttl 60
        # 重载hosts配置
        reload 1m
        # 继续执行
        fallthrough
    }
    log
}

如果域名比较多,也可以使用

 .:53 {
    forward . 8.8.8.8:53
    hosts /opt/coredns/hosts
    log
}

并在**/opt/coredns/hosts**创建文件

172.10.162.32  guiyun.test
172.10.162.31  admin.guiyun.test

编辑保存运行后可以使用dig命令进行测试

终端,输入dig @localhost a guiyun.test就可以测试
使用spring1

更多的详细用法,可以去官网 进行学习

参考网站

https://blog.csdn.net/enweitech/article/details/84582800
https://draveness.me/dns-coredns/

评论