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