参考: [ skynetservice github ] [ skydns 测试记录 CSDN ]
etcd 安装配置
安装
yum install etcd
配置
sed -i 's@ETCD_LISTEN_CLIENT_URLS=.*@ETCD_LISTEN_CLIENT_URLS="http://172.17.0.1:2379"@1' /etc/etcd/etcd.conf
sed -i 's@ETCD_ADVERTISE_CLIENT_URLS=.*@ETCD_ADVERTISE_CLIENT_URLS="http://172.17.0.1:2379"@1' /etc/etcd/etcd.conf
启动 etcd
systemctl enable etcd
systemctl start etcd
skydns by docker
docker run -d --restart=always \
--name skydns \
-p 0.0.0.0:53:53/udp \
skynetservices/skydns \
-machines "http://172.17.0.1:2379" \
-addr "0.0.0.0:53"
这样完成了 skydns 的搭建. 接下来进行 DNS 记录的配置.
DNS 记录的添加
添加 skydns 配置
etcdctl --endpoints http://172.17.0.1:2379 set /skydns/config '{"dns_addr":"0.0.0.0:53","ttl":30, "nameservers": ["8.8.8.8:53","114.114.114.114:53"], "domain":"special."}'
重启 skydns
docker restart skydns
添加记录
etcdctl --endpoints http://172.17.0.1:2379 set /skydns/special/test/www '{"host":"10.0.0.1"}'
etcdctl --endpoints http://172.17.0.1:2379 set /skydns/special/tiantiandas/blog '{"host":"www.cnblogs.cn"}'
记录验证
测试工具: dig
yum install bind-utils
dig @localhost www.test.special
无法解析公网域名的问题
如果在添加 skydns/config
的时候将 domain
设定为 com
, cn
这种域名, 那 自己本身作为权威DNS 服务器, 将不会查到类似于 baidu.com
, sina.com
这种域名, 但是 sina.cn
这种是可以查到.