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 - 虚拟网络之间的专用链接的主要内容,如果未能解决你的问题,请参考以下文章