В нашем ландшафте Azure у нас есть пара виртуальных машин. Для одного из них у нас есть требование, чтобы у него было DNS-имя, чтобы иметь к нему доступ. В прошлом у нас были проблемы с частными зонами DNS, поэтому вместо этого мы решили привязать общедоступный IP-адрес к машине, что дало бы нам бесплатный (.cloudapp.azure.com) DNS.
Эта виртуальная машина не должна быть доступна из Интернета, поэтому мы добавили группу безопасности сети в подсети, в которой она находится, которая блокирует внешний трафик, но разрешает трафик виртуальной сети.
В другом парном vnet у нас есть шлюз VPN, который я могу использовать для доступа к среде и ее внутренним ресурсам. Теперь я вижу, что я не могу использовать DNS-имя этого компьютера для подключения к нему, если я не открою ранее упомянутую NSG, чтобы разрешить весь трафик. Сначала я подумал: имеет смысл, трафик направляется на общедоступный IP-адрес, который рассматривается как «внешний» трафик, хотя у меня есть VPN и работает. Поэтому я добавил локальный маршрут (добавление маршрута ...), направляющий трафик с общедоступного IP-адреса на мой адрес VPN-шлюза. Мое рассуждение: трафик теперь направляется через VPN, поэтому внутренняя маршрутизация Azures гарантирует, что трафик будет рассматриваться как трафик виртуальной сети, и все будет хорошо.
Достаточно сказать: это не работает. Но я не могу понять, почему это не так, и это то, что я хотел бы знать. Если есть какие-то другие способы выполнить требования, это тоже подойдет (за исключением опции частного DNS, которая, как мне кажется, не работает и для VPN).
Я считаю, что вам понадобится либо собственный DNS, либо хотя бы собственный прокси-сервер DNS.
В этой статье представлен подробный анализ различных сценариев разрешения имен Azure и поддерживаемого решения:
Разрешение имен для ресурсов в виртуальных сетях Azure
В частности, «Разрешение имен узлов Azure с локальных компьютеров», заявленный подход - «Перенаправлять запросы на управляемый клиентом DNS-прокси-сервер в соответствующей виртуальной сети, прокси-сервер пересылает запросы в Azure для разрешения».