一、DNS区域迁移简介
DNS区域文件是一种文本文件,其中包含区域中每个域名系统(DNS)记录的信息,这种文件遵循标准格式,使其适合在DNS系统之间传输DNS记录,使用区域文件是将DNS区域导入Azure DNS的一种快捷简便的方法,还可以将区域文件从Azure DNS导出以与其他DNS系统一起使用。
二、获取现有的DNS区域文件
将DNS区域文件导入Azure DNS之前,需要获取区域文件的副本,此文件的来源取决于托管DNS区域的位置:
1、合作伙伴服务:如果DNS区域由合作伙伴服务托管,则该服务应该提供下载DNS区域文件的方法,合作伙伴服务包括域注册机构、专用DNS托管提供商或备用云提供商。
2、Windows DNS:如果DNS区域是在Windows DNS上托管的,则区域文件的默认文件夹是%systemroot%system32dns,每个区域文件的完整路径还会显示在DNS控制台的“常规”选项卡上。
3、BIND:如果DNS区域是通过使用BIND托管的,则在BIND配置文件named.conf中会指定每个区域的区域文件位置。
重要提示:如果导入的区域文件包含指向另一个专用区域中名称的CNAME条目,则除非同时导入这一其他区域或修改CNAME条目,否则CNAME的Azure DNS解析将失败。
三、将DNS区域文件导入Azure DNS
导入区域文件时会在Azure DNS中新建一个区域(如果该区域尚不存在),如果区域已存在,则区域文件中的记录集与现有的记录集合并。
1. 合并行为
默认情况下,新的记录集将与现有记录集合并,合并的记录集内的相同记录不会重复。
合并记录集时,会使用以前存在的记录集的生存时间(TTL)。
起始授权机构(SOA)参数(除host外)始终取自导入的区域文件,区域顶点处的名称服务器记录集也始终使用从导入的区域文件中获取的TTL。
导入的CNAME记录将替换现有的同名CNAME记录,CNAME记录与另一同名但不同类型的记录发生冲突时,将使用现有记录。
2. 有关导入的其他信息
$TTL指令是可选的并受支持,如未提供$TTL指令,会导入没有显式TTL的记录,且其默认TTL设置为3600秒,当同一个记录集的两个记录指定不同的TTL时,会使用较低的值。
$ORIGIN指令是可选的并受支持,如果未设置$ORIGIN,则使用的默认值是命令行中指定的区域名称,包括结尾句点(.)。
$INCLUDE和$GENERATE指令不受支持。
支持以下记录类型:A、AAAA、CAA、CNAME、MX、NS、SOA、SRV和TXT。
Azure DNS会在创建区域时自动创建SOA记录,导入区域文件时,除了host参数,所有的SOA参数都取自区域文件。
Azure DNS在创建区域时也会在区域顶点处自动创建名称服务器记录集,仅导入此记录集的TTL。
在公开预览版期间,Azure DNS仅支持单字符串的TXT记录,多字符串TXT记录会被连接在一起并截断为255个字符。
3. CLI格式和值
用于导入DNS区域的Azure CLI命令格式如下:
az network dns zone import g <resource group> n <zone name> f <zone file name>
值:
<resource group>
:Azure DNS中区域的资源组名称。
<zone name>
:区域的名称。
<zone file name>
:要导入的区域文件的路径/名称。
如果资源组中尚不存在具有此名称的区域,则会创建一个,对于现有区域,导入的记录集会与现有的记录集合并。
导入contoso.com的区域文件到资源组myresourcegroup中的新DNS区域,可以运行以下命令:
az network dns zone import g myresourcegroup n contoso.com f contoso.com.txt
此命令将加载并分析区域文件,并在Azure DNS服务上执行一系列操作以创建区域和区域中的所有记录集,由于记录集是以序列方式创建的,因此导入大型区域文件可能需要几分钟。
4. 验证该区域
导入文件后,可以使用以下方法之一来验证DNS区域:
列出记录:使用Azure CLI命令az network dns recordset list g myresourcegroup z contoso.com
。
使用nslookup
验证记录的名称解析,如果尚未委派区域,则需要显式指定正确的Azure DNS名称服务器。
四、从Azure DNS导出DNS区域文件
用于导出DNS区域的Azure CLI命令格式如下:
az network privatedns zone export g <resource group> n <zone name> f <zone file name>
值:
<resource group>
:Azure DNS中区域的资源组名称。
<zone name>
:区域的名称。
<zone file name>
:要导出的区域文件的路径/名称。
五、相关问题与解答
Q1: 如何确保DNS解析记录在导入过程中不丢失?
A1: 确保在导入过程中不丢失DNS解析记录的最佳方法是在开始前备份现有的DNS区域文件,并在导入后仔细验证所有记录是否成功导入,建议在低峰时段进行导入操作,以减少对业务的影响。
Q2: 如果导入的DNS区域文件包含错误记录怎么办?
A2: 如果导入的DNS区域文件包含错误记录,可以使用Azure CLI或其他DNS管理工具手动编辑和修正这些记录,确保在修正错误记录后再次验证DNS解析是否正常。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/66934.html