AWS Route53公域托管区域名服务器与NS记录末尾句号差异疑问
AWS Route53 NS记录末尾句号差异解答
差异产生原因
DNS协议规范中,末尾带.的域名为完全合格域名(FQDN),末尾的.代表DNS根域,标识域名解析到根域即终止,不会再拼接任何上级域后缀。Route53的两处展示差异只是控制台的不同场景适配:
- 记录列表中的NS记录是标准DNS存储值,严格遵循DNS协议规范,因此展示完整FQDN,末尾的
.高亮是为了明确标识这是根域符号,不是输入失误 - 托管区详情页展示的域名服务器是为了方便用户到域名注册商侧配置委派使用,绝大多数域名注册商的后台不要求填写末尾根
.,部分注册商甚至会拦截带.的输入,因此AWS做了展示优化,默认省略末尾.,降低用户配置出错概率
功能层面无差异
带或不带末尾.的域名服务器实际指向完全相同的节点,解析效果没有任何区别:
- 你在注册商侧填写不带
.的域名服务器,注册商系统会自动补全为带.的FQDN存储生效 - Terraform拉取托管区属性返回的NS列表不带
.,也是为了适配多数云资源配置场景的输入规则,不需要额外做格式处理
注意事项
- 手动在Route53控制台新增/修改NS、SOA等类型的记录时,必须给记录值末尾加
.,否则控制台会判定你输入的是非完整域名,自动将当前托管区的域名拼接在你输入的内容后,导致配置错误 - 用Terraform手动定义
aws_route53_record类型的NS记录时,必须给每个NS地址末尾加.,避免出现非预期的域名拼接问题 - 当前Terraform的
aws_route53_zone数据源仅支持拉取托管区属性中的NS列表,无法直接拉取记录列表中的NS记录值,如果你需要使用标准FQDN格式的NS地址,直接给返回的每个NS地址末尾拼接.即可,不会有兼容性问题
内容的提问来源于stack exchange,提问作者codecorrect
相关产品推荐
相关产品推荐

