Azure - частный канал между виртуальными сетями

У меня две виртуальные сети: публичная и частная. В общедоступном vnet есть служба приложений. В частном vnet есть база данных azure sql. База данных azure sql заблокирована для общего доступа и предоставляет частную ссылку. Наблюдаются два vnets. В частной зоне DNS для частной ссылки связаны оба виртуальных сетей.

Когда я подключаюсь к частному vnet через VPN, я могу без проблем подключиться к частному каналу. Когда я пытаюсь подключиться через службу приложения, я получаю сообщение об ошибке:

SqlException: Reason: Произошла ошибка экземпляра при установке соединения с 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 для подключения через частную ссылку через виртуальные сети?

Обновление: моя служба приложений использует Docker. Я подключился к нему и увидел, что имя DNS разрешается в общедоступный IP-адрес. Я временно добавил IP-адрес в файл hosts (частный IP-адрес), но все равно получаю ту же ошибку.


person user472292    schedule 16.12.2020    source источник


Ответы (2)


Это больше похоже на проблему с сетью или DNS, чем на частную ссылку в базе данных SQL Azure.

Поскольку вы можете использовать SSH в своем контейнере приложения, можете ли вы попробовать некоторые сетевые тесты оттуда, такие как TRACERT, чтобы увидеть, правильно ли он разрешает частный IP-адрес, а также имеет ли подходящий маршрут между виртуальными сетями.

Проверяли ли вы также группы безопасности сети в каждой виртуальной сети, чтобы убедиться, что порт 1433 разрешен для передачи между ними?

person Martin Cairney    schedule 16.12.2020

На странице конфигурации вашего сервиса приложения вам необходимо добавить следующие настройки приложения:

WEBSITE_DNS_SERVER со значением 168.63.129.16 WEBSITE_VNET_ROUTE_ALL со значением 1

person user472292    schedule 16.12.2020