自建权威 DNS

2023年9 月11日 / 网站源码 / 没有评论 / 2,678次

本文案例

域名:of.domain.name

Dns1.sale.of.domain.name

2.sale.of.domain.name

IP104.245.12.183

2604:a840:2::5fb

实现目标

有配置 zone 的根据 zone 解析

未配置 zone 的(缺省值)统一响应为指定参数

用途

  1. 用于类似dan的域名贩卖逻辑,将需要贩卖的域名 DNS 指定为我们搭建的权威 dns 

可利用权威 dns 的缺省值得到指向 web 服务器的 IP

  1. 弃用各厂商提供的云解析服务,拥有域名完整控制权。

 

说明

本教程所有案例仅供参考,不对因配置不当或其他原因造成的潜在影响负责。教程中涉及的 域名和 IP 请自行替换为自己的域名和 IP,不解释每步操作具体含义

截图与文本内容不一致的表示未贴出部分可以省略

涉及软件

1   Debian 12(放行 53 端口)

2   Nano  (任意文本编辑器都可以,本教程使用 nano ,安装指令 apt install nano -y) 3   NSD(权威 dns 程序,官网:https://www.nlnetlabs.nl/projects/nsd/support/

4   Dig(验证解析情况,安装指令 apt install dnsutils -y,建议安装在非本次教学用于部 署权威 dns 的机器上)

 

开始

安装 NSD

apt install nsd -y

进入 nsd  目录

cd /etc/nsd/

创建 zones  目录并进入这个目录

mkdir zones

cd zones/

创建 of.domain. name.zone 的 zone 配置文件

nano of.domain.name.zone

粘贴以下内容

  1. $ORIGIN of.domain.name.
  2. $TTL 300
  3. @                IN              SOA            1.sale.of.domain.name. dns.hua.ge. (
  4.                                                                            2023090901              ; serial number
  5.                                                                            14400                         ; Refresh
  6.                                                                            3600                            ; Retry
  7.                                                                            604800                       ; Expire
  8.                                                                            300                              ; Min TTL
  9. )
  10.                  3600         NS                                1.sale.of.domain.name.
  11.                  3600         NS                                 2.sale.of.domain.name.
  12. 1.sale                       IN              A                104.245.12.183
  13. 1.sale                       IN              AAAA         2604:a840:2::5fb
  14. 2.sale                       IN              A                104.245.12.183
  15. 2.sale                       IN              AAAA         2604:a840:2::5fb

保存

先按 Ctrl + x 再按 y 再回车
再创建一个 zone 文件

nano sale.zone

内容:

  1. $ORIGIN .
  2. $TTL 300
  3. @    IN    SOA    1.sale.of.domain.name. dns.hua.ge. (
  4.                               2023090901              ; serial number
  5.                               14400                         ; Refresh
  6.                               3600                            ; Retry
  7.                               604800                       ; Expire
  8.                               300                              ; Min TTL
  9. )
  10. *    180    NS                                1.sale.of.domain.name.
  11. *    180    NS                                2.sale.of.domain.name.
  12. *              IN              A                193.32.149.227

接下来创建 nsd 配置文件

cd /etc/nsd/nsd.conf.d/

nano of.domain.name.conf

写入以下内容并保存

  1. zone:
  2. name: "of.domain.name"
  3. zonefile: "of.domain.name.zone"

创建另一个配置文件

nano sale.conf

内容:

  1. zone:
  2.   name: "."
  3.   zonefile: "sale.zone"

修改 nsd 全局配置

nano /etc/nsd/nsd.conf
写入以下内容并并保存

  1. server:
  2. do-ip4: yes
  3. do-ip6: yes
  4. ip-address: 104.245.12.183
  5. ip-address: 2604:a840:2::5fb
  6. username: nsd
  7. hide-version: yes
  8. server-count: 1
  9. zonesdir: "/etc/nsd/zones/"
  10. include"/etc/nsd/nsd.conf.d/*.conf"

配置结束,启动或重启 NSD

重启:systemctl restart nsd.service
启动:systemctl start nsd.service

在域名注册商处为 of.domain.name 添加胶水记录:

使用 Dig 验证

向 1.sale.of.domain.name 或 2.sale.of.domain.name 查询任意域名,甚至字符。其响应结果为 193.32.149.227 即视为权威 dns 程序 NSD 运行正常

指令:

dig test @1.sale.of.domain.name +short

将任意域名 dns 改为 1.sale.of.domain.name 和 2.sale.of.domain.name
然后 ping 这个域名应响应 193.32.149.227

这个 193.32.149.227 即 web 服务器 IP,用于接管来访域名。
由于不在本次教程范围,下面简要贴出运行于 193.32.149.227 的 nginx 接管来访域名的配置

案例

  1. server {
  2. listen 80 default_server;
  3. listen [::]:80 default_server;
  4. server_name _;
  5. default_type text/html;
  6. return 200 '<h1>$host for sale!<h1></h2>info@hua.ge</h2>';
  7. }

下载自建权威DNS.pdf