自建权威 DNS

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

本文案例

域名:of.domain.name

Dns:1.sale.of.domain.name

2.sale.of.domain.name

IP:104.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