安装
$ sudo yum install -y bind
配置举例(master/slave和subdomain委派)
主机:192.168.91.75(master server for domain niuer.tech)
1.修改主配置文件,添加zone niuer.tech:
$ sudo vim /etc/named.conf
添加zone niuer.tech
zone “niuer.tech” IN {
type master;//primary/master server
file “named.niuer.tech”; // zone文件
allow-update { none; };//不允许动态更新
allow-transfer { 192.168.91.73; };//允许传输zone到slave 192.168.91.73
also-notify { 192.168.91.73; };//zone更新时通知slave 192.168.91.73 };
2.创建新的zone文件,格式为:
先设置directive(TTL,ORIGIN)等,然后是记录(Resource Record),RR格式:
RR-name TTL class type resource-data
$ sudo vim /var/named/name.niuer.tech
$TTL 3H
@ IN SOA @ root.niuer.tech. (
2019091201 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns
@ IN A 192.168.91.75
sh IN NS dns.sh
dns IN A 192.168.91.75
dns.sh IN A 192.168.91.73
注意:名称(主机名,域名)后面不加".“会自动加上zone的名称,否则加”."表示名称在此结束,不会加上zone的名称了。
第一行设置 TTL(Time To Live),生存时间,简单的说它表示记录在DNS服务器上的缓存时间。如果其它地方没有设定TTL,以这个为准。
第二行设置 SOA(start Of Authority)记录(RR),表示目前区域的授权记录开始。这里我们看到一个特殊字符“@”,它就是 ORIGIN 的意思,假如前面没有定义 $ORIGIN 的话,那这个 @ 的值就以named.conf 里的 zone为准。在@之后是TTL的设定,这里的TTL没有设定,则参考前面的$TTL 值,如果前面没有定义 $TTL,那就参考其后介绍的 minium设定。在 TTL
之后是一个 IN,定义出目前的记录类型是属于 internet class,这是默认值,可以省略,不过一般还是不要省略的好。在 IN
之后就是RR的记录类型名称,这里是 SOA ,每一个记录档只能有一个 SOA,不得重复,而且必须是所负责的 zone 中第一个“记录”。紧接 SOA后面,指定了这个区域的授权主机和管理者的信箱(其中第一个点表示的是邮件格式中的@),这里分别是niuer.tech主机和root@niuer.tech邮箱。这里要注意的是﹕SOA的主机名称必须能够在 DNS 系统中找到一个 A 记录。接下来的SOA 设定,是被括在“()”之间的 5 组数字,主要作为和 slave 服务器同步DNS资料所使用的数据﹕
Serial﹕zone的序列号,供slave判断是否从master更新数据。每次更新zone文件都要修改这个serial值,RFC建议的格式为YYYYMMDDnn,nn为修订号。
Refresh﹕告诉 slave 要隔多久要进行资料同步(注意:是否同步要看 Serial的比较结果,所以手动更新master zone时要手动同步更新serial)。现在bind的notify参数提供每次更新主动通知slave的功能,refresh参数主要用于notify关闭时。
Retry﹕如果 slave 在进行更新失败后,要隔多久再进行重试。
Expire﹕决定slave在无法联系master的情况下权威地提供域名解析的时间长短。
Minimum﹕这是最小预设 TTL值,如果您在前面没有用“$TTL”来定义,就会以此值为为准。
第三行设置本域niuer.tech(@表示)的名称解析由dns.niuer.tech这台主机来负责。
第四行设置主机niuer.tech(@表示)解析到IP 192.168.91.75。
第五行设置sh.niuer.tech这个子域的名称解析由dns.sh.niuer.tech这台主机解析。这就是子域的委派(delegation)。主机dns.sh.niuer.tech上配置zone sh.niuer.tech即可。子域委派的功能也可以通过设置forward zone实现,但是没有委派简洁。委派只需要在父域zone文件中设置一条NS类型的记录即可,而forward则需要在/etc/named.conf中为每个子域(也可以是其它域)设置forward zone。但是委派只局限于子域,而forward无此限制。
第六行设置主机dns.niuer.tech解析到192.168.91.75。
第七行设置主机dns.sh.niuer.tech解析到192.168.91.73。
主机:192.168.91.73(master server for subdomain sh.zone niuer.tech and slave server for domain niuer.tech)
1.修改主配置文件,添加zone niuer.tech:
$ sudo vim /etc/named.conf
添加zone sh.niuer.tech 和niuer.tech
zone “sh.niuer.tech” IN {
type master;
file “named.sh.niuer.tech”;
allow-update { none; };
};
zone “niuer.tech” IN {
type slave;
file “named.niuer.tech”;
allow-update { none; };
masters { 192.168.91.75; };
};
2.创建新的zone文件:
$ sudo vim /var/named/name.sh.niuer.tech
$TTL 3H
@ IN SOA @ rname.invalid. (
2019091201 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns
dns A 192.168.91.73
mail A 192.168.91.17