从本地访问 Azure 私有终结点 第一次尝试后续尝试

问题描述

上下文

我在 Azure 中有一个 @L_404_0@,集线器 vnet 与内部部署有站点站点 VPN 连接。

我有一个想要私密访问的存储帐户。因此,我在分支 vnet 中创建了一个私有端点,并将中心 vnet 与 privatelink.blob.core.windows.net 私有 DNS 区域连接起来。

为了解析来自本地的存储帐户专用链接,我在集线器 vnet 中添加一个 Azure 防火墙,充当 DNS 代理,并将 privatelink.core.windows.net 的所有流量发送到此防火墙。

此设置汇总here

问题

当我执行 nslookup [xxx].blob.core.windows.net 时,我第一次获得存储帐户私有 IP。但是,随后,我获得了存储帐户公共 IP。

问题

这怎么可能?

我的猜测

第一次尝试

  • 客户端向本地 DNS 服务器发送对 [xxx].blob.core.windows.net 的请求
  • 本地 DNS 服务器将请求转发到中心防火墙
  • 中心防火墙将请求转发到 Azure DNS
  • Azure DNS 响应 [xxx].blob.core.windows.net[xxx].privatelink.blob.core.windows.net 的 CNAME,后者又是 blob.[yyy].store.core.windows.net 的 CNAME 并解析为私有 IP

后续尝试

  • 客户端向本地 DNS 服务器发送对 [xxx].blob.core.windows.net 的请求
  • 本地 DNS 服务器在其缓存中看到 [xxx].blob.core.windows.netblob.[yyy].store.core.windows.net 的 CNAME,并尝试解析该名称
  • 本地 DNS 服务器解析公共 IP

解决方法

为存储帐户创建专用终结点并不意味着无法从 Internet 访问该存储帐户。这仅意味着您可以从 VNet 和 Internet 访问存储帐户。你可以从下面的截图中理解它:

enter image description here

因此,如果您只想从中心 VNet 访问存储帐户,则需要将允许访问更改为选定的网络,并将选定的网络在中心 VNet 中。