我尝试将子网 sub_A 中的应用程序连接到子网 sub_B 中具有专用终结点的 postgresql 数据库,但仍然失败。
我做了很多尝试,我能够从 sub_B 中的虚拟机连接到数据库,因此我预计问题来自 sub_A,但这里是我在数据库服务器上配置 sub_A 和 sub_B 的 vmnet 规则的配置.
我使用服务端点“Microsoft.Sql”配置两个子网
当我尝试通过专用端点连接数据库时,我仍然收到错误
错误:致命:不允许来自 Azure 虚拟网络的客户端使用专用 IP 访问服务器。请确保您的虚拟网络配置正确。
你能帮助我并告诉我我错过了什么吗?
最佳答案
在这种情况下,请确保 DNS 记录设置正确。
如果您有一个应用程序托管在应用服务上,您可以 enable VNet Integration并且您需要添加以下应用设置才能使用 Azure DNS 专用区域。
WEBSITE_DNS_SERVER with value 168.63.129.16
WEBSITE_VNET_ROUTE_ALL with value 1
如果您有一个应用程序托管在一个或多个 Azure 虚拟机上,您可以将子网 A 与子网 B 中虚拟机的 DNS 记录进行比较。从子网 A 中,您需要确保可以从 PostgreSQL 数据库解析为私有(private) IP 地址完全合格域名。子网 A 和子网 B 之间不应进行网络封锁。
例如,从 SubnetA,验证专用链接是否指向 PostgreSQL 资源并且正在进行必要的解析。
C:\Users\azureadmin>nslookup demoprivatelinkserver.postgres.database.azure.com.
Server: UnKnown
Address: 168.63.129.16
Non-authoritative answer:
Name: demoprivatelinkserver.postgres.database.azure.com
Address: 10.1.3.4
欲了解更多信息,您可以阅读this blog或者如果您需要进一步帮助,请告诉我。
关于子网之间的 Azure postgres 数据库专用连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65629049/