Устранение неполадок интеграции виртуальной сети с Служба приложений Azure

В этой статье описываются средства, которые можно использовать для устранения проблем с подключением в Служба приложений Azure, которые интегрируются с виртуальной сетью.

Примечание.

Интеграция с виртуальной сетью не поддерживается для сценариев Docker Compose в Служба приложений. Политики ограничения доступа игнорируются при наличии частной конечной точки.

Проверка интеграции с виртуальной сетью

Чтобы устранить неполадки с подключением, необходимо сначала проверить, правильно ли настроена интеграция виртуальной сети и назначен ли частный IP-адрес всем экземплярам плана Служба приложений.

Для этого используйте один из следующих методов:

Проверка частного IP-адреса в консоли отладки Kudu

Чтобы получить доступ к консоли Kudu, выберите службу приложений в портал Azure, перейдите в раздел Средства разработки, выберите Дополнительные инструменты и нажмите кнопку Go. На странице службы Kudu выберите Инструменты>Консоль отладки>CMD.

Снимок экрана: открытие страницы службы Kudu в портал Azure.

Вы также можете перейти в консоль отладки Kudu непосредственно по URL-адресу [sitename].scm.azurewebsites.net/DebugConsole.

В консоли отладки выполните одну из следующих команд:

Приложения на основе ОС Windows

SET WEBSITE_PRIVATE_IP

Если частный IP-адрес назначен успешно, вы получите следующие выходные данные:

WEBSITE_PRIVATE_IP=<IP address>

Приложения на основе ОС Linux

set| egrep --color 'WEBSITE_PRIVATE_IP'

Проверка частного IP-адреса в среде Kudu

Перейдите в среду Kudu по адресу [sitename].scm.azurewebsites.net/Env и найдите WEBSITE_PRIVATE_IP.

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

Устранение неполадок с исходящим подключением в приложениях Windows

В собственных приложениях Windows средства проверки связи, nslookup и tracert не будут работать через консоль из-за ограничений безопасности (они работают в пользовательских контейнерах Windows).

Перейдите в консоль Kudu непосредственно по адресу [sitename].scm.azurewebsites.net/DebugConsole.

Для проверки функциональности DNS можно использовать nameresolver.exe. Синтаксис:

nameresolver.exe hostname [optional:DNS Server]

Вы можете использовать nameresolver, чтобы проверка имена узлов, от которых зависит ваше приложение. Таким образом, вы можете проверить, есть ли у вас что-нибудь неправильно настроено с помощью DNS или, возможно, у вас нет доступа к DNS-серверу. Dns-сервер, который использует приложение, можно просмотреть в консоли, просмотрев переменные среды WEBSITE_DNS_SERVER и WEBSITE_DNS_ALT_SERVER.

Примечание.

В настоящее время средство nameresolver.exe не работает в пользовательских контейнерах Windows.

Чтобы проверить tcp-подключение к сочетанию узлов и портов, можно использовать tcpping. Синтаксис: .

tcpping.exe hostname [optional: port]

Служебная программа tcpping сообщает, можно ли связаться с определенным узлом и портом. Он может показать успешное выполнение, только если приложение прослушивает сочетание узлов и портов и имеет сетевой доступ из приложения к указанному узлу и порту.

Устранение неполадок с исходящим подключением в приложениях Linux

Перейдите в Kudu непосредственно по адресу [sitename].scm.azurewebsites.net. На странице службы Kudu выберите Инструменты>Консоль отладки>CMD.

Для проверки функциональности DNS можно использовать команду nslookup. Синтаксис:

nslookup hostname [optional:DNS Server]

В зависимости от приведенных выше результатов можно проверка, если на DNS-сервере что-то настроено неправильно.

Примечание.

Средство nameresolver.exe в настоящее время не работает в приложениях Linux.

Чтобы проверить подключение, можно использовать команду Curl . Синтаксис:

curl -v https://hostname
curl hostname:[port]

Отладка доступа к ресурсам, размещенным в виртуальной сети

Ряд факторов может помешать приложению достичь определенного узла и порта. В большинстве случаев это один из следующих вариантов:

  • Брандмауэр на этом пути. Если у вас есть брандмауэр, вы достигли времени ожидания TCP. В этом случае время ожидания TCP составляет 21 секунду. Используйте средство tcpping для проверки подключения. Время ожидания TCP может быть вызвано многими вещами за пределами брандмауэров, но начните с этого момента.
  • СЛУЖБА DNS недоступна. Время ожидания DNS составляет три секунды на КАЖДЫЙ DNS-сервер. Если у вас два DNS-сервера, время ожидания составляет шесть секунд. Используйте nameresolver, чтобы узнать, работает ли DNS. Вы не можете использовать nslookup, так как он не использует DNS, с которым настроена виртуальная сеть. Если доступ к DNS недоступен, брандмауэр или группа безопасности сети может блокировать доступ к DNS, или она может быть отключена. Некоторые архитектуры DNS, использующие пользовательские DNS-серверы, могут быть сложными и иногда могут столкнуться с истечением времени ожидания. Чтобы определить, так ли это, можно задать переменную WEBSITE_DNS_ATTEMPTS среды. Дополнительные сведения о DNS в Службах приложений см. в разделе Разрешение имен (DNS) в Служба приложений.

Если эти элементы не отвечают на ваши проблемы, сначала обратите внимание на такие вещи, как:

Интеграция региональной виртуальной сети

  • Ваше назначение не является RFC1918 адресом, и у вас не включен маршрут "Все "?
  • Существует ли группа безопасности сети, блокирующая исходящий трафик из подсети интеграции?
  • Если вы используете Azure ExpressRoute или VPN, настроен ли локальный шлюз для маршрутизации трафика в Azure? Если вы можете получить доступ к конечным точкам в виртуальной сети, но не локально, проверка маршруты.
  • Достаточно ли у вас разрешений для настройки делегирования в подсети интеграции? Во время настройки интеграции региональной виртуальной сети подсеть интеграции делегируется Microsoft.Web/serverFarms. Пользовательский интерфейс интеграции виртуальной сети автоматически делегирует подсеть Microsoft.Web/serverFarms. Если у вашей учетной записи недостаточно сетевых разрешений для настройки делегирования, вам потребуется пользователь, который может задать атрибуты в подсети интеграции для делегирования подсети. Чтобы вручную делегировать подсеть интеграции, перейдите в пользовательский интерфейс подсети виртуальная сеть Azure и задайте делегирование для Microsoft.Web/serverFarms.

Отладка проблем с сетью является сложной задачей, так как вы не можете увидеть, что блокирует доступ к определенной комбинации узла и порта. Ниже приведены некоторые причины.

  • На узле установлен брандмауэр, который запрещает доступ к порту приложения из диапазона IP-адресов типа "точка — сеть". Для пересечения подсетей часто требуется открытый доступ.
  • Целевой узел не работает.
  • Приложение не работает.
  • У вас был неправильный IP-адрес или имя узла.
  • Приложение прослушивает порт, отличный от ожидаемого. Идентификатор процесса можно сопоставить с портом прослушивания с помощью netstat -aon на узле конечной точки.
  • Группы безопасности сети настроены таким образом, чтобы запретить доступ к узлу приложения и порту из диапазона IP-адресов типа "точка — сеть".

Вы не знаете, какой адрес на самом деле использует ваше приложение. Это может быть любой адрес в подсети интеграции или диапазон адресов типа "точка — сеть", поэтому необходимо разрешить доступ из всего диапазона адресов.

Ниже приведены следующие шаги отладки.

  • Подключитесь к виртуальной машине в виртуальной сети и попытайтесь связаться с ресурсом host:port оттуда. Чтобы проверить доступ по протоколу TCP, используйте команду PowerShell Test-NetConnection. Синтаксис:
Test-NetConnection hostname [optional: -Port]
  • Откройте приложение на виртуальной машине и проверьте доступ к узлу и порту из консоли приложения с помощью tcpping.

Средство устранения неполадок сети

Вы также можете использовать средство устранения неполадок сети для устранения неполадок с подключением приложений в Служба приложений. Чтобы открыть средство устранения неполадок сети, перейдите в службу приложений в портал Azure. Выберите Диагностика и устранение проблемы, а затем найдите средство устранения неполадок с сетью.

Снимок экрана, на котором показано, как открыть средство устранения неполадок сети в портал Azure.

Примечание.

Сценарий проблем с подключением пока не поддерживает приложения Linux или контейнеры.

Проблемы с подключением. Это проверка состояние интеграции виртуальной сети, включая проверку того, назначен ли частный IP-адрес всем экземплярам плана Служба приложений и параметров DNS. Если пользовательская СЛУЖБА DNS не настроена, будет применена служба Azure DNS по умолчанию. Вы также можете выполнять тесты для определенной конечной точки, к которой требуется проверить подключение.

Снимок экрана: средство устранения неполадок с подключением.

Проблемы с конфигурацией. Это средство устранения неполадок будет проверка, если подсеть допустима для интеграции с виртуальной сетью.

Снимок экрана, на котором показано, как запустить средство устранения неполадок с конфигурацией в портал Azure.

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

Снимок экрана: запуск средства устранения неполадок при удалении подсети или виртуальной сети.

Сбор трассировок сети

Сбор трассировок сети может быть полезен при анализе проблем. В службах приложение Azure трассировки сети берутся из процесса приложения. Чтобы получить точную информацию, воспроизведите проблему при запуске сбора трассировки сети.

Примечание.

Трафик виртуальной сети не фиксируется в трассировках сети.

Службы приложений Windows

Чтобы собрать трассировки сети для Служб приложений Windows, выполните следующие действия.

  1. В портал Azure перейдите к веб-приложению.
  2. В области навигации слева выберите Диагностика и решение проблем.
  3. В поле поиска введите Сбор трассировки сети и выберите Сбор трассировки сети , чтобы начать сбор трассировки сети.

Снимок экрана: запись трассировки сети.

Чтобы получить файл трассировки для каждого экземпляра веб-приложения, в браузере перейдите в консоль Kudu для веб-приложения (https://<sitename>.scm.azurewebsites.net). Скачайте файл трассировки из папки C:\home\LogFiles\networktrace или D:\home\LogFiles\networktrace .

Службы приложений Linux

Чтобы собрать трассировки сети для служб приложений Linux, которые не используют пользовательский контейнер, выполните следующие действия.

  1. Установите программу командной tcpdump строки, выполнив следующие команды:

    apt-get update
    apt install tcpdump
    
  2. Подключитесь к контейнеру по протоколу SSH.

  3. Определите интерфейс, который работает и работает, выполнив следующую команду (например, eth0):

    root@<hostname>:/home# tcpdump -D
    
    1.eth0 [Up, Running, Connected]
    2.any (Pseudo-device that captures on all interfaces) [Up, Running]
    3.lo [Up, Running, Loopback]
    4.bluetooth-monitor (Bluetooth Linux Monitor) [Wireless]
    5.nflog (Linux netfilter log (NFLOG) interface) [none]
    6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
    7.dbus-system (D-Bus system bus) [none]
    8.dbus-session (D-Bus session bus) [none]
    
  4. Запустите сбор трассировки сети, выполнив следующую команду:

    root@<hostname>:/home# tcpdump -i eth0 -w networktrace.pcap
    

    Замените eth0 именем фактического интерфейса.

Чтобы скачать файл трассировки, подключитесь к веб-приложению с помощью таких методов, как Kudu, FTP или запрос API Kudu. Ниже приведен пример запроса для активации скачивания файла:

https://<sitename>.scm.azurewebsites.net/api/vfs/<path to the trace file in the /home directory>/filename

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.