智能DNS新手指南
此功能为商业版本专有。
1. 简介
CDN提供了一个自建域名解析服务的功能,即可以利用你自己的服务器资源向外提供DNS解析功能。
在正式进入使用前,我们可以先来了解域名解析相关的几个名词解释:
集群
- 节点集合,用来管理一组有同样功能的节点,每个集群可以服务不同的用户,或者不同的域名;节点
- 接收并处理域名记录查询的应用程序,通常每个节点都分布在不同的服务器或者虚拟机上;域名
- 要在系统中管理的域名,比如flex.dd.ci
;记录
- 域名中包含的对外服务的对象,有不同的类型,常见的有A
、CNAME
、MX
等;
2. 原理
1) 用户终端设备发起查询 --> 2) 查询域名服务器地址(DNS Hosts) --> 3) 查询自建CDN DNS节点 --> 4) 查询CDN系统里已添加域名解析记录
整个过程对用户来说是自动完成的,用户不会感知DNS的存在;而且已经忽略了多级DNS查询过程。
其中:
- 用户终端设备发起查询:用户在使用手机、电脑访问网站时,需要查询网站所在服务器的IP地址
- 查询域名服务器地址(DNS Hosts):用户第一次查询域名时,需要先获得域名服务器地址,比如
ns1.example.com
等 - 查询自建CDN DNS节点:DNS根据上一步骤获得的域名服务器地址,将地址解析成IP,这里的IP就是我们的DNS节点,具体两者之间如何绑定,请参考本文
设置第三方解析服务器
一节 - 查询CDN系统里已添加域名解析记录:在我们的DNS节点接收到域名查询时,会自动查询已经添加的域名解析记录,并返回对应的结果
3. 创建集群
进入系统后,可以在左侧”智能DNS”菜单中点击”集群管理”,如果还没有集群,可以点击”创建集群”:
保存后,可以在集群列表中看到这个集群:
4. 安装节点
点击集群列表中某个集群的详情,可以进入”集群”管理界面,由于第一次创建可能还没有节点,界面可能是:
点击”创建节点”,填入一个节点名称,并无特别要求,只需要容易识别即可:
其中IP地址是该节点对外访问的节点,后面需要在第三方域名管理平台上将域名解析到这个节点。
然后根据 这里 的帮助安装节点程序。
5. 添加域名
在集群和节点都准备就绪后,我们可以添加一个域名试试,在”智能DNS” – “域名管理”菜单 – “添加域名”里:
其中”所属集群”选择我们刚才创建好的集群,域名example.com
需要换成你自己能够管理的域名。
创建后域名列表是:
6. 添加记录
在 “域名” 详情中,可以点击 “解析记录” 页,添加多个记录。在”解析记录”页点击”创建记录”:
在这里我们添加了www
的A记录,并填写了一个IP作为记录值。其他选项可以忽略。
点击”保存”后,就可以看到记录列表了:
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” – 左侧 “访问日志” 菜单里查看访问记录,类似于:
8. 设置第三方解析服务器
如果只是节点解析生效,并不能让其他用户使用此解析服务,你可以:
- 让其他用户使用你的DNS节点作为DNS解析服务器,优点是可以非常灵活地控制任何域名的解析记录,但是缺点是用户只能访问在系统里已经设置的域名;
- 在第三方域名管理平台设置域名的NS记录,然后任何别的域名都可以使用我们的DNS主机地址,下面将以阿里云为例讲述设置方法。
利用阿里云云解析DNS设置解析服务器
下面示例将 flex.dd.ci
的DNS主机地址改成我们自建的DNS,然后就可以使用CDN管理 flex.dd.ci
的域名解析。
- 假设我们想要把
example.com
作成域名解析服务器的域名,就可以在example.com
域名管理中添加自定义DNS Host,其中IP为DNS集群中节点的IP,子域名我们可以自己定义,通常为ns1
、ns2
等: 记住这里添加的子域名,在开通用户套餐的时候需要填入到集群设置中(集群设置–基础设置–DNS主机域名)。 - 在
example.com
中增加一到多个A记录,名字是ns1
、ns2
(跟步骤1中设置的DNS服务器名称对应),记录值跟我们系统的DNS节点的IP相对应;如果只有一个DNS节点,那么两个记录的IP可以是一样的: 这样就完成了DNS主机域名同我们DNS节点之间的绑定。 - 在阿里云控制台域名管理里找到要在我们系统中管理的域名(在这里是
flex.dd.ci
),点击”DNS修改”修改DNS服务器为我们刚添加的DNS Host: - 设置成功后,这样别的用户不需要设置,访问
flex.dd.ci
相关的域名时,都会自动转到我们设置的系统里,只要我们在CDN系统里添加了对应的记录,就能正确响应。
可以通过域名whois查询NS记录是否设置成功,类似于:
DNS服务器
Name Server
--------------------
DNS1:ns1.example.com
DNS2:ns2.example.com
第三方DNS服务商相关链接
- 阿里云自定义DNS服务器常见问题:https://help.aliyun.com/document_detail/59949.html
- 腾讯云自定义DNS Host,请参考 https://cloud.tencent.com/document/product/242/54158
- 华为云自定义DNS Host,请参考 https://support.huaweicloud.com/usermanual-domain/domain_ug_330018.html
- GoDaddy添加自定义域名主机,请参考 https://www.godaddy.com/help/add-my-custom-host-names-12320
- namecheap注册个人的域名服务器,请参考 https://www.namecheap.com/support/knowledgebase/article.aspx/768/10/how-do-i-register-personal-nameservers-for-my-domain/
- NameSilo管理域名服务器,请参考 https://www.namesilo.com/support/v2/articles/domain-manager/manage-name-servers