本文介紹了如何使用CoreDNS快速搭建一個簡單DNS服務器,從而對CoreDNS有一個初步的認識。
1、下載coredns
通過coredns的github,下載coredns。coredns的release版本地址:https://github.com/coredns/coredns/releases
這里我下載的是當前最新版本——1.6.9:
https://github.com/coredns/coredns/releases/download/v1.6.9/coredns_1.6.9_linux_amd64.tgz
2、解壓
通過命令:
tar -zxvf coredns_1.6.9_linux_amd64.tgz
將壓縮包解壓,之后我們得到了一個可執行的程序“coredns”。
3、配置
我們需要一個配置文件告訴coredns如何進行dns解析,這里在coredns程序所在目錄下新建了一個文件——Corefile,並編輯內容如下:
.:53 { # 綁定interface ip bind 192.168.17.202 # 先走本機的hosts # https://coredns.io/plugins/hosts/ hosts { # 自定義sms.service search.service 的解析 # 因為解析的域名少我們這里直接用hosts插件即可完成需求 # 如果有大量自定義域名解析那么建議用file插件使用 符合RFC 1035規范的DNS解析配置文件 192.168.10.181 mydomain.com # ttl ttl 60 # 重載hosts配置 reload 1m # 繼續執行 fallthrough } # file enables serving zone data from an RFC 1035-style master file. # https://coredns.io/plugins/file/ # file service.signed service # 最后所有的都轉發到系統配置的上游dns服務器去解析 forward . /etc/resolv.conf # 緩存時間ttl cache 120 # 自動加載配置文件的間隔時間 reload 6s # 輸出日志 log # 輸出錯誤 errors }
以上內容改自 傳送門,這里主要想實現將域名“mydomain.com”的地址,解析為192.168.10.181,其它地址由上游dns服務器解析。
dns服務器跑在53端口下。bind后邊的地址要寫當前服務器的實際地址。
4、啟動
在coredns所在目錄下通過命令:
nohup ./coredns -conf ./Corefile >log 2>&1 &
啟動coredns。
該命令會將coredns的日志輸出到當前目錄的文件“log”中,並以后台的形式執行coredns進程。
5、測試方式1
隨便找一個CentOS服務器,將其dns設為coredns的服務器地址:
vi /etc/resolv.conf
將其中的nameserver地址改為coredns的服務器地址。之后ping一下mydomain.com,我們得到的就是上邊配置的地址——192.168.10.181
6、測試方式2
隨便找一個服務器(可以用coredns所在的服務器)安裝工具bind-utils,使用其中的dig命令來驗證我們的dns配置。
yum install bind-utils
dig @192.168.17.202 mydomain.com
執行后可以看到我們配置的域名和IP映射關系