Устранение неполадок интеграции виртуальной сети с Служба приложений Azure
В этой статье описываются средства, которые можно использовать для устранения проблем с подключением в Служба приложений Azure, которые интегрируются с виртуальной сетью.
Примечание.
Интеграция с виртуальной сетью не поддерживается для сценариев Docker Compose в Служба приложений. Политики ограничения доступа игнорируются при наличии частной конечной точки.
Проверка интеграции с виртуальной сетью
Чтобы устранить неполадки с подключением, необходимо сначала проверить, правильно ли настроена интеграция виртуальной сети и назначен ли частный IP-адрес всем экземплярам плана Служба приложений.
Для этого используйте один из следующих методов:
Проверка частного IP-адреса в консоли отладки Kudu
Чтобы получить доступ к консоли Kudu, выберите службу приложений в портал Azure, перейдите в раздел Средства разработки, выберите Дополнительные инструменты и нажмите кнопку Go. На странице службы Kudu выберите Инструменты>Консоль отладки>CMD.
Вы также можете перейти в консоль отладки 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. Выберите Диагностика и устранение проблемы, а затем найдите средство устранения неполадок с сетью.
Примечание.
Сценарий проблем с подключением пока не поддерживает приложения Linux или контейнеры.
Проблемы с подключением. Это проверка состояние интеграции виртуальной сети, включая проверку того, назначен ли частный IP-адрес всем экземплярам плана Служба приложений и параметров DNS. Если пользовательская СЛУЖБА DNS не настроена, будет применена служба Azure DNS по умолчанию. Вы также можете выполнять тесты для определенной конечной точки, к которой требуется проверить подключение.
Проблемы с конфигурацией. Это средство устранения неполадок будет проверка, если подсеть допустима для интеграции с виртуальной сетью.
Проблема с удалением подсети или виртуальной сети. Это средство устранения неполадок будет проверка, если в вашей подсети есть какие-либо блокировки и какие-либо неиспользуемые связи служб, которые могут блокировать удаление виртуальной сети или подсети.
Сбор трассировок сети
Сбор трассировок сети может быть полезен при анализе проблем. В службах приложение Azure трассировки сети берутся из процесса приложения. Чтобы получить точную информацию, воспроизведите проблему при запуске сбора трассировки сети.
Примечание.
Трафик виртуальной сети не фиксируется в трассировках сети.
Службы приложений Windows
Чтобы собрать трассировки сети для Служб приложений Windows, выполните следующие действия.
- В портал Azure перейдите к веб-приложению.
- В области навигации слева выберите Диагностика и решение проблем.
- В поле поиска введите Сбор трассировки сети и выберите Сбор трассировки сети , чтобы начать сбор трассировки сети.
Чтобы получить файл трассировки для каждого экземпляра веб-приложения, в браузере перейдите в консоль Kudu для веб-приложения (https://<sitename>.scm.azurewebsites.net
). Скачайте файл трассировки из папки C:\home\LogFiles\networktrace или D:\home\LogFiles\networktrace .
Службы приложений Linux
Чтобы собрать трассировки сети для служб приложений Linux, которые не используют пользовательский контейнер, выполните следующие действия.
Установите программу командной
tcpdump
строки, выполнив следующие команды:apt-get update apt install tcpdump
Подключитесь к контейнеру по протоколу SSH.
Определите интерфейс, который работает и работает, выполнив следующую команду (например,
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]
Запустите сбор трассировки сети, выполнив следующую команду:
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.