本文档简要介绍了 Cloud DNS 出站端点。 出站端点可以连接到转发可用区或服务器政策,以便使用专用 IP 地址将 DNS 查询从 VPC 网络直接转发到外部和本地 DNS 解析器。使用出站端点可以对出站 DNS 流量进行精细控制,并增强您解除混合云和多云 DNS 解析用例的能力。
如需了解如何创建、更新出站端点以及如何将出站端点与转发可用区 或服务器政策相关联,请参阅创建和更新出站端点。
出站端点功能
借助出站端点,您可以控制出站 DNS 流量的源 IP 地址,方法是为每个网络分配唯一的出站范围,从而实现 VPC 网络专用行为。唯一的出站范围克服了 现有固定转发代理范围的 路由限制。
当 GKE 集群使用宿主 VPC 网络查询外部目标时,会自动继承出站端点。如果宿主 VPC 网络已获授权使用配置了出站端点的标准全局 Cloud DNS 转发可用区或服务器政策,则使用 VPC DNS 解析的 Pod 会自动通过区域级出站端点路由出站查询,而无需进行集群级修改或使用可用区级转发可用区。
如需详细了解如何将现有 DNS 转发设置迁移到 出站端点,请参阅 将现有 Cloud DNS 转发设置迁移到出站端点。
出站端点架构和查询路由
出站端点是在特定 VPC 网络中创建的,并 使用该网络的 代理专用子网 作为其源 IP 地址。
将出站端点连接到转发可用区或服务器政策后,Cloud DNS 会先尝试使用现有目标排名算法通过排名最高的出站端点路由 DNS 查询。如果该端点运行状况不佳,Cloud DNS 会尝试使用排名次高的端点。系统会优先选择地理位置最近的出站端点,但不能保证一定会选择该端点。
系统会自动执行目标服务器的排名算法,该算法基于现有的转发可用区故障切换模式:延迟时间最短且错误率最低的 IP 选择。以下因素会提高转发目标的排名:
- 转发目标处理的成功 DNS 响应数量较多。
成功的 DNS 响应还包括
NXDOMAIN响应。 - 与转发目标通信的延迟时间较短。
- 与出站端点的地理距离较短。如果成功和延迟时间数据不可用,系统会优先选择最近的目标。
为了防范区域中断,您可以在运行计算工作负载的至少两个区域中配置出站端点。这种方法为 Cloud DNS 提供了一个区域故障切换目标,并保持了最短的查询延迟时间。如果您的混合连接性仅在部分区域中预配,其他计算区域中的端点仍然可以通过这些连接路由到本地解析器。
即使排名最高的端点位于其他区域,Cloud DNS 也会继续将查询路由到该端点。例如,如果区域 A 中的某个端点不可用,流量会自动路由到区域 B 中运行状况良好的端点。当区域 A 中的端点再次运行状况良好时,排名算法会检测到其性能的提升,并开始再次优先选择该端点来处理即将到来的查询。
每个项目在每个区域中最多可以有 10 个出站端点,但您可以 根据需要在 Google Cloud 控制台中申请增加配额。一个转发可用区或服务器政策最多可以连接 100 个出站端点。
将查询路由到区域级本地解析器
Cloud DNS 不保证流量会发送到与原始虚拟机位于同一区域的端点,但您可以使用地理定位路由政策将流量路由到最近的目标域名服务器。虽然 Cloud DNS 会优先将流量路由到距离原始查询和目标域名服务器最近的区域中的出站端点,但目标域名服务器的区域和出站端点区域并非紧密耦合。无论位置如何,Cloud DNS 都会选择历史上提供最短延迟时间的端点。
下面简要介绍了将查询路由到区域级本地解析器所需执行的操作:
- 创建具有地理定位政策的可用区:为您控制的 FQDN(例如
onprem-resolvers.example.com)创建新的 Cloud DNS 专用可用区,该可用区已获授权使用您的 VPC 网络。在此可用区中,为本地 DNS 服务器 IP 创建A记录,并应用地理定位路由政策。配置该政策,以便为来自该特定区域的查询返回解析器 IP。例如,为来自欧洲 区域的查询返回欧洲解析器 IP Google Cloud 。 - 使用 FQDN 作为转发目标:在转发可用区中,使用您刚刚创建的 FQDN (
onprem-resolvers.example.com) 作为目标 DNS 服务器。 - 配置出站端点:将您的区域级出站端点 (例如,一个位于美国区域,另一个位于欧洲区域)与此转发 可用区相关联。
当一个区域中的虚拟机发出查询时,系统会遵循两步路由过程:
- 端点选择:Cloud DNS 会评估与转发可用区关联的出站 端点列表,并选择最佳端点 (例如,对于来自欧洲虚拟机的查询,可能会选择欧洲的端点)。
- 目标解析:所选的出站端点会解析
目标 FQDN (
onprem-resolvers.example.com)。由于出站端点 是位于指定区域的区域级资源,因此地理定位政策 会将查询的来源标识为该区域,并返回您为该区域配置的特定 IP 地址。然后,出站端点会将原始查询转发到目标 DNS 服务器 IP。
如需了解详情,请参阅 Cloud DNS FQDN 出站 DNS 转发教程。
从单个 VPC 网络中没有本地端点的区域进行转发
A Google Cloud VPC 网络是一种全球性资源,可以 包含多个区域中的子网。如果虚拟机从您尚未配置出站端点的区域发出查询,转发仍会成功。查询将跨区域路由到排名最高的可用出站端点,该端点位于同一 VPC 网络中,并在转发可用区或服务器政策中配置。
从同一区域中具有源 IP 隔离的多个 VPC 网络进行转发
如果您需要从同一区域中的多个 VPC 网络转发查询,并且需要本地解析器为每个 VPC 网络看到不同的源 IP 地址,请按以下步骤操作:
- 在每个 VPC 网络中创建一个出站端点:如需了解详情,请参阅 创建出站端点。
- 在每个 VPC 网络中创建一个转发可用区或服务器政策: 仅授权该转发可用区或服务器政策使用该 VPC 网络,并且仅使用该 VPC 网络的出站端点。
此操作会导致每个 VPC 网络中的虚拟机通过其 VPC 网络中的出站端点发送查询。每个端点都会将查询转发到本地解析器。本地网络会看到每个 VPC 网络的代理专用子网的源 IP 地址,从而可以为每个网络的流量应用不同的配置。
跨不同 VPC 网络(中心辐射型)的统一转发
您可以配置转发可用区或服务器政策,以使用不同集中式 VPC 网络(中心)中的出站端点。中心网络与查询来源 VPC 网络(辐射)之间不需要网络连接,因为 Cloud DNS 会在内部处理查询转发。
您必须在出站端点与转发可用区或服务器政策中的转发目标之间配置网络连接。可以使用 Cloud Interconnect 或 Cloud VPN 建立连接,以访问本地解析器。可以使用 VPC 网络对等互连访问另一个 VPC 网络中的转发目标。
- 在中心 VPC 网络中创建一个出站端点。
- 在辐射 VPC 网络中创建一个转发可用区或服务器政策,并将其配置为使用中心网络的出站端点。
辐射 VPC 网络中的虚拟机通过中心 VPC 网络中的出站端点发送查询。该端点会将查询转发到本地解析器。
共享 VPC 支持
出站端点支持共享 VPC 部署。端点及其关联的代理专用子网在宿主项目中集中创建。然后,服务项目可以创建专用转发可用区或服务器政策,并将其跨项目绑定到宿主项目中的集中式出站端点(需要在宿主项目上使用 dns.outboundEndpoints.bindPrivateDNSZone 或 dns.outboundEndpoints.bindPrivateDNSPolicy)。
管理与出站端点关联的网络资源
Cloud DNS 出站端点对其底层 VPC 网络和子网强制执行严格的生命周期依赖项,以帮助保护生产 DNS 流量免受意外基础架构更改(例如删除或修改)的影响。
删除出站端点正在使用的代理专用子网或 VPC 网络
出站端点正在使用的代理专用子网或 VPC 网络受到保护,不会被删除,以防止中断。尝试删除这些资源会导致错误。如果您想删除这些资源,必须按确切的顺序执行以下步骤:
- 更新 Cloud DNS 配置:修改使用出站端点的任何转发可用区或 服务器政策,并将其从 配置中移除,使其不再使用。
- 删除出站端点:在端点不再使用后,您可以 将其删除。此操作会解除对代理专用子网的依赖。
- 删除代理专用子网:确认没有其他资源 使用代理专用子网后,将其删除。
- 删除 VPC 网络:移除所有其他 VPC 依赖项后,您可以删除 VPC 网络。
子网修改
当出站端点正在使用代理专用子网时,您无法直接修改该子网。此限制可防止您修改关键属性(例如 IP 地址范围),这有助于避免服务中断。如需修改子网,您必须遵循现有准则并先迁移到新子网。
如需修改出站端点正在使用的子网,请执行以下操作:
- 创建备份子网:在同一
VPC 网络和区域中创建一个新的代理专用子网。您必须在创建期间将此子网的角色设置为
BACKUP。 - 激活新子网:将新子网的角色更新为
ACTIVE。这样做会自动将原始子网设置为BACKUP角色,并开始从中耗尽活跃连接。 - 等待连接排空:等待连接排空过程完成。
- 删除旧子网:现在,您可以删除原始子网,前提是该子网
处于
BACKUP角色且没有活跃连接。
为本地防火墙提供专用源 IP 可预测性
如果您的本地 DNS 防火墙需要隔离到 DNS 流量的专用且可预测的源 IP 地址范围,我们建议您应用以下架构:
- 在专用出站 VPC 网络中部署:创建一个专用
VPC 网络,其中包含常规子网(用于出站端点 IP
地址)和专为
Cloud DNS 保留的区域级代理专用子网(
--purpose=REGIONAL_MANAGED_PROXY和--role=ACTIVE)。 - 隔离应用 VPC 网络 :请勿将应用 VPC 网络与此专用出站网络对等互连或路由。 Cloud DNS 会在 Google Cloud 基础架构内部路由查询,因此这些 VPC 网络之间不需要直接网络连接。
- 将专用出站 VPC 网络连接到外部转发目标:
仅在专用出站 VPC
网络与外部或本地目标域名服务器之间配置连接。使用以下方法建立此路径:
- 与现有中转 VPC 进行 VPC 网络对等互连: 这是推荐的方法,也是最具成本效益的方法。如果您的组织已有通过 Cloud Interconnect 或 Cloud VPN 连接到本地的中央中转 VPC 网络,请将专用 DNS VPC 网络与该中转中心对等互连。这种方法可以避免预配冗余混合电路,并最大限度地降低成本。
- 直接混合连接:直接在专用 DNS VPC 网络中终止的专用互连、 跨云互连或 Cloud VPN。
限制
出站端点存在以下限制:
源 IP 和子网共享仅限于同一区域中的资源: 出站端点从其连接的 VPC 网络的区域级代理专用 子网分配源 IP 范围。在标准部署中,此代理专用子网可以与其他区域级资源(例如区域级应用负载均衡器)共享。
不支持与代理专用子网直接对等互连:您无法直接与代理专用子网对等互连。必须通过标准 VPC 路由(例如 Cloud Interconnect、Cloud VPN 或 VPC 网络对等互连)建立与外部域名服务器的网络连接。
仅支持 IPv4:出站端点的源 IP 地址仅限 IPv4,并且查询只能转发到 IPv4 目标或转发可用区中解析为 IPv4 地址的 FQDN 转发目标。
不支持跨项目将出站端点绑定到网络: 不支持在连接到宿主 项目的共享 VPC 网络的服务项目中创建出站端点。出站端点必须与它们连接的 VPC 网络和子网位于同一项目中。
仅限于专用目标:出站端点仅支持转发到 专用目标,不能用作公共互联网 DNS 流量的出站代理或静态源 IP 锚点。 对公共互联网目标的查询会通过 Google 的分布式任播边缘直接解析,以最大限度地缩短延迟时间并避免 Cloud NAT 依赖项。
区域范围:出站端点是区域级资源。您必须在打算使用端点的每个区域中创建端点。
仅限一种转发机制:您的转发机制(默认
35.199.192.0/19范围或出站端点)是在转发可用区或服务器政策级别配置的。但是,您不能同时对同一可用区或政策使用这两种方法。
后续步骤
- 如需详细了解 Cloud DNS,请参阅 Cloud DNS 概览。
- 如需了解如何创建或更新出站端点,请参阅创建或更新出站端点。
- 如需了解问题排查信息,请参阅排查 Cloud DNS 出站端点问题。