2017-08-05

权威DNS(造轮子……

0 起因

晚上被告知自己的几个服务器好像都上不了,连接不过去,然后祭出 PING ,返回的说是无法找到服务器的地址(喵喵喵???

那就自己搭建自己域名的权威DNS吧Orz……

1 环境

国内一组服务器,地点上海,托管于AliCloud
日本一组服务器,地点东京,托管于Vultr
美国 一 组服务器,地点洛杉矶,德州,托管于Vultr
服务器采用 Ubuntu 16.04 LTS

2 软件

采用bind9 嗯就那样,算是主流

3 拓扑

日本的服务器作为 boxjan.li 和另外一个子域名的 主服务器 有提供对应服务的 服务的,则作为从服务器从主服务器上复制一份 只做了正向区域

4 搭建过程

首先

sudo apt update
sudo apt install bind9

按提示敲Y 回车就可以了
然后这个版本的全部配置文件都在 /etc/bind/
name.conf 是bind的配置文件,其他的配置文件都被包含在里面, name.conf. 为前缀的是更详细的配置文件,local 一般用于定义一个zone,options 一般设置转发, default-zones 就是一些默认的空间了, db. 为前缀的是数据库文件,一般就包含各个zone解析的内容

4.0 通用设置

作为权威服务器,就做好本分工作就行,非本区域的查询都拒绝,在name.conf.opions 中的大括号内 增加了

recursion no;
allow-transfer { none; };

如果,你觉得可以作为平时用的DNS 也可以不更改 以上内容

4.1 主服务器

在name.conf.local 文件中添加一下内容(example.com 请根据实际修改)

zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer {
@ip_slave;  //从服务器IP
};
};

在 /etc/bind/ 创建 db.example.com文件
大致为一下内容(复制时请去掉注释

$TTL    300   //默认生存时间
@       IN      SOA     ns.example.com. root.example.com. ( // SOA 记录 此处的域名皆为 FQDN
                              2         ; Serial              //序号
                            300         ; Refresh             //下游服务器传输刷新时间
                             60         ; Retry               //下游服务器传输失败重试间隔时间
                        2419200         ; Expire              //有效期
                         604800 )       ; Negative Cache TTL  //过期时间
;
@       IN      NS      ns          

ns     IN      A       0.0.0.0      
ns     IN      AAAA    ::1
www    IN      A       0.0.0.1

其余解析类型请自行查找

4.2 从服务器(slave)

在name.conf.local 文件中添加一下内容(example.com 请根据实际修改)

zone "example.com" {
type slave;
file "/etc/bind/db.example.com";
masters { @ip_master; };//主服务器IP
};

4.3 备注

所有改动结束后请重启 bind9
/etc/inti.d/bind9 restart

如果在主从服务器同步时出现类似以下内容或其他问题

client IP#xxxxx: bad zone transfer request: 'example.com/IN': non-authoritative zone (NOTAUTH)

请将两边的服务器都重启下,应该即可解决

5 LASTEST

去域名注册商 把ns给改了,更换之前 新的ns.example.com 应能从其它DNS服务器被解析

最后补充一下, 最终考虑到更新的问题,boxjan.li 还是换到了do家上他家用的是cloudflare的服务器,所以除了中国,其他地区都不慢;boxjan.com则是托管在 cloudxns 上,他家提供了免费的 国家线路划分,速度还不慢,比ali好多了

以上

-- EOF --

comments

如果无法加载 请将 disqus.com | disquscdn.com 加入代理