docker 使用ubuntu镜像搭建 DNS 服务
-
DNS方案选择
实现dns常见的软件有bind9、coredns(k8s中使用的)、DNSmasq。等
这里选择bind9
-
配置
#配置清单 dns server ip: 172.50.0.1 dns server name: ns.ftop. 域名:ftop. #真正的域名后面都有个点号,只是一般的软件省略掉了
-
/etc/bind/named.conf
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/rndc.server";
options 文件一般不需要改动,确保
dnssec-validation auto
和 listen 后 中是 {any} 即可。 -
添加zone配置,这里为了方便就写在 named.conf.local 中,注意最后有分号,因为它不是结尾。
文件中主要指定zone名称和zone的数据文件
zone "ftop" { type master; file "/etc/bind/db.ftop"; };
-
配置zone的数据文件/etc/bind/db.ftop
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns.ftop. root.ftop. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.ftop. ns.ftop. IN A 172.50.0.1
NS记录指定ftop 域中的ns服务器,A 记录指定服务器ip
-
-
检查配置是否正确
named-g #未运行前执行,查看有没有错误 named-checkzone ftop /etc/bind/db.ftop #检查区文件,看是否有错误
-
启动,service named start ,或者 /etc/init.d/named start
-
测试
#nslookup,需要修改/etc/resolv.conf文件,地址改为刚设定的地址 nslookup ns.ftop #使用dig测试 dig @dns-server-ip ns.top