禁用 DNSSEC 签名
在 Route 53 中禁用 DNSSEC 签名的步骤有所不同,具体取决于托管区域所属的信任链。
例如,您的托管区域可能具有包含 Delegation Signer (DS) 记录的父区域,作为信任链的一部分。托管区域本身也可能是启用 DNSSEC 签名的子区域的父区域,这是信任链的另一部分。在执行禁用 DNSSEC 签名的步骤之前,请调查并确定托管区域的完整信任链。
在禁用签名时,必须仔细撤消托管区域启用 DNSSEC 签名的信任链。要从信任链中删除托管区域,请删除包含此托管区域的信任链的所有 DS 记录。这意味着您必须按顺序执行以下操作:
-
删除此托管区域对于属于信任链一部分的子区域具有的所有 DS 记录。
-
从父区域删除 DS 记录。如果您具有信任岛(父区域中没有 DS 记录,此区域中的子区域没有 DS 记录),则可以跳过此步骤。
如果无法删除 DS 记录,为了从信任链中删除该区域,请从父区域中删除 NS 记录。有关更多信息,请参阅 为域添加或更改名称服务器和粘附记录。
通过以下递增步骤,您可以监控各个步骤的有效性,以避免区域中的 DNS 可用性问题。
禁用 DNSSEC 签名
-
监控区域可用性。
您可以监控区域以了解域名的可用性。这可以帮助您在启用 DNSSEC 签名后解决可能需要回滚的任何问题。您可以使用查询日志记录来监控流量最多的域名。有关设置查询日志记录的更多信息,请参阅 监控 Amazon Route 53。
可以通过 Shell 脚本或付费服务完成监控。但是,其不应作为确定是否需要回滚的唯一信号。由于域名不可用,您也可能会从客户处获得反馈。
-
查找当前 DS TTL。
您可以通过运行以下 Unix 命令找到 DS TTL:
dig -t DS example.com
example.com
-
找到最大 NS TTL。
有 2 组 NS 记录与您的区域相关:
-
委托 NS 记录 — 这是由父区域持有的您的区域的 NS 记录。您可以通过运行以下 Unix 命令找到此记录:
首先找到父区域的 NS(如果您的区域为 example.com,则父区域为 com):
dig -t NS com
选择一个 NS 记录,然后运行以下命令:
dig @
one of the NS records of your parent zone
-t NS example.com例如:
dig @b.gtld-servers.net. -t NS example.com
-
区内 NS 记录 — 这是您的区域中的 NS 记录。您可以通过运行以下 Unix 命令找到此记录:
dig @
one of the NS records of your zone
-t NS example.com例如:
dig @ns-0000.awsdns-00.co.uk. -t NS example.com
请注意两个区域的最大 TTL。
-
-
从父区域删除 DS 记录。
请与父区域拥有者联系以删除 DS 记录。
回滚:重新插入 DS 记录,确认 DS 插入有效,并等待最大 NS(而不是 DS TTL),然后所有解析程序将再次开始验证。
-
确认删除 DS 是否有效。
如果父区域位于 Route 53 DNS 服务上,父区域拥有者可以通过 GetChange API 确认完整传播。
否则,您可以定期检查 DS 记录的父区域,然后再等 10 分钟,以提高完整传播 DS 记录删除的可能性。请注意,一些注册商计划了 DS 删除,例如,每天一次。
-
等待 DS TTL。
等待直到所有解析程序缓存中的 DS 记录过期。
-
禁用 DNSSEC 签名并停用密钥签名密钥 (KSK)。
回滚:调用 ActivateKeySigningKey 和 EnableHostedZoneDNSSEC API。
例如:
aws --region us-east-1 route53 activate-key-signing-key \ --hosted-zone-id $hostedzone_id --name $ksk_name aws --region us-east-1 route53 enable-hosted-zone-dnssec \ --hosted-zone-id $hostedzone_id
-
确认禁用区域签名是否有效。
使用
EnableHostedZoneDNSSEC()
调用中的 ID 运行 GetChange,确保所有 Route 53 DNS 服务器已停止签名响应(状态 =INSYNC
)。 -
注意名称解析。
应注意解析程序验证您的区域时没有导致问题。还要考虑 1-2 周客户向您报告问题所需的时间。
-
(可选)清除。
如果不重新启用签名,可以通过 DeleteKeySigningKey 清除 KSK,然后删除相应的客户托管式密钥以节省成本。