Служба приложений Azure не может подключиться к DNS-серверу доменных служб Azure AD

Здесь есть несколько движущихся частей, поэтому я попытаюсь и нацелить настройку (PS: все доменные имена и IP-адреса ниже являются вымышленными).

Лазурная Классика

  • У меня есть доменная служба Azure AD для mydomain.com.
  • На странице свойств для этой доменной службы IP-адресами являются 1.2.3.4 и 1.2.3.5.
  • Это внутри классического VNET (ClassicVNET) - адресное пространство 1.2.3.0/24

Лазурный РМ

  • В Azure RM у меня есть VNET (VNET1)
  • На этом VNET DNS-серверы настроены на мою доменную службу Azure сверху (1.2.3.4 и 1.2.3.5). Я не использую параметр "По умолчанию - Azure при условии" DNS.
  • Это ARM VNET (VNET1) в сочетании с классическим VNET выше (ClassicVNET).

Виртуальные машины (SQL)

  • У меня есть 3 виртуальных машины под управлением SQL Server. Все три виртуальные машины находятся в сети VNET1, поэтому их DNS-серверы - это 1.2.3.4 и 1.2.3.5.
  • Все 3 виртуальные машины присоединены к домену AD (mydomain.com).
  • Я использовал средство администрирования Windows " DNS" для создания некоторых записей "A" для mydomain.com (xymydomain.com и abmydomain.com).
  • Если я сделаю nslookup на любой из машин ВМ для этих записей "А" они разрешаются правильно.
  • Поскольку DNS-запрос к моему домену "mydomain.com" работает в виртуальной машине, я предполагаю, что мои сетевые соединения между двумя виртуальными сетями (ARM и классической) правильные.

Служба приложений Azure

  • У меня также есть служба приложений (AppService1).
  • В свойстве Networking для этой службы приложения я установил соединение VNET с ARM VNET (VNET1).
  • Если щелкнуть "нажмите здесь, чтобы настроить" для интеграции с VNET, я вижу, что DNS-серверы выбираются из VNET (1.2.3.4 и 1.2.3.5).
  • У меня есть строка подключения для службы приложений, ссылающаяся на "xymydomain.com", но я получаю тайм-ауты, пытаясь ее использовать.
  • Если я перейду к консоли Kudu, перейдите к подсказке powershell и введите nameresolver x.y.mydomain.com Я получаю тайм-аут DNS.

Я не могу понять, почему служба приложений (с ее интеграцией с VNET) не может получить доступ к DNS-серверам, но виртуальная машина может (и виртуальная машина, и служба приложений имеют доступ к одной и той же VNET). И, да, если я использую IP-адрес, на который указывает запись "A", все работает нормально (поэтому я знаю, что служба приложения имеет правильное подключение к ARM VNET и SQL-серверам в этой сети).

Есть идеи?

1 ответ

Решение

Я не могу понять, почему служба приложений (с ее интеграцией с VNET) не может получить доступ к DNS-серверам, но виртуальная машина может (и виртуальная машина, и служба приложений имеют доступ к одной и той же VNET).

Потому что служба приложений и ВМ не в одном и том же Vnet.

Когда вы пытаетесь настроить соединение VNET с моим ARM VNE (VNET1), служба приложения и Vnet подключаются через VPN:

Если ваша целевая виртуальная сеть уже существует, для ее подключения к приложению должна быть включена точка-точка VPN с шлюзом динамической маршрутизации. Если ваш шлюз настроен на статическую маршрутизацию, вы не можете включить виртуальную частную сеть (VPN) "точка-сайт".

Итак, ваш классический AAD DS подключить ваш Vnet1 через site-to-site VPNи ваш Vnet1 и служба приложений подключаются через point-to-site VPN, но служба приложения не может подключиться к AAD DS.

               S2S VPN               p2s vpn
   AAD DS <-------------> Vnet1 <----------> App service
     |                                           |
     -------------------Can't connect-------------

В качестве обходного пути, возможно, вы можете использовать AAD DS (ARM), таким образом, вы можете использовать ARM vnet для создания AAD DS, а затем ваше приложение может использовать VPN-соединение "точка-сайт" с этим Vnet.

Надеюсь это поможет.

Другие вопросы по тегам