Azure DNS 服务 #
什么是 Azure DNS? #
Azure DNS 是 Azure 提供的 DNS 域名解析服务,用于托管和管理 DNS 域。
text
┌─────────────────────────────────────────────────────────────┐
│ Azure DNS 概览 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 特点 │
│ ├── 高可用:全球 Anycast 网络 │
│ ├── 高性能:快速 DNS 解析 │
│ ├── 安全性:基于 RBAC 的访问控制 │
│ ├── 集成:与 Azure 服务无缝集成 │
│ └── 成本:按使用量付费 │
│ │
│ 功能 │
│ ├── 公共 DNS 区域 │
│ ├── 私有 DNS 区域 │
│ ├── DNS 记录管理 │
│ └── 别名记录 │
│ │
│ 适用场景 │
│ ├── 域名解析托管 │
│ ├── 内部 DNS 解析 │
│ ├── Azure 服务域名 │
│ └── 混合云 DNS │
│ │
└─────────────────────────────────────────────────────────────┘
DNS 区域 #
创建 DNS 区域 #
bash
# 创建资源组
az group create --name myResourceGroup --location eastus
# 创建 DNS 区域
az network dns zone create \
--resource-group myResourceGroup \
--name example.com
# 查看 DNS 区域
az network dns zone show \
--resource-group myResourceGroup \
--name example.com
委派域名 #
text
┌─────────────────────────────────────────────────────────────┐
│ 域名委派 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 步骤 1: 获取 Azure DNS 名称服务器 │
│ az network dns zone show --name example.com │
│ │
│ 步骤 2: 在域名注册商处配置名称服务器 │
│ ├── ns1-01.azure-dns.com │
│ ├── ns2-01.azure-dns.net │
│ ├── ns3-01.azure-dns.org │
│ └── ns4-01.azure-dns.info │
│ │
│ 步骤 3: 等待 DNS 传播 │
│ └── 通常需要几分钟到几小时 │
│ │
└─────────────────────────────────────────────────────────────┘
DNS 记录 #
记录类型 #
text
┌─────────────────────────────────────────────────────────────┐
│ DNS 记录类型 │
├─────────────────────────────────────────────────────────────┤
│ │
│ A 记录 将域名映射到 IPv4 地址 │
│ AAAA 记录 将域名映射到 IPv6 地址 │
│ CNAME 记录 将域名映射到另一个域名 │
│ MX 记录 邮件交换服务器 │
│ TXT 记录 文本记录,用于验证等 │
│ NS 记录 名称服务器 │
│ SOA 记录 授权起始点 │
│ SRV 记录 服务定位 │
│ PTR 记录 反向 DNS │
│ │
└─────────────────────────────────────────────────────────────┘
创建 DNS 记录 #
bash
# 创建 A 记录
az network dns record-set a add-record \
--resource-group myResourceGroup \
--zone-name example.com \
--record-set-name www \
--ipv4-address 1.2.3.4
# 创建 CNAME 记录
az network dns record-set cname set-record \
--resource-group myResourceGroup \
--zone-name example.com \
--record-set-name app \
--cname myapp.azurewebsites.net
# 创建 MX 记录
az network dns record-set mx add-record \
--resource-group myResourceGroup \
--zone-name example.com \
--record-set-name @ \
--exchange mail.example.com \
--preference 10
# 创建 TXT 记录
az network dns record-set txt add-record \
--resource-group myResourceGroup \
--zone-name example.com \
--record-set-name @ \
--value "v=spf1 include:spf.protection.outlook.com -all"
查看和管理记录 #
bash
# 列出所有记录集
az network dns record-set list \
--resource-group myResourceGroup \
--zone-name example.com
# 查看特定记录
az network dns record-set a show \
--resource-group myResourceGroup \
--zone-name example.com \
--name www
# 删除记录
az network dns record-set a remove-record \
--resource-group myResourceGroup \
--zone-name example.com \
--record-set-name www \
--ipv4-address 1.2.3.4
别名记录 #
别名记录特点 #
text
┌─────────────────────────────────────────────────────────────┐
│ 别名记录 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 特点 │
│ ├── 指向 Azure 资源 │
│ ├── 自动更新 IP 地址 │
│ ├── 支持根域名 │
│ └── 高可用 │
│ │
│ 支持的 Azure 资源 │
│ ├── 公共 IP 地址 │
│ ├── 流量管理器配置文件 │
│ ├── Azure CDN 端点 │
│ ├── 前端 IP 配置 │
│ └── Web 应用 │
│ │
│ 示例: │
│ example.com → myapp.azurewebsites.net (别名) │
│ │
└─────────────────────────────────────────────────────────────┘
创建别名记录 #
bash
# 创建指向公共 IP 的别名记录
az network dns record-set a create \
--resource-group myResourceGroup \
--zone-name example.com \
--name www \
--target-resource /subscriptions/.../publicIPAddresses/myPublicIP
# 创建指向 Web 应用的别名记录
az network dns record-set a create \
--resource-group myResourceGroup \
--zone-name example.com \
--name app \
--target-resource /subscriptions/.../sites/myWebApp
私有 DNS 区域 #
私有 DNS 概念 #
text
┌─────────────────────────────────────────────────────────────┐
│ 私有 DNS 区域 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 特点 │
│ ├── 仅在虚拟网络内解析 │
│ ├── 自动注册虚拟机 │
│ ├── 跨订阅使用 │
│ └── 内部服务发现 │
│ │
│ 适用场景 │
│ ├── 内部服务命名 │
│ ├── 虚拟机名称解析 │
│ ├── 私有端点 DNS │
│ └── 混合云 DNS │
│ │
│ 自动注册 │
│ ├── 虚拟机自动创建 DNS 记录 │
│ └── 虚拟机删除时自动清理 │
│ │
└─────────────────────────────────────────────────────────────┘
创建私有 DNS 区域 #
bash
# 创建私有 DNS 区域
az network private-dns zone create \
--resource-group myResourceGroup \
--name private.example.com
# 链接虚拟网络
az network private-dns link vnet create \
--resource-group myResourceGroup \
--zone-name private.example.com \
--name myVNetLink \
--virtual-network myVNet \
--registration-enabled true
# 创建私有 DNS 记录
az network private-dns record-set a add-record \
--resource-group myResourceGroup \
--zone-name private.example.com \
--record-set-name db \
--ipv4-address 10.0.1.10
最佳实践 #
设计建议 #
text
┌─────────────────────────────────────────────────────────────┐
│ 设计最佳实践 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 使用别名记录 │
│ └── 自动更新 IP 地址 │
│ │
│ 2. 私有 DNS 用于内部服务 │
│ └── 简化内部服务发现 │
│ │
│ 3. 启用自动注册 │
│ └── 自动管理 VM DNS 记录 │
│ │
│ 4. 使用 TTL 优化 │
│ └── 根据需求设置 TTL │
│ │
│ 5. 监控 DNS 查询 │
│ └── 使用 Azure Monitor │
│ │
└─────────────────────────────────────────────────────────────┘
下一步 #
现在你已经掌握了 DNS 服务的使用,接下来学习 安全服务 了解 Azure 安全解决方案!
最后更新:2026-03-29