智能DNS新手指南

此功能为商业版本专有。

1. 简介

CDN提供了一个自建域名解析服务的功能,即可以利用你自己的服务器资源向外提供DNS解析功能。

在正式进入使用前,我们可以先来了解域名解析相关的几个名词解释:

  • 集群 - 节点集合,用来管理一组有同样功能的节点,每个集群可以服务不同的用户,或者不同的域名;
  • 节点 - 接收并处理域名记录查询的应用程序,通常每个节点都分布在不同的服务器或者虚拟机上;
  • 域名 - 要在系统中管理的域名,比如flex.dd.ci
  • 记录 - 域名中包含的对外服务的对象,有不同的类型,常见的有ACNAMEMX等;

2. 原理

1) 用户终端设备发起查询  -->  2) 查询域名服务器地址(DNS Hosts) -->  3) 查询自建CDN DNS节点  --> 4) 查询CDN系统里已添加域名解析记录
整个过程对用户来说是自动完成的,用户不会感知DNS的存在;而且已经忽略了多级DNS查询过程。

其中:

  1. 用户终端设备发起查询:用户在使用手机、电脑访问网站时,需要查询网站所在服务器的IP地址
  2. 查询域名服务器地址(DNS Hosts):用户第一次查询域名时,需要先获得域名服务器地址,比如ns1.example.com
  3. 查询自建CDN DNS节点:DNS根据上一步骤获得的域名服务器地址,将地址解析成IP,这里的IP就是我们的DNS节点,具体两者之间如何绑定,请参考本文 设置第三方解析服务器 一节
  4. 查询CDN系统里已添加域名解析记录:在我们的DNS节点接收到域名查询时,会自动查询已经添加的域名解析记录,并返回对应的结果

3. 创建集群

进入系统后,可以在左侧”智能DNS”菜单中点击”集群管理”,如果还没有集群,可以点击”创建集群”:

Guide1.png

保存后,可以在集群列表中看到这个集群:

Guide2.png

4. 安装节点

点击集群列表中某个集群的详情,可以进入”集群”管理界面,由于第一次创建可能还没有节点,界面可能是:

Guide3.png

点击”创建节点”,填入一个节点名称,并无特别要求,只需要容易识别即可:

Guide4.png

其中IP地址是该节点对外访问的节点,后面需要在第三方域名管理平台上将域名解析到这个节点。

Guide5.png

然后根据 这里 的帮助安装节点程序。

5. 添加域名

在集群和节点都准备就绪后,我们可以添加一个域名试试,在”智能DNS” – “域名管理”菜单 – “添加域名”里:

Guide6.png

其中”所属集群”选择我们刚才创建好的集群,域名example.com需要换成你自己能够管理的域名。

创建后域名列表是:

Guide7.png

6. 添加记录

在 “域名” 详情中,可以点击 “解析记录” 页,添加多个记录。在”解析记录”页点击”创建记录”:

Guide8.png

在这里我们添加了www的A记录,并填写了一个IP作为记录值。其他选项可以忽略。

点击”保存”后,就可以看到记录列表了:

Guide9.png

7. 测试

在我们添加完域名、记录后,假设你的DNS节点IP是 8.8.8.8,可以使用 nslookup 命令来查询我们已经添加的域名记录:

# 使用 nslookup 命令查询域名解析
# 其中 8.8.8.8 是你的DNS节点服务器IP
# A 为记录类型
nslookup -type=A www.example.com 8.8.8.8

# 响应
Server:		192.168.1.30
Address:	192.168.1.30#53

Non-authoritative answer:
Name:	www.example.com
Address: 192.168.2.41

也可以使用 dig 命令:

# 使用 dig 命令查询域名解析命令
# 其中 8.8.8.8 是你的DNS节点服务器IP
# A 为记录类型
dig @8.8.8.8 www.example.com A

# 响应
; <<>> DiG 9.10.6 <<>> @192.168.2.41 www.example.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28059
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.example.com.			IN	A

;; ANSWER SECTION:
www.example.com.		600	IN	A	192.168.2.41

;; Query time: 38 msec
;; SERVER: 192.168.2.41#53(192.168.2.41)
;; WHEN: Sat Sep 24 14:17:12 CST 2022
;; MSG SIZE  rcvd: 52

如果出现了相对应的结果,说明我们的节点工作正常。

你也可以在”智能DNS” – 左侧 “访问日志” 菜单里查看访问记录,类似于:

Guide10.png

8. 设置第三方解析服务器

如果只是节点解析生效,并不能让其他用户使用此解析服务,你可以:

  1. 让其他用户使用你的DNS节点作为DNS解析服务器,优点是可以非常灵活地控制任何域名的解析记录,但是缺点是用户只能访问在系统里已经设置的域名;
  2. 在第三方域名管理平台设置域名的NS记录,然后任何别的域名都可以使用我们的DNS主机地址,下面将以阿里云为例讲述设置方法。

利用阿里云云解析DNS设置解析服务器

下面示例将 flex.dd.ci 的DNS主机地址改成我们自建的DNS,然后就可以使用CDN管理 flex.dd.ci 的域名解析。

  1. 假设我们想要把 example.com 作成域名解析服务器的域名,就可以在 example.com 域名管理中添加自定义DNS Host,其中IP为DNS集群中节点的IP,子域名我们可以自己定义,通常为 ns1ns2等:

    Guide11.png

    记住这里添加的子域名,在开通用户套餐的时候需要填入到集群设置中(集群设置–基础设置–DNS主机域名)。
  2. example.com 中增加一到多个A记录,名字是ns1ns2(跟步骤1中设置的DNS服务器名称对应),记录值跟我们系统的DNS节点的IP相对应;如果只有一个DNS节点,那么两个记录的IP可以是一样的:

    Guide13.png

    这样就完成了DNS主机域名同我们DNS节点之间的绑定。
  3. 在阿里云控制台域名管理里找到要在我们系统中管理的域名(在这里是 flex.dd.ci ),点击”DNS修改”修改DNS服务器为我们刚添加的DNS Host:

    Guide12.png

  4. 设置成功后,这样别的用户不需要设置,访问 flex.dd.ci 相关的域名时,都会自动转到我们设置的系统里,只要我们在CDN系统里添加了对应的记录,就能正确响应。

可以通过域名whois查询NS记录是否设置成功,类似于:

DNS服务器
Name Server	
--------------------
DNS1:ns1.example.com
DNS2:ns2.example.com

第三方DNS服务商相关链接