开启辅助DNS

介绍如何开启辅助DNS服务。

产品限制

  • 辅助DNS面向 云解析DNS企业旗舰版 用户开放使用。立即购买

  • 云解析DNS目前只能作为 DNS使用,您当前使用的DNS为 DNS。

  • 域名开启辅助DNS后,在云解析的解析设置中不能手动修改解析记录,所有解析记录都需要从主DNS同步过来。

  • 辅助DNS功能适用于使用 自建DNS或 第三方DNS托管服务的用户。如使用的是 第三方DNS托管服务,请确认您当前的托管厂商也支持配置辅助DNS功能。

  • 如使用的是 自建DNS,经测试,云解析辅助DNSBIND v9.1.0以上版本兼容良好,且需要DNS服务器支持RFC标准的XFR、NOTIFY协议。

一、准备工作

开启辅助DNS,首先需要在主DNS上完成配置,然后在云解析DNS中开启辅助DNS。由于DNS系统的实现方式多样,以下以自建DNS(BIND 9.9.4及以上版本)为例说明如何配置主DNS。

1.生成TSIG密钥

可以通过 dnssec-keygen工具生成TSIG密钥,命令如下:

dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST test_key

如果长时间无法生成密钥文件,可以尝试添加参数 -r /dev/urandom ,如下:

dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST -r /dev/urandom test_key

命令说明

• -a :指定加密算法,我们支持的HMAC-MD5、HMAC-SHA1、或HMAC-SHA256。

• -b: 指定密钥中字节的数量。密钥文件大小的选择依赖于所使用的算法,HMAC密钥必须在1512位之间。

• -n: 指定密钥文件的所有者类型,可选值包括:ZONE、HOST、ENTITY、和USER。通常使用HOSTZONE。

• test_key :指定密钥文件的名称。该名称用于使用BIND配置主DNS 中 allow-transfer 的填写,和添加主DNS信息中TSIG名称的填写。

• -r /dev/urandom:随机数生成器。

命令执行后,在当前目录下会有 “.key”和 “.private” 的文件(例如:“Ktest_key.+157+64252.key ” 和“ Ktest_key.+157+64252.private ”)。“.key” 文件中包含了 DNS KEY record,这个record用于配置辅助DNS时,在添加主DNS信息时,用于TSIG的填写;“.private” 文件中包含算法指定的字段。

2.使用BIND配置主DNS

在配置文件 /etc/named.conf 完成以下配置:

zone "域名(如:xxx.com)" IN {
type master;
allow-update { 127.0.0.1; };
allow-transfer {key test_key;};
notify explicit;
also-notify {47.92.XX.XX port 53  key test_key;47.92.XX.XXX port 53  key test_key;};
file "zone_file";
};

配置含义说明

  • zone:配置您指定的域名。

  • allow-transfer:目前支持通过TSIG进行主辅DNS间通讯,此处请指定为允许服务器通过TSIG方式来更新的KEY名称。

    说明:根据RFC标准协议,我们推荐使用事务签名(简称TSIG)来保证DNS消息的安全性。TSIG通常使用共享密钥和单向哈希函数来验证DNS消息,能较好地确保主辅DNS之间信息同步的安全性。您可以通过生成一个MD5、SHA256SHA1型的TSIG密钥,生成后将TSIG同时配置到您的主DNS、辅DNS。具体操作请参考上述生成TSIG密钥内容。

  • also-notify:当区域(ZONE)发生变更时,需要通知辅助DNS服务器IP地址,支持多个。此处请指定为云解析辅助DNS服务器,具体IP地址请查看控制台辅助DNS配置页面。

DNS服务器名称:
对应IP地址为:47.92.XX.XX,47.92.XX.XXX
  • test_key:指定密钥文件的名称。该名称用于使用BIND配置主DNS 中 allow-transfer 的填写,和添加主DNS信息中TSIG名称的填写。

3. 将生成的密钥按照以下两种方式添加到 named.conf文件中

  • 按如下格式粘贴到 named.conf

key "test_key" {        algorithm hmac-sha256;       secret ".key文件中的加密串";};
添加key
  • 通过include文件方式

需要通过include的方式添加到named.conf文件中,例如:

include "/etc/named/dns-key";

incloud_key/etc/named/dns-key文件格式如下

key "test_key" {
        algorithm hmac-sha256;
        secret ".key文件中的加密串";
};

注意: 配置文件named.conf完成配置更改后,需要 重启应用

1.重启命令:systemctl restart named

二、开始配置

4.辅助DNS配置

  1. 登录云解析DNS控制台

  2. 在左侧目录单击 辅助DNS,点击 使用辅助DNS 按钮。

  3. 单击 添加辅助DNS 按钮,在添加辅助DNS的对话框中,选择需要开启辅助DNS的域名,并点击 确认 按钮。

  4. 在辅助DNS页,完成两项配置: 设置主DNS信息设置发送NOTIFY通知的服务器IP地址、 配置完毕后点击确认

    image.png
  • 设置主DNS信息:单击右侧 添加 按钮,添加主DNS记录。image.png

    IP地址:填写主DNS服务器IP地址,确保该地址能够被公网访问到。

    TSIG密钥类型:选择合适的加密算法类型,可选值包括:SHA1、SHA256、MD5。

    TSIG密钥名称:填写生成的TSIG名称,即test_key。

    TSIG密钥值:填写生成的TSIG值,即TSIG密钥文件.key中的加密串。

  • 设置发送NOTIFY通知的服务器IP地址:单击右侧 添加按钮,输入发送通知的服务器IP地址或IP段。

    image.png

    IP地址:当主DNS记录发生变更时,则需要向云解析辅助DNS发送变更通知(基于标准NOTIFY协议),因此需要在这里配置发送变更通知的服务器IP地址。避免您的请求被拒绝。

  • 勾选是否使用故障通知:开启后,当出现主辅DNS连接中断时,云解析将短信通知您。最后点击 确认

    勾选并确认
  1. 完成上述辅助DNS的配置后,在辅助DNS页面的列表中可以看到添加的域名,同步开关为开启状态的域名表示已开启辅助DNS。

    image.png
  • 主辅连接状态为 正常:说明辅助DNS可以正常连接到主DNS服务器。

  • 主辅连接状态为 阻断:则代表辅助DNS无法连接到主DNS服务器。请您检查如下3点:

    ① 辅助DNS配置参数信息是否填写正确,主DNS服务器的IP地址外网是否可以访问。

    ② 主DNS服务器目前是否正常运转。

    ③ 主DNS配置文件是否符合RFC规范,例如:SOA记录中的序列号值范围是1~2^32-1。若主DNSSOA中序列号值超出范围,将导致辅助DNS停止同步主DNS的资源记录。具体可参考:同步异常说明

  1. 开启辅助DNS后,且状态正常。若希望跳过NOTIFY协议直接进行同步触发,则可进行以下操作。域名解析-单击开启辅助DNS的域名-解析设置-手动触发同步。

5.域名DNS配置

开启辅助DNS,配合主DNS,有以下三种搭配方式:

(1)只配置主DNS

域名的所有解析由DNS进行解析。辅助DNS进行实时数据备份

域名@的NS记录配置:

664

查看权威返回情况,执行dig dns-example.com NS @ns1.dns-example.com结果:

665

查看递归解析返回情况,执行dig dns-example.com NS +trace +nodnssec结果:

666

(2)只配置辅助DNS

域名的所有解析由辅DNS(云解析)对外提供解析服务,可更好地保障主DNS的安全。

根域名@的NS记录配置:

只配置主DNS-1

查看权威返回情况,执行dig dns-example.com NS @vip3.alidns.com结果:

只配置主DNS-2

查看递归解析返回情况,执行dig dns-example.com NS +trace +nodnssec结果:

只配置主DNS-3

(3)主辅DNS都配置

LocalDNS根据一定的算法进行权威请求其中一组权威,由该权威进行解答返回。

根域名@的NS记录配置:

主辅都配置Dns-1

查看权威返回情况,执行dig dns-example.com NS @ns1.dns-example.com结果:

主副-2

查看递归解析返回情况,执行dig dns-example.com NS +trace +nodnssec结果:

主副-3