你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure 门户导入和导出 DNS 区域文件
本文介绍如何使用 Azure 门户在 Azure DNS 中导入和导出 DNS 区域文件。 你还可以使用 Microsoft Azure PowerShell 导入和导出区域文件。
DNS 区域迁移简介
DNS 区域文件是一种文本文件,其中包含区域中每个 DNS 记录的信息。 它会遵循标准格式,使其适合在 DNS 系统之间传输 DNS 记录。 使用区域文件是将 DNS 区域导入 Azure DNS 的一种快捷简便的方法。 还可将区域文件从 Azure DNS 导出以与其他 DNS 系统一起使用。
Azure DNS 支持通过 Azure CLI 和 Microsoft Azure 门户导入和导出区域文件。
获取现有的 DNS 区域文件
将 DNS 区域文件导入 Azure DNS 之前,需要获取区域文件的副本。 此文件的来源取决于托管 DNS 区域的位置。
- 如果你的 DNS 区域由合作伙伴服务托管,则该服务应该为你提供下载 DNS 区域文件的方法。 合作伙伴服务包括域注册机构、专用 DNS 托管提供商或备用云提供商。
- 如果 DNS 区域是在 Windows DNS 上托管的,则区域文件的默认文件夹是 %systemroot%\system32\dns。 每个区域文件的完整路径还会显示在 DNS 控制台的“常规”选项卡上。
- 如果 DNS 区域是通过使用 BIND 托管的,则在 BIND 配置文件 named.conf 中会指定每个区域的区域文件位置。
重要
如果导入的区域文件包含指向一个专用区域中名称的 CNAME 条目,则除非同时导入这一其他区域或修改 CNAME 条目,否则 CNAME 的 Azure DNS 解析将失败。
将 DNS 区域文件导入 Azure DNS
导入区域文件时会在 Azure DNS 中新建一个区域(如果该区域尚不存在)。 如果区域已存在,则区域文件中的记录集与现有的记录集合并。
合并行为
- 默认情况下,新的记录集将与现有记录集合并。 合并的记录集内的相同记录不会重复。
- 合并记录集时,会使用以前存在的记录集的生存时间 (TTL)。
- 起始授权机构 (SOA) 参数(除
host
除外)始终取自导入的区域文件。 区域顶点处的名称服务器记录集也始终使用从导入的区域文件中获取的 TTL。 - 导入的 CNAME 记录将替换现有的同名 CNAME 记录。
- CNAME 记录与另一同名但不同类型的记录发生冲突时,将使用现有记录。
有关导入的其他信息
下面几点提供有关区域导入过程的其他详细信息。
$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 提供的值,因为它需要引用 Azure DNS 提供的主名称服务器。 - Azure DNS 在创建区域时,也会在区域顶点处自动创建名称服务器记录集。 仅导入此记录集的 TTL。 这些记录包含由 Azure DNS 提供的名称服务器名称。 导入的区域文件中包含的值不会覆盖记录数据。
- Azure DNS 仅支持单字符串的 TXT 记录。 多字符串 TXT 记录会被连接在一起并截断为 255 个字符。
- 要导入的区域文件包含的行数不得超过 10,000 条,记录集数量不能超过 3,000 个。
导入区域文件
获取要导入的区域的区域文件的副本。
此示例使用以下小型区域文件和资源记录:
$ORIGIN adatum.com. $TTL 86400 @ IN SOA dns1.adatum.com. hostmaster.adatum.com. ( 2023091201 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day IN NS dns1.adatum.com. IN NS dns2.adatum.com. IN MX 10 mail.adatum.com. IN MX 20 mail2.adatum.com. dns1 IN A 203.0.113.2 dns2 IN A 203.0.113.1 server1 IN A 192.0.2.2 server2 IN A 192.0.2.3 ftp IN A 198.51.100.1 IN A 198.51.100.2 mail IN CNAME server1 mail2 IN CNAME server2 www IN CNAME server1
使用的名称:
- 源区域名称:adatum.com
- 目标区域名称:adatum.com
- 区域文件名:adatum.com.txt
- 资源组:myresourcegroup
打开“DNS 区域”概述页面,然后选择“创建”。
在“创建 DNS 区域” 页上,键入或选择以下值:
- 资源组:选择现有资源组,或“新建”,输入“myresourcegroup”,然后选择“确定”。 资源组名称在 Azure 订阅中必须唯一。
- 名称:在此示例中键入“adatum.com”。 DNS 区域名称可以是尚未在 Azure DNS 服务器上配置的任何值。 实际值可以是从域名注册机构购买的域。
选择“查看创建”,然后选择“创建”。
部署完成后,选择“转到资源”。 与 Azure 公共 DNS 兼容的 NS 和 SOA 记录会自动添加到该区域。 请参阅以下示例:
选择“导入”,然后在“导入 DNS 区域”页上选择“浏览”。
选择 adatum.com.txt 文件,然后选择“打开”。 区域文件显示在 DNS 区域编辑器中。 请参阅以下示例:
在继续执行下一步之前,先编辑区域数据值。
注意
如果区域文件中存在旧的 NS 记录,则区域导入期间会显示非阻止错误。 不会覆盖 Azure NS 记录。 在导入之前,最好是将 NS 记录移除。
如果要重置区域序列号,请先从 SOA 中删除旧序列号,然后再导入。选择“查看创建”,并在 DNS 区域差异查看器中查看信息。 请参阅以下示例:
选择创建。 系统会显示一条提示,提醒在现有区域被覆盖之前将其保存到本地设备。 选择“下载并继续”。 导入区域数据并显示区域。
选择“记录集”,查看新导入的资源记录。 请参阅以下示例:
导出区域文件
打开“DNS 区域”概述页面,然后选择要导出的区域。 例如 adatum.com。 请参阅以下示例:
选择“导出”。 该文件会作为文本文件下载到默认的下载目录,名为“AzurePublicDnsZone-adatum.com
number
.txt”,其中number
是一个自动生成的索引编号。打开该文件以查看内容。 请参阅以下示例:
; Exported zone file from Azure DNS ; Zone name: adatum.com ; Date and time (UTC): Tue, 12 Sep 2023 21:33:17 GMT $TTL 86400 $ORIGIN adatum.com ; SOA Record @ 3600 IN SOA SOA dns1.adatum.com. ( 0 ;serial 21600 ;refresh 3600 ;retry 604800 ;expire 86400 ;minimum ttl ) ; NS Records @ 172800 IN NS ns1-36.azure-dns.com. @ 172800 IN NS ns2-36.azure-dns.net. @ 172800 IN NS ns3-36.azure-dns.org. @ 172800 IN NS ns4-36.azure-dns.info. ; MX Records @ 3600 IN MX 10 mail.adatum.com. @ 3600 IN MX 20 mail2.adatum.com. ; A Records dns1 3600 IN A 203.0.113.2 dns2 3600 IN A 203.0.113.1 ftp 3600 IN A 198.51.100.1 ftp 3600 IN A 198.51.100.2 server1 3600 IN A 192.0.2.2 server2 3600 IN A 192.0.2.3 ; AAAA Records ; CNAME Records mail 3600 IN CNAME server1 mail2 3600 IN CNAME server2 www 3600 IN CNAME server1 ; PTR Records ; TXT Records ; SRV Records ; SPF Records ; CAA Records ; DS Records ; Azure Alias Records
后续步骤
- 了解如何在 DNS 区域中管理记录集和记录。
- 了解如何将域委派给 Azure DNS。