Azure - 虚拟网络之间的专用链接

Posted

技术标签:

【中文标题】Azure - 虚拟网络之间的专用链接【英文标题】:Azure - Private Link Between Virtual Networks 【发布时间】:2021-03-26 17:06:24 【问题描述】:

我有两个虚拟网络:公共和私有。在公共 vnet 上有一个应用服务。在私有 vnet 上有一个 azure sql 数据库。 azure sql 数据库已阻止公共访问,并且正在公开私有链接。这两个 vnet 是对等的。专用链接的专用 dns 区域已链接两个 vnet。

当我通过 *** 连接到专用 vnet 时,我可以毫无问题地连接到专用链接。当我尝试通过应用服务连接时出现错误:

SqlException:原因:与 SQL Server 建立连接时发生特定于实例的错误。由于拒绝公共网络访问设置为是 (https://docs.microsoft.com/azure/azure-sql/database/connectivity-settings#deny-public-network-access),因此连接被拒绝。要连接到此服务器,请使用虚拟网络内部的专用终结点 (https://docs.microsoft.com/azure/sql-database/sql-database-private-endpoint-overview#how-to-set-up-private-link-for-azure-sql-database)。

似乎应用服务正在使用公共 IP 地址(因此出现错误),而不是查看私有 IP 地址(通过私有 dns 区域)。

如何设置 azure 应用服务以通过专用链接跨 vnet 进行连接?

更新:我的应用服务正在使用 Docker。我 ssh 进入它,看到 dns 名称正在解析为公共 IP 地址。我暂时将 IP 添加到 hosts 文件(私有 IP)中,但仍然出现相同的错误。

【问题讨论】:

【参考方案1】:

在您的应用服务的配置页面,您需要添加以下应用设置:

WEBSITE_DNS_SERVER 值为 168.63.129.16 WEBSITE_VNET_ROUTE_ALL 值为 1

【讨论】:

【参考方案2】:

这听起来更像是网络或 DNS 问题,而不是特定于 Azure SQL DB 上的专用链接。

由于您可以通过 SSH 进入您的 App 容器,您是否可以从那里尝试一些网络测试,例如 TRACERT,以查看它是否正确解析私有 IP 以及在虚拟网络之间是否有合适的路由。

您是否还检查了每个虚拟网络上的 NSG,以确保分配端口 1433 在它们之间传递?

【讨论】:

以上是关于Azure - 虚拟网络之间的专用链接的主要内容,如果未能解决你的问题,请参考以下文章

Azure *** 专用 IP 冗余

×××——虚拟专用网络

hyper-v中可以设置的虚拟机网络类型都有哪些

Azure APIM 定价层和虚拟网络

搭建虚拟专用网络服务器

Azure数据传输计费模式