Oxida.s Blog

BLOG.OXIDA.CN
热爱与温柔
  1. 首页
  2. 软件设计
  3. 正文

腾讯云自定义 DNS Host 搭建权威 DNS 服务器

2021年3月26日 182点热度 0人点赞 0条评论

本文介绍如何在Ubuntu环境中使用Bind9搭建权威DNS服务器。

1、安装Bind9

ubuntu@ubuntu:~$ sudo apt-get install bind9

2、配置Bind9

编辑/etc/bind/named.conf文件内容为:

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

编辑/etc/bind/named.conf.options文件内容为

options {
        directory "/var/cache/bind";

        allow-query { any; };  # 允许任何主机从服务器获取信息
        recursion no;          # 权威DNS服务器一定要禁用递归查询

        version none;
        hostname none;
        server-id none;
        datasize default;

        auth-nxdomain no;      # conform to RFC1035

        // 指定要监听的端口和地址,例如listen-on port 53 { 127.0.0.1; };
        listen-on { any; };
        listen-on-v6 { any; };
};

编辑/etc/bind/named.conf.local文件内容为:

include "/etc/bind/zones.rfc1918";

zone "example.com." {                       # 要解析的域名
        type master;
        file "/etc/bind/example.com.zone";  # 区域文件,一定要用绝对路径
};                                          # 不要忘了分号

检查/etc/bind/named.conf文件的语法:

ubuntu@ubuntu:~$ named-checkconf

编辑/etc/bind/example.com.zone文件(区域文件)内容为:

$TTL 300
$ORIGIN example.com.

; SOA record
; name  class  type  nameserver        contact             (sn ref ret ex min)
@       IN     SOA   ns1.example.com.  admin.example.com.  (
                                        2017031088 ; serial number
                                        3600       ; refresh
                                        180        ; update retry
                                        1209600    ; expiry
                                        300        ; nxdomain ttl
                                        )

; [name] [ttl] [class] type data

; NS records
@       36000   IN      NS      ns1.example.com.
@       36000   IN      NS      ns2.example.com.

; A records or CNAME records
ns1     3600    IN      A       202.*.*.*
ns2     3600    IN      A       202.*.*.*
@       300     IN      A       202.*.*.*
www     300     IN      A       202.*.*.*
test    300     IN      CNAME   test.example.com.c.cdnhwc1.com.

检查/var/named/example.com.zone区域文件的语法:

# named-checkzone example.com /var/named/example.com.zone

3、Bind9区域文件格式

区域文件定义了一个域名的解析规则,由若干资源记录(RR,resource records)和分析器指令组成。RR的顺序为:SOA RR 应该放在最前面,NS RR 紧跟其后,其他 RR 的顺序无关紧要。分析器指令用于为 RR 的输入提供方便,例如,ORIGIN 用于设置默认域(或初始域),TTL 用于为 RR 定义缺省的 TTL 值。

  • SOA RR 格式
; name  class  type  namesever contact  (sn ref ret ex min)

name字段用于说明 RR 引用的对象名,一般为相对域名或全域名,全域名应该以字符”.”结束,一般用字符”@”表示主域名。class字段用于指定网络类型,可选的值有包括 IN、CH 和 HS,其中 IN (Internet)是该字段的默认值,但通常会显示地指出。type字段用于说明 RR 的类型,可选的值包括SOA、NS、A、CNAME等。namesever字段用于存放该区域的名称服务器的主机名。contact字段用于存放管理该区域的管理员的邮件地址,由于字符”@”在区域文件中有特殊含义,因此需要用字符”.”替代。

sn – serial number,序列号,可以是 32 位的任意整数。每当更新区域文件时都应该增加此序列号的值,否则 bind9 不会把该区域的更新数据传送到从服务器。
ref – refresh,刷新间隔,设置从服务器多长时间向主服务器查询以更新数据。每次查询时,从服务器会向主服务器请求SOA记录,若发现记录中的序列号改变,会向主服务器请求传送域名的当前数据。
ret – retry,重试间隔,设置从服务器更新数据失败之后多长时间再次尝试更新。
ex – expire,过期时间,设置从服务器无法更新数据时已有数据多长时间失效。
min – minimum ttl,最小缓存时长,设置否定回答(NXDOMAIN)的缓存时长,肯定回答的默认缓存时长可以在区域文件开始处使用 $TTL 语句进行设置。

  • 其他 RR 格式
[name]  [ttl]  [class]  type  data

name、class、type三个字段的格式同 SOA RR 格式。ttl字段用于定义该 RR 缓存时长,通常省略该字段,而是在区域文件开始处使用 $TTL 语句设置缺省值。data字段取决于 RR 的类型,一般为具体的IP地址或域名。

其中,type字段值为 NS 的资源记录用于标识一个域的权威DNS服务器,包括主服务器和从服务器。

4、启动Bind9并测试

ubuntu@ubuntu:~sudo service bind9 start
ubuntu@ubuntu:~ dig @localhost example.com

5、注册权威DNS服务器

权威DNS服务器需要在域名注册商那里注册之后才能真正作为权威 DNS 服务器来使用,不同域名注册商步骤不一,这里以freenom为例。

首先,在freenom上注册glue records,添加主从名称服务器:

register_glue_records_freenom.com_-1024x501-1

然后,在freenom上自定义名称服务器,设置为glue records的值:

custom_nameserver_freenom.com_-1024x387-3

按理说,我们设置的权威DNS服务器应该可以正常工作了。但实际并非如此,使用dig example.com解析无法成功,使用dig example.com +trace发现失败原因是名称服务器找不到地址。这可能是因为没有成功注册glue records,尽管freenom平台上显示成功注册了。

因此需要曲线救国,使用另一个域名test.com,将ns1.test.com和ns2.test.com的A记录设置为我们配置的权威DNS服务器IP地址:

ns_records_cloudflare.com_-1024x144-2

然后在freenom上自定义名称服务器,设置为ns1.test.com和ns2.test.com,解析成功。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2021年5月14日

氧化先生

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复
Contents
  • 1、安装Bind9
  • 2、配置Bind9
  • 3、Bind9区域文件格式
  • 4、启动Bind9并测试
  • 5、注册权威DNS服务器
分类
  • JAVA 编程
  • 产品经理
  • 奇淫技巧
  • 文档规范
  • 生活妙招
  • 虚拟货币
  • 软件设计
标签聚合
freenom 域名 狗狗币 Kubernetes Cloudflare 软件设计 奇淫技巧 软件设计师
广告

COPYRIGHT © 2022 闪闪的部落格. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

黔ICP备16010320号

粤公网安备 44030602005860号