当前位置: 首页 > news >正文

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 服务器,再将解析结果返回给请求资源,兼顾私有网络隔离性与互联网访问需求。

核心优势​

  1. 提升网络安全性:私有域名隔离与访问控制,降低资源暴露风险;​

  2. 增强架构灵活性:支持自定义域名与动态解析,适配业务动态变化;​

  3. 简化运维管理:替代 IP 地址依赖,降低配置复杂度与人为错误;​

  4. 保障服务可用性:高冗余架构与故障切换,确保解析服务不中断;​

  5. 兼容混合云场景:无缝衔接私有网络与公共网络,支持复杂架构设计

方案设计

总体方案如上图

  1. 奥创提供多集群的解析记录管理和查询功能

  2. 每个集群或机房部署FNAT网关和VPC DNS服务提供本地DNS服务

设计要点:

  1. 复用了metadata网段(169.254.169.0/24)作为DNS server的网段,没有占用额外的IP资源

  2. VPC DNS不依赖DB来存储解析记录,尽量做到服务轻量化

  3. FNAT网关承载DNS流量,不需要额外部署特定网络设备

    数据流

总体数据流方案是借用FANT网关进行DNS流量的转发,具体有以下几点:

  1. 使用169.254.169.1作为VPC DNS服务的IP,在vpc创建subnet时进行dns_nameservers属性配置

  2. 创建虚机或容器pod,通过DHCP过程进行DNS server IP的配置(/etc/resolv.conf)

  3. 虚机发起DNS解析,请求发给169.254.169.1,经由FANT网关转发给VPC DNS服务处理

  4. VPC DNS服务查询本地内存数据,若miss,则向上游Ultron DNS服务发起递归查询。若仍miss,则向上游IDC DNS服务发起查询。封装查询结果进行返回

  5. 总体数据流为:虚机或容器pod -> FANT网关 -> VPC DNS服务 -> FANT网关 -> 虚机或容器pod

控制流

创建subnet

  1. 用户在HULK平台创建subnet

  2. HULK调用ultron,创建subnet

  3. ultron调用neutron创建subnet资源,设置dns_nameservers属性值为169.254.169.1

  4. ultron调用FNAT网关创建一个LB并绑定RS,VIP:vport为169.254.169.1:53,RS:port为169.254.169.1:53(VPC DNS服务的地址)。FNAT网关根据这些信息在网关下发转发规则

添加域名解析记录

  1. 用户在HULK平台创建域名解析记录

  2. HULK调用ultron,创建域名解析记录

  3. 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 都发挥着不可替代的作用。在实际应用中,需结合业务架构需求合理配置私有域名规则、访问权限与冗余策略,充分发挥其在网络管理中的核心价值,为业务稳定运行保驾护航。

http://www.dtcms.com/a/355377.html

相关文章:

  • 使用 Action 自动部署 VuePress 到 GitHub Pages
  • GRE隧道IPv6过渡技术
  • 数制与编码
  • 并发编程——04 深入理解CASAtomic原子操作类详解
  • Qt 中日志级别
  • JS中的String总结
  • Linux 环境源码安装 Docker
  • 影石insta360 DevOps工程师一面记录
  • 学习嵌入式之驱动——I2C子系统
  • 搭建一个Spring cloud 非阻塞式微服务架构
  • 任天堂NDS中文游戏ROM精选毕业整合包整理分享! +NDS模拟器
  • 使用Docker搭建StackEdit在线MarkDown编辑器
  • 如何通过docker进行本地部署?
  • 企业内部机密视频安全保护|如何防止企业内部机密视频泄露?
  • (附源码)基于Spring Boot公务员考试信息管理系统设计与实现
  • GitLab 配置 Pipeline 的过程
  • linux 网络:协议及Wireshark抓包工具的使用
  • Elasticsearch冷热架构:性能与成本完美平衡
  • 《深入浅出 Node.js》分享精简大纲
  • linu 网络 :TCP粘包及UDP
  • 软件设计师备考-(五)计算机网络
  • 客户端是否都需要主动发送`FindService`报文来寻找服务
  • FPGA开发技能(12)matlab图片处理助力FPGA开发
  • 【温室气体数据集】GlobalView 数据概述
  • Kotlin 协程之Channel 的高阶应用
  • RAGFlow
  • plantsimulation知识点 一条轨道上多台RGV如何引用
  • 【Big Data】Presto db 一种语言、一个接口搭建可靠、高效数据湖仓
  • NineData 最新发布 SQL Server 双向实时同步功能
  • 手机上访问你电脑上的前端项目