VPC私有域名解析DNS
背景
在云计算与网络架构日益复杂的今天,VPC 作为隔离的网络环境,为业务提供了安全、可控的运行空间。而 VPC私有域名解析DNS作为 VPC 网络中的 “导航系统”,承担着将域名转换为 IP 地址的关键任务,是保障私有网络内资源通信、服务发现与安全访问的核心组件。
VPC私有域名解析DNS 是面向企业内网场景(主要为 VPC 内网场景)提供的完整 DNS 解析服务,涵盖私有域管理、递归解析等功能模块。
核心定义
VPC私有域名解析DNS 是专为虚拟私有云环境设计的域名解析服务,它运行在 VPC 内部,专注于处理私有网络内的域名解析请求。与公共 DNS(如互联网通用的 DNS 服务)不同,VPC DNS 仅对当前 VPC 内的资源可见,能够将私有域名(如 虚机或容器实例名称、数据库域名、负载均衡器域名等)解析为对应的私有 IP 地址,确保网络通信在隔离的私有环境中高效、安全地进行。
简单来说,当 VPC 内的云服务器需要访问同网络中的数据库时,无需记忆复杂的 IP 地址,只需通过数据库的私有域名发起请求,VPC DNS 会自动完成域名到 IP 的转换,让资源间的通信像访问 “www.xxx.com” 一样简单直观。
功能
私有域管理
用户可以创建多个需要使用的私有域名。并可以为添加的私有域名中添加解析记录。
将私有域名关联一个或多个需要配置的 VPC,并将私有域名映射到 IP 资源地址。
前期支持A记录,后期可增加对其他类型记录的支持:AAAA记录、CNAME记录、PTR记录、MX记录、SRV记录等。
递归解析
私有域解析服务的递归解析能力,主要为企业内网 VPC 环境中的各类终端提供公网的域名递归解析服务。
默认 DNS 为:169.254.169.1,若不使用默认 DNS,将无法使用私有域解析提供的服务。
与公共 DNS 的协同工作
VPC私有域名解析DNS并非完全独立于公共 DNS,当 VPC 内的资源需要访问互联网公共域名(如 “www.google.com”)时,VPC DNS 会作为中间代理,先尝试本地缓存解析,若未命中则自动转发请求至公共 DNS 服务器,再将解析结果返回给请求资源,兼顾私有网络隔离性与互联网访问需求。
核心优势
-
提升网络安全性:私有域名隔离与访问控制,降低资源暴露风险;
-
增强架构灵活性:支持自定义域名与动态解析,适配业务动态变化;
-
简化运维管理:替代 IP 地址依赖,降低配置复杂度与人为错误;
-
保障服务可用性:高冗余架构与故障切换,确保解析服务不中断;
-
兼容混合云场景:无缝衔接私有网络与公共网络,支持复杂架构设计
方案设计
总体方案如上图
-
奥创提供多集群的解析记录管理和查询功能
-
每个集群或机房部署FNAT网关和VPC DNS服务提供本地DNS服务
设计要点:
-
复用了metadata网段(169.254.169.0/24)作为DNS server的网段,没有占用额外的IP资源
-
VPC DNS不依赖DB来存储解析记录,尽量做到服务轻量化
-
FNAT网关承载DNS流量,不需要额外部署特定网络设备
数据流
总体数据流方案是借用FANT网关进行DNS流量的转发,具体有以下几点:
-
使用169.254.169.1作为VPC DNS服务的IP,在vpc创建subnet时进行dns_nameservers属性配置
-
创建虚机或容器pod,通过DHCP过程进行DNS server IP的配置(/etc/resolv.conf)
-
虚机发起DNS解析,请求发给169.254.169.1,经由FANT网关转发给VPC DNS服务处理
-
VPC DNS服务查询本地内存数据,若miss,则向上游Ultron DNS服务发起递归查询。若仍miss,则向上游IDC DNS服务发起查询。封装查询结果进行返回
-
总体数据流为:虚机或容器pod -> FANT网关 -> VPC DNS服务 -> FANT网关 -> 虚机或容器pod
控制流
创建subnet
-
用户在HULK平台创建subnet
-
HULK调用ultron,创建subnet
-
ultron调用neutron创建subnet资源,设置dns_nameservers属性值为169.254.169.1
-
ultron调用FNAT网关创建一个LB并绑定RS,VIP:vport为169.254.169.1:53,RS:port为169.254.169.1:53(VPC DNS服务的地址)。FNAT网关根据这些信息在网关下发转发规则
添加域名解析记录
-
用户在HULK平台创建域名解析记录
-
HULK调用ultron,创建域名解析记录
-
ultron调用VPC DNS服务添加域名解析记录,VPC DNS服务将数据保存在本地内存中
应用场景
内网访问劫持
用户可以通过VPC DNS 创建私有域名并关联 VPC ,对私有域添加解析记录并设置资源映射实现内网劫持能力。当在 VPC 访问该私有域时,返回数据即为事先已设置好的映射资源。
云服务资源管理
可以使用私有域名记录来管理 VPC 中的虚机主机名、LB、pod 等自有云资源。例如,可以根据云服务器的地域、业务场景、服务器信息等规划云服务器主机名,并使用主机名信息为云服务器添加私有域名与解析,而这些私有域名在 VPC 之外将无法访问,便于直观管理云服务资源。
云服务资源互访
可以通过在云服务器上自建 DNS 并将 DNS Server 转发至 VPC DNS,即可实现自有云服务与 VPC DNS 数据互访。
云服务资源切换
通常情况下,为了应对高并发业务的稳定运行,会将业务拆分到多个服务器上去分担压力,并通过建立同一个 VPC 的方式,让云服务器之间通过私网 IP 实现互访。当某个云服务器发生切换时,私网 IP 也会随之变化,需要重新修改业务代码,并重新发布变更,维护极其不便。 在这种情况下,可以通过私有域服务为 VPC 内的每个云服务器创建一个私有内网域名,并添加解析到对应私网 IP。云服务器之间可以通过内网域名进行互访,当某个云服务器发生切换时,无需修改云服务器的代码,只需修改对应域名的解析记录即可。
后续工作
安全隔离与访问控制
VPC DNS 的解析范围严格限定在当前 VPC 内,私有域名不会被公共 DNS 服务器识别,有效避免了外部网络对私有资源的探测。同时,结合 VPC 的网络 ACL、安全组等配置,可进一步限制域名解析的访问权限,确保只有授权资源能通过域名通信。
对于我们来说,可以在VPC内对特定的域名进行解析拦截,来控制用户的访问。
高可用性与冗余设计
其他厂商的 VPC DNS 服务均采用分布式架构和多节点部署,具备高可用性和故障自动切换能力。即使部分 DNS 节点出现故障,系统也能快速切换到备用节点,保障解析服务的连续性,避免因 DNS 单点故障导致的网络通信中断。
对于我们来说,考虑部署多个VPC DNS服务,作为VIP 169.254.169.1下的RS,依靠VIP探活机制自动发现和剔除异常的RS。
总结
VPC私有域名解析DNS为VPC内的实例提供了递归DNS解析的功能,可以应用于内网访问劫持、云服务资源管理、互访、切换等场景。
VPC私有域名解析DNS作为虚拟私有云的 “神经中枢”,通过高效的域名解析能力,为私有网络内的资源通信、服务发现与安全访问提供了坚实支撑。无论是简化微服务架构的服务调用,还是保障混合云环境的跨域访问,亦或是提升敏感业务的通信安全性,VPC DNS 都发挥着不可替代的作用。在实际应用中,需结合业务架构需求合理配置私有域名规则、访问权限与冗余策略,充分发挥其在网络管理中的核心价值,为业务稳定运行保驾护航。