Служба приложений 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.
Надеюсь это поможет.