Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описаны средства, которые можно использовать для устранения проблем с подключением в службе приложение Azure, которая интегрируется с виртуальной сетью.
Note
Интеграция с виртуальной сетью не поддерживается для сценариев Docker Compose в Службе приложений. Политики ограничений доступа игнорируются, если частная конечная точка присутствует.
Проверка интеграции виртуальной сети
Чтобы устранить проблемы с подключением, сначала необходимо проверить правильность настройки интеграции виртуальной сети и назначать ли частный IP-адрес всем экземплярам плана Служба приложений.
Для этого используйте один из следующих методов.
Проверка частного IP-адреса в консоли отладки Kudu
Чтобы получить доступ к консоли Kudu, выберите службу приложений в портал Azure, перейдите в раздел "Средства разработки", выберите "Дополнительные инструменты" и нажмите кнопку "Перейти". На странице службы 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
Перейдите в среду [sitename].scm.azurewebsites.net/Env Kudu и выполните поиск WEBSITE_PRIVATE_IP.
После успешной настройки интеграции виртуальной сети можно продолжить проверку подключения.
Устранение неполадок с исходящим подключением в приложениях Windows
В собственных приложениях Windows средства ping, 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.
Note
Средство 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-сервере.
Note
В настоящее время средство nameresolver.exe не работает в приложениях Linux.
Для проверки подключения можно использовать команду Curl . Синтаксис:
curl -v https://hostname
curl hostname:[port]
Доступ для отладки к ресурсам, размещенным в виртуальной сети
Ряд факторов может препятствовать приложению достичь определенного узла и порта. Большую часть времени это одно из следующих:
- Брандмауэр блокирует доступ. Если используется брандмауэр, может быть превышено время ожидания для протокола TCP. В нашем случае это 21 секунда. Проверьте подключение с помощью средства tcpping. Время ожидания для протокола TCP может быть превышено и по многим другим причинам, но начать стоит именно с этой.
- Служба DNS недоступна. Время ожидания для DNS составляет три секунды на каждый DNS-сервер. Если у вас есть два DNS-сервера, время ожидания составляет шесть секунд. Используйте nameresolver, чтобы узнать, работает ли DNS. Не удается использовать nslookup, так как он не использует DNS, с которым настроена виртуальная сеть. Если это недоступно, у вас может быть брандмауэр или группа безопасности сети, блокирующая доступ к DNS, или она может быть отключена. Некоторые архитектуры DNS, использующие пользовательские DNS-серверы, могут быть сложными и иногда могут возникать время ожидания. Чтобы определить, является ли это так, можно задать переменную
WEBSITE_DNS_ATTEMPTSсреды. Дополнительные сведения о DNS в Служба приложений см. в разделе "Разрешение имен" (DNS) в Служба приложений.
Если эти рекомендации не помогут вам решить проблему, проверьте еще несколько факторов:
Интеграция региональной виртуальной сети
- Ваш целевой адрес не соответствует требованиям RFC1918, а параметр Маршрутизировать весь трафик не включен?
- Блокируется ли исходящий трафик из вашей подсети интеграции с помощью NSG?
- Если вы работаете через Azure ExpressRoute или VPN, настроена ли на вашем локальном шлюзе обратная маршрутизация трафика для Azure? Если к конечным точкам в виртуальной сети вы можете получить доступ, а в локальной среде нет, то следует проверить настройку маршрутов.
- Имеются ли у вас достаточные разрешения для настройки делегирования в подсети интеграции? Во время настройки интеграции с региональной виртуальной сетью ваша подсеть интеграции делегируется ресурсу Microsoft.Web/serverFarms. Пользовательский интерфейс интеграции с виртуальной сетью делегирует подсеть ресурсу Microsoft.Web/serverFarms автоматически. Если у вашей учетной записи нет достаточных сетевых разрешений для настройки делегирования, вам следует обратиться к пользователю, который может задать в подсети интеграции атрибуты, необходимые для делегирования подсети. Чтобы вручную делегировать подсеть интеграции, перейдите в пользовательский интерфейс подсети виртуальной сети Azure и задайте делегирование для ресурса Microsoft.Web/serverFarms.
Отладка сетевых проблем является сложной задачей, так как не видно, что блокирует доступ к определенной комбинации "узел: порт". К некоторым причинам относятся следующие:
- На узле запущен брандмауэр, который блокирует доступ к порту приложения для диапазона IP-адресов "точка — сеть". Для реализации подключения между подсетями часто требуется разрешить общий доступ.
- Целевой узел не работает.
- Приложение не работает.
- Указан неверный IP-адрес или неверное имя узла.
- Приложение ожидает передачи данных не по тому порту, который предполагается. Вы можете сопоставить ИД процесса с портом прослушивания при помощи команды "netstat -aon" в узле конечной точки.
- Группы безопасности сети настроены на блокирование доступа к узлу и порту приложения для диапазона IP-адресов "точка — сеть".
Вы не знаете, какой адрес в действительности используется приложением. Это может быть любой адрес из подсети интеграции или диапазона адресов "точка — сеть", поэтому необходимо разрешить доступ для всего диапазона адресов.
Дополнительные действия по отладке:
- Войдите на виртуальную машину в вашей виртуальной сети и попробуйте из нее обратиться к нужной комбинации "узел: порт". Чтобы проверить доступ TCP, используйте команду PowerShell Test-NetConnection. Синтаксис:
Test-NetConnection hostname [optional: -Port]
- Откройте приложение на виртуальной машине и проверьте из консоли приложения доступ к узлу и порту с помощью инструмента tcpping.
Средство устранения неполадок сети
Вы также можете использовать средство устранения неполадок сети для устранения неполадок подключения для приложений в Служба приложений. Чтобы открыть средство устранения неполадок сети, перейдите в службу приложений в портал Azure. Выберите диагностику и решить проблему, а затем найдите средство устранения неполадок сети.
Note
Сценарий проблем с подключением пока не поддерживает приложения 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Подключитесь к контейнеру через протокол Secure Shell (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
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.