Устранение неполадок шлюза NAT Azure
В этой статье содержатся инструкции по правильной настройке шлюза NAT и устранению распространенных проблем с конфигурацией и развертыванием.
Основы настройки Шлюза NAT
Проверьте следующие конфигурации, чтобы убедиться, что Шлюз NAT можно использовать для прямого исходящего трафика:
К Шлюзу NAT подключен по крайней мере один общедоступный IP-адрес или один общедоступный префикс IP-адреса. Чтобы обеспечить исходящие подключения, со Шлюзом NAT нужно связать хотя бы один общедоступный IP-адрес.
К Шлюзу NAT подключена хотя бы одна подсеть. Вы можете подключить к Шлюзу NAT несколько подсетей для исходящих подключений, но они должны существовать в одной и той же виртуальной сети. Шлюз NAT не может охватывать более одной виртуальной сети.
Правила группы безопасности сети (NSG) или определяемые пользователем маршруты (UDR) не блокируют шлюз NAT от перенаправления исходящего трафика в Интернет.
Проверка подключения
Шлюз NAT поддерживает протоколы протокола IPv4 User Datagram (UDP) и протокола TCP.
Примечание.
Протокол ICMP не поддерживается шлюзом NAT. Проверка связи с использованием протокола ICMP не поддерживается и, как ожидается, завершится ошибкой.
Чтобы проверить комплексное подключение Шлюза NAT, сделайте следующее:
Проверьте, используется ли общедоступный IP-адрес Шлюза NAT.
Проведите тесты подключения TCP и тесты на уровне приложений для конкретного UDP.
Просмотрите журналы потоков NSG, чтобы проанализировать потоки исходящего трафика из Шлюза NAT.
Ознакомьтесь со следующей таблицей, чтобы средства, используемые для проверки подключения шлюза NAT.
Операционная система | Универсальная проверка TCP-подключения. | Тест TCP на уровне приложения | UDP |
---|---|---|---|
Linux | nc (универсальный тест подключения) |
curl (тест уровня приложений TCP) |
в зависимости от приложения |
Windows | PsPing | PowerShell Invoke-WebRequest | в зависимости от приложения |
Анализ исходящего подключения
Чтобы проанализировать исходящий трафик из шлюза NAT, используйте журналы потоков виртуальной сети. Журналы потоков виртуальной сети предоставляют сведения о подключении для виртуальных машин. Сведения о подключении содержат исходный IP-адрес и порт, конечный IP-адрес и порт, а также состояние подключения. Также регистрируются направление потока трафика и размер трафика в количестве пакетов и отправленных байтов. Исходный IP-адрес и порт, указанный в журнале потоков виртуальной сети, предназначен для виртуальной машины, а не для шлюза NAT.
Дополнительные сведения о журналах потоков виртуальной сети см. в обзоре журналов потоков виртуальной сети.
Инструкции по включению журналов потоков виртуальной сети см. в статье "Управление журналами потоков виртуальной сети".
Рекомендуется получить доступ к данным журнала в рабочих областях Log Analytics, где можно также запрашивать и фильтровать данные для исходящего трафика. Дополнительные сведения об использовании Log Analytics см . в руководстве по Log Analytics.
Дополнительные сведения о схеме журнала потоков виртуальной сети см. в схеме аналитики трафика и агрегации данных.
Шлюз NAT находится в состоянии сбоя
Вы можете столкнуться с ошибкой исходящего подключения, если ресурс шлюза NAT находится в состоянии сбоя. Чтобы вывести шлюз NAT из состояния сбоя, выполните следующие инструкции:
Определите ресурс, который находится в состоянии сбоя. Перейдите в Обозреватель ресурсов Azure и определите ресурс в этом состоянии.
Переведите переключатель в правом верхнем углу в положение "Чтение и запись".
Щелкните "Изменить" для ресурса в состоянии сбоя.
Выберите PUT, а затем GET, чтобы состояние подготовки изменилось на "Успешно".
Теперь вы можете переходить к другим действиям, так как этот ресурс вышел из состояния сбоя.
Добавление или удаление шлюза NAT
Не удается удалить шлюз NAT
Шлюз NAT должен быть отключен от всех подсетей в виртуальной сети, прежде чем можно будет удалить ресурс. Пошаговые инструкции см. в статье "Удаление шлюза NAT из существующей подсети" и удаление ресурса .
Добавление или удаление подсети
Шлюз NAT нельзя соединить с подсетью, которая уже подключена к другому шлюзу NAT
Подсеть в виртуальной сети не может быть подключена к нескольким шлюзам NAT для подключения исходящего трафика к Интернету. Отдельный ресурс шлюза NAT можно связать с несколькими подсетями в одной виртуальной сети. Шлюз NAT не может охватывать более одной виртуальной сети.
Базовые ресурсы не могут существовать в той же подсети, что и шлюз NAT
Шлюз NAT несовместим с базовыми ресурсами, такими как Load Balancer категории "Базовый" или базовый общедоступный IP-адрес категории "Базовый". Ресурсы категории "Базовый" должны быть размещены в подсети, не связанной со Шлюзом NAT. Для работы со Шлюзом NAT Load Balancer и общедоступный IP-адрес, относящиеся к ценовой категории "Базовый", можно обновить до ценовой категории "Стандартный".
Чтобы обновить Load Balancer категории "Базовый" до категории "Стандартный", см. статью Обновление общедоступного ресурса Load Balancer категории "Базовый" до категории "Стандартный".
Чтобы обновить общедоступный IP-адрес категории "Базовый" до категории "Стандартный", см. статью Обновление общедоступного IP-адреса категории "Базовый" до категории "Стандартный".
Чтобы обновить базовый общедоступный IP-адрес с подключенной виртуальной машиной до уровня "стандартный", см. статью [обновление базового общедоступного IP-адреса с присоединенной виртуальной машиной](/azure/virtual-network/ip-services/public-ip-upgrade-virtual machine).
Шлюз NAT невозможно подключить к подсети шлюза
Шлюз NAT нельзя развернуть в подсети шлюза. Шлюз подсети используется шлюзом VPN для передачи зашифрованного трафика между виртуальной сетью Azure и локальным расположением. Дополнительные сведения об использовании подсетей шлюза для шлюза VPN см. в статье Общие сведения о VPN-шлюзе.
Не удается подключить шлюз NAT к подсети, содержащей сетевой интерфейс виртуальной машины в состоянии сбоя.
При связывании шлюза NAT с подсетью, содержащей сетевой интерфейс виртуальной машины (сетевой интерфейс) в состоянии сбоя, вы получите сообщение об ошибке, указывающее, что это действие невозможно выполнить. Прежде чем подключить шлюз NAT к подсети, необходимо сначала устранить состояние сбоя сетевого интерфейса виртуальной машины.
Чтобы получить сетевой интерфейс виртуальной машины из состояния сбоя, можно использовать один из двух следующих методов.
Использование PowerShell для получения сетевого интерфейса виртуальной машины из состояния сбоя
Определите состояние подготовки сетевых интерфейсов с помощью команды Get-AzNetworkInterface PowerShell и примените для параметра provisioningState значение "Успешно".
Выполните команды GET/SET PowerShell в сетевом интерфейсе. Команды PowerShell обновляют состояние подготовки.
Проверьте результаты этой операции, снова проверив состояние подготовки сетевых интерфейсов (выполните команды из шага 1).
Использование Azure Resource Explorer для получения сетевого интерфейса виртуальной машины из состояния сбоя
Перейдите в Обозреватель ресурсов Azure (рекомендуется использовать браузер Microsoft Edge)
Разверните подписки (занимает несколько секунд, чтобы она отображалась).
Разверните подписку, содержащую сетевой интерфейс виртуальной машины в состоянии сбоя.
Разверните resourceGroups (группы ресурсов).
Разверните правильную группу ресурсов, содержащую сетевой интерфейс виртуальной машины в состоянии сбоя.
Разверните поставщиков.
Разверните Microsoft.Network.
Разверните networkInterfaces (сетевые интерфейсы).
Выберите сетевой интерфейс, который находится в состоянии подготовки сбоем.
Нажмите вверху на кнопку Чтение/запись.
Нажмите на зеленую кнопку Получить.
Нажмите на синюю кнопку Изменить.
Нажмите на зеленую кнопку Поместить.
Нажмите вверху на кнопку Только чтение.
Сетевой интерфейс виртуальной машины теперь должен находиться в состоянии успешной подготовки. Вы можете закрыть браузер.
Добавление и удаление общедоступных IP-адресов
В шлюзе NAT должно быть не больше 16 общедоступных IP-адресов
Шлюз NAT не может быть связан более чем с 16 общедоступными IP-адресами. Вы можете использовать любое сочетание общедоступных IP-адресов и префиксов со шлюзом NAT, при этом всего должно быть не более 16 IP-адресов. Чтобы добавить или удалить общедоступный IP-адрес, см . статью о добавлении или удалении общедоступного IP-адреса.
С шлюзом NAT можно использовать следующие размеры префикса IP:
/28 (16 адресов)
/29 (8 адресов)
/30 (4 адреса)
/31 (2 адреса)
Совместная работа c IPv6
Шлюз NAT поддерживает протоколы IPv4 UDP и TCP. Шлюз NAT нельзя связать с общедоступными IP-адресами IPv6 или префиксом общедоступных IP-адресов IPv6. Шлюз NAT можно развернуть в подсети с двумя стеками, но использует только общедоступные IP-адреса IPv4 для направления исходящего трафика. Разверните Шлюз NAT в подсети двойного стека, если нужно, чтобы ресурсы IPv6 существовали в той же подсети, что и ресурсы IPv4. Дополнительные сведения о том, как обеспечить исходящее подключение IPv4 и IPv6 из подсети двойного стека, см. в разделе "Двойной исходящий стек" с помощью шлюза NAT и общедоступной подсистемы балансировки нагрузки.
Не удается использовать основные общедоступные IP-адреса с шлюзом NAT
Шлюз NAT является стандартным ресурсом и не может использоваться с основными ресурсами, включая основные общедоступные IP-адреса. Вы можете обновить базовый общедоступный IP-адрес для использования с шлюзом NAT с помощью следующего руководства. Обновление общедоступного IP-адреса.
Не удается использовать общедоступные IP-адреса с предпочтениями маршрутизации интернета вместе со шлюзом NAT
Если шлюз NAT настроен с общедоступным IP-адресом, трафик направляется через сеть Майкрософт. Шлюз NAT не может быть связан с общедоступными IP-адресами с выбором предпочтения маршрутизации в Интернете. Шлюз NAT может быть связан только с общедоступными IP-адресами с выбором предпочтения маршрутизации Глобальной сети Майкрософт. См . поддерживаемые службы для списка всех служб Azure, поддерживающих общедоступные IP-адреса с предпочтениями маршрутизации в Интернете.
Невозможно использовать несовпадающие зоны общедоступных IP-адресов и шлюза NAT
Шлюз NAT является зональным ресурсом и может быть назначен определенной зоне или "без зоны". Если шлюз NAT помещается в "без зоны", Azure помещает шлюз NAT в зону для вас, но у вас нет видимости, в какой зоне расположен шлюз NAT.
Шлюз NAT можно использовать с общедоступными IP-адресами, назначенными для определенной зоны, ни для одной зоны, всех зон (избыточный между зонами) в зависимости от собственной конфигурации зоны доступности.
Назначение зоны доступности шлюза NAT | Общедоступный IP-адрес или обозначение префикса, которые можно использовать |
---|---|
Нет зоны | Избыточные между зонами, Без зоны или Зональные (обозначение зоны общедоступного IP-адреса может быть любой зоной в пределах региона, чтобы оно работало со шлюзом NAT без указания зоны) |
Назначена определенной зоне | Можно использовать избыточные между зонами или зональные общедоступные IP-адреса |
Примечание.
Если вам нужно знать зону, в которой находится шлюз NAT, обязательно назначьте ее определенной зоне доступности.
Дополнительные сведения см. в руководстве по устранению неполадок.
Если проблема, с которой вы столкнулись, не рассматривается в этой статье, ознакомьтесь с другими статьями по устранению неполадок шлюза NAT:
Устранение неполадок исходящего подключения с помощью шлюза NAT.
Устранение неполадок исходящего подключения с помощью шлюза NAT и других служб Azure.
Следующие шаги
Если у вас возникли проблемы с шлюзом NAT, не перечисленным или устраненным в этой статье, отправьте отзыв через GitHub в нижней части этой страницы. Мы будем обращаться к вашим отзывам как можно скорее, чтобы улучшить взаимодействие с нашими клиентами.
Дополнительные сведения о шлюзе NAT см. в следующих статьях:
Ресурс шлюза NAT Azure.
Управление шлюзом NAT.