4. DNS在租户拓扑中的角色:内部DNS、外部DNS、PrivateZone与PublicZone
在租户拓扑中,DNS不仅是简单的域名解析工具,更是流量调度、安全隔离与故障隔离的核心基础设施。理解内部DNS、外部DNS、PrivateZone与PublicZone的职责边界,是诊断DNS延迟与故障的前提。
4.1 内部DNS与外部DNS的职责边界
租户网络通常划分为内部服务网络与面向公网的边缘网络,DNS系统也随之分为内部DNS与外部DNS两个逻辑平面。
| 维度 | 内部DNS | 外部DNS |
|---|---|---|
| 服务对象 | 租户VPC内ECS、容器Pod、内部微服务 | 公网用户、第三方API调用方、CDN边缘节点 |
| 解析范围 | 私有域名(如 db.internal.tenant.local) |
公网域名(如 api.tenant.com) |
| 延迟敏感度 | 极高(微服务调用链中DNS延迟直接影响RPC成功率) | 高(影响用户首屏加载与API响应) |
| 缓存策略 | 短TTL(5~30秒),支持动态服务发现 | 长TTL(60~600秒),兼顾稳定与缓存命中 |
| 故障影响面 | 内部服务间调用中断、服务发现失败 | 用户无法访问、业务入口瘫痪 |
实战要点:内部DNS通常部署在租户VPC内或通过PrivateLink接入,外部DNS则托管在云厂商的DNS服务或自建BIND集群中。两者必须物理或逻辑隔离,避免内部域名泄露到公网。
4.2 PrivateZone与PublicZone的核心差异
PrivateZone(私有域)与PublicZone(公有域)是云环境中的两种DNS区域类型,它们的解析范围、访问控制与路由逻辑完全不同。
| 特性 | PrivateZone | PublicZone |
|---|---|---|
| 可见性 | 仅关联的VPC内可见 | 全球公网可见 |
| 解析来源 | VPC内DNS服务器(如AWS Route53 Resolver、阿里云PrivateZone) | 公共DNS递归服务器(如8.8.8.8、114.114.114.114) |
| 记录类型 | A/AAAA/CNAME + 私有IP映射 | A/AAAA/CNAME/MX/TXT + 公网IP映射 |
| 延迟特征 | 低延迟(VPC内递归,无公网跳转) | 受公网链路、递归节点位置影响 |
| 安全控制 | 基于VPC ACL、RAM策略 | 基于DNS SEC、Rate Limit、WAF前置 |
常见陷阱:同一域名在PrivateZone与PublicZone中同时存在时,VPC内解析优先命中PrivateZone。若PrivateZone记录配置错误(如指向已销毁的IP),会导致内部服务完全不可达,而外部用户访问正常——这种“内外不一致”是延迟排查中最隐蔽的问题之一。
4.3 租户拓扑中的DNS流量路径
下图展示了典型租户拓扑中,内部DNS与外部DNS的解析路径,以及PrivateZone与PublicZone的流量走向。
4.4 延迟视角下的角色关键点
- 内部DNS延迟:主要受VPC内DNS服务器负载、缓存命中率、后端服务注册中心响应速度影响。典型延迟应 < 5ms。
- 外部DNS延迟:受递归节点地理位置、公网链路质量、权威服务器响应时间影响。典型延迟 10~100ms。
- PrivateZone延迟优势:解析请求不经过公网,且支持VPC内就近递归,延迟通常比PublicZone低一个数量级。
- PublicZone延迟风险:若权威节点部署在单一地域,跨洲用户解析延迟会显著增加,需配合GeoDNS或Anycast。
延迟处置黄金法则:内部服务调用必须使用PrivateZone + 内部DNS,禁止将内部域名暴露到PublicZone;外部用户流量必须经过外部DNS + PublicZone,但应在边缘节点做DNS缓存或HTTPDNS降级,减少递归链路。
4.5 典型故障场景:PrivateZone与PublicZone冲突
某租户将内部数据库域名 db.internal.tenant.com 同时配置在PrivateZone(指向10.0.1.100)和PublicZone(指向203.0.113.50)。VPC内ECS解析时命中PrivateZone,延迟2ms;但运维人员从堡垒机(位于另一VPC,未关联该PrivateZone)解析时命中PublicZone,延迟45ms且指向公网IP。最终导致备份脚本超时失败。
| 解析位置 | 命中Zone | 解析结果 | 延迟 | 是否可达 |
|---|---|---|---|---|
| VPC内ECS | PrivateZone | 10.0.1.100 | 2ms | 是 |
| 未关联VPC的堡垒机 | PublicZone | 203.0.113.50 | 45ms | 否(公网IP未开放) |
处置建议:内部域名仅在PrivateZone中声明,PublicZone中不创建同名记录;若必须共存,使用不同的子域名层级(如
internal.db.tenant.com 与 api.tenant.com)彻底隔离。