Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Из этой статьи вы узнаете, как диагностировать проблемы с маршрутизацией, просматривая действующие маршруты сетевого интерфейса на виртуальной машине. Azure автоматически создает маршруты по умолчанию для каждой подсети виртуальной сети. Эти маршруты по умолчанию можно переопределить, определив настраиваемые маршруты в таблице маршрутов и связав таблицу с подсетью. Действующие маршруты для сетевого интерфейса — это сочетание маршрутов по умолчанию, настраиваемых маршрутов, которые вы определяете, и любых маршрутов, распространяемых из локальной сети через VPN-шлюз Azure с помощью протокола BGP. Если вы не знакомы с виртуальными сетями, сетевыми интерфейсами или маршрутизацией, ознакомьтесь с общими сведениями о виртуальной сети, сетевом интерфейсе и маршрутизации.
Сценарий
При попытке подключиться к виртуальной машине происходит сбой. Чтобы определить, почему не удается подключиться к виртуальной машине, вы можете просмотреть действующие маршруты для сетевого интерфейса с помощью портала Azure, PowerShell или Azure CLI.
Чтобы выполнить приведенные ниже инструкции, требуется виртуальная машина, для которой будут просматриваться действующие маршруты. Если у вас ее нет, разверните виртуальную машину Linux или Windows для выполнения задач, описанных в этой статье. Примеры в этой статье предназначены для виртуальной машины с именем vm-1 с сетевым интерфейсом vm-1445. Виртуальная машина и сетевой интерфейс находятся в группе ресурсов с именем test-rg и находятся в регионе "Восточная часть США ". Измените значения в шагах, как это уместно, для виртуальной машины, для которую вы диагностировали проблему.
Диагностика с помощью портала Azure
Войдите на портал Azure с помощью учетной записи Azure с необходимыми разрешениями.
В верхней части окна портала Azure введите в поле поиска имя запущенной виртуальной машины. Когда в результатах поиска появится имя виртуальной машины, щелкните его.
Разверните раздел "Сеть" и выберите параметры сети.
Чтобы выбрать интерфейс, выберите его имя.
В сетевом интерфейсе разверните Справка. Выберите действующие маршруты.
Выберите нужный сетевой интерфейс, чтобы просмотреть его действующие маршруты. Каждый интерфейс может принадлежать другой подсети, что приводит к уникальным маршрутам. В примере на изображении показаны маршруты по умолчанию, созданные Azure для каждой подсети. Список включает маршруты по умолчанию и может также включать дополнительные маршруты. Маршруты могут определяться такими функциями, как, например, пиринг виртуальных сетей или подключения к локальным сетям через шлюз VPN в Azure. Дополнительные сведения о маршрутах см. в статье "Маршрутизация трафика виртуальной сети". Если существует множество маршрутов, используйте параметр "Скачать ", чтобы сохранить их в качестве файла .csv для упрощения проверки.
На предыдущем шаге мы просмотрели действующие маршруты с помощью виртуальной машины. Но их можно просмотреть и другими способами:
Отдельный сетевой интерфейс. Узнайте, как просмотреть сведения о сетевом интерфейсе.
Отдельная таблица маршрутов. Узнайте, как просмотреть таблицу маршрутов.
Диагностика с помощью PowerShell
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.
Вы можете выполнить приведенные ниже команды в Azure Cloud Shell или с помощью PowerShell на своем компьютере. Azure Cloud Shell — это бесплатная интерактивная оболочка. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью. Если вы выполняете PowerShell на локальном компьютере, вам потребуется модуль Azure PowerShell 1.0.0 или более поздней версии. Выполните Get-Module -ListAvailable Az
на компьютере, чтобы получить сведения об установленной версии. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. Если вы используете PowerShell локально, вам также необходимо выполнить Connect-AzAccount
вход в Azure с помощью учетной записи с необходимыми разрешениями.
Получите действующие маршруты для сетевого интерфейса, выполнив командлет Get-AzEffectiveRouteTable. Следующий пример получает действующие маршруты для сетевого интерфейса с именем vm-1445 в группе ресурсов с именем test-rg:
$Params = @{
NetworkInterfaceName = "vm-1445"
ResourceGroupName = "test-rg"
}
Get-AzEffectiveRouteTable @Params | Format-Table
Чтобы понять сведения, возвращенные в выходных данных, ознакомьтесь с разделом Маршрутизация трафика в виртуальной сети. Выходные данные возвращаются только в том случае, если виртуальная машина запущена. Если к виртуальной машине подключено несколько сетевых интерфейсов, можно просмотреть действующие маршруты для каждого из них. Так как сетевые интерфейсы могут находиться в разных подсетях, у них могут быть разные действующие маршруты. Если у вас по-прежнему возникает проблема с взаимодействием, ознакомьтесь с дополнительными рекомендациями и диагностикой.
Если вы знаете имя виртуальной машины, но не имя сетевого интерфейса, используйте следующие команды, чтобы вернуть идентификатор всех сетевых интерфейсов, подключенных к виртуальной машине:
$Params = @{
Name = "vm-1"
ResourceGroupName = "test-rg"
}
$VM = Get-AzVM @Params
$VM.NetworkProfile
Вы получите примерно такой результат:
NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/test-rg/providers/Microsoft.Network/networkInterfaces/vm-1445
В предыдущих выходных данных имя сетевого интерфейса — vm-1445.
Диагностика с помощью Azure CLI
Вы можете выполнить приведенные ниже команды в Azure Cloud Shell или с помощью интерфейса командной строки на своем компьютере. Для этой статьи требуется Azure CLI 2.0.32 или более поздней версии. Выполните командлет az --version
, чтобы узнать установленную версию. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. Если Azure CLI работает локально, необходимо также выполнить команду az login
и войти в Azure с учетной записью, предоставляющей необходимые разрешения.
Получите действующие маршруты для сетевого интерфейса с помощью команды az network nic show-effective-route-table. Следующая команда получает действующие маршруты для сетевого интерфейса с именем vm-1445 , который находится в группе ресурсов с именем test-rg:
az network nic show-effective-route-table \
--name vm-1445 \
--resource-group test-rg
Чтобы понять сведения, возвращенные в выходных данных, ознакомьтесь с разделом Обзор маршрутизации. Выходные данные возвращаются только в том случае, если виртуальная машина запущена. Если к виртуальной машине подключено несколько сетевых интерфейсов, можно просмотреть действующие маршруты для каждого из них. Так как сетевые интерфейсы могут находиться в разных подсетях, у них могут быть разные действующие маршруты. Если у вас по-прежнему возникает проблема с взаимодействием, ознакомьтесь с дополнительными рекомендациями и диагностикой.
Если вы знаете имя виртуальной машины, но не имя сетевого интерфейса, используйте следующие команды, чтобы вернуть идентификатор всех сетевых интерфейсов, подключенных к виртуальной машине:
az vm show \
--name vm-1 \
--resource-group test-rg
Решение проблемы
Устранение проблем маршрутизации обычно состоит из следующих процедур:
Добавление настраиваемого маршрута для переопределения одного из маршрутов Azure по умолчанию. Узнайте, как добавить настраиваемый маршрут.
Изменён или удалён пользовательский маршрут, который может привести к маршрутизации в нежелательное место. Узнайте, как изменить или удалить настраиваемый маршрут.
Убедитесь, что таблица маршрутов, содержащая определенные пользовательские маршруты, связана с подсетью сетевого интерфейса. Узнайте, как связать таблицу маршрутов с подсетью.
Убедитесь, что такие устройства, как VPN-шлюз Azure и виртуальные сетевые устройства, развернуты и находятся в рабочем состоянии. Используйте возможности диагностики VPN в службе "Наблюдатель за сетями", чтобы выявить проблемы с VPN-шлюзом Azure.
Если у вас по-прежнему возникают проблемы с взаимодействием, ознакомьтесь с рекомендациями и дополнительными диагнозами.
Рекомендации
При устранении проблем с подключениями необходимо учитывать следующие аспекты.
Маршрутизация использует принцип наибольшего совпадения префикса (LPM) для определения оптимального маршрута среди системных маршрутов, BGP и пользовательских маршрутов. Если несколько маршрутов используют одно и то же совпадение LPM, Azure выбирает один из них в соответствии с порядком приоритета в обзоре маршрутизации. Действующие маршруты отображают только маршруты, соответствующие LPM, что упрощает определение и устранение неполадок маршрутов, влияющих на связь с виртуальной машиной.
Если настраиваемые маршруты направляют трафик к виртуальному сетевому устройству (NVA) с виртуальным устройством в качестве типа следующего прыжка, убедитесь, что IP-пересылка NVA включена; в противном случае пакеты удаляются. Узнайте, как включить IP-пересылку для сетевого интерфейса и настроить операционную систему или приложение NVA для пересылки трафика.
Если создается маршрут 0.0.0.0/0/0, весь исходящий интернет-трафик направляется к указанному следующему прыжку, например к NVA или VPN-шлюзу. Создание таких маршрутов часто называют принудительным туннелированием. Удаленные подключения с помощью протоколов RDP или SSH из Интернета к виртуальной машине могут не работать с этим маршрутом в зависимости от того, как следующий прыжок обрабатывает трафик. Принудительное туннелирование можно включить:
- При использовании VPN типа "сеть – сеть," создавайте маршрут с типом следующего перехода VPN-шлюз. Узнайте больше о настройке принудительного туннелирования.
- Если маршрут 0.0.0.0/0 (маршрут по умолчанию) объявляется по протоколу BGP через шлюз виртуальной сети при использовании VPN типа "сеть — сеть" или канала ExpressRoute. Узнайте больше об использовании протокола BGP с VPN типа "сеть — сеть" или ExpressRoute.
Чтобы трафик пиринга виртуальной сети правильно работал, системный маршрут с типом следующего прыжка VNet Peering должен существовать для диапазона префиксов пиринговой виртуальной сети. Если такой маршрут не существует, а связь пиринга виртуальной сети подключена:
Подождите несколько секунд и повторите попытку. Если это недавно установленная пиринговая связь, иногда требуется больше времени, чтобы маршруты распространились на все сетевые интерфейсы в подсети. Чтобы узнать больше о пиринге виртуальных сетей, ознакомьтесь с разделами Пиринг между виртуальными сетями и Создание, изменение и удаление пиринга в виртуальной сети.
Правила группы безопасности сети могут повлиять на связь. Дополнительные сведения см. в разделе Диагностика проблемы с фильтрацией трафика на виртуальной машине.
Хотя Azure назначает маршруты по умолчанию каждому сетевому интерфейсу Azure, если к виртуальной машине подключено несколько сетевых интерфейсов, то маршрут по умолчанию (0.0.0.0/0) назначается только основному сетевому интерфейсу или шлюзу в операционной системе виртуальной машины. Узнайте, как создать маршрут по умолчанию для дополнительных сетевых интерфейсов, подключенных к виртуальной машине Windows или Linux. Узнайте больше об основных и дополнительных сетевых интерфейсах.
Дополнительные диагностики
Чтобы выполнить быстрый тест для определения типа следующего прыжка для трафика, предназначенного для определенного расположения, используйте функцию следующего прыжка службы "Наблюдатель за сетями Azure". Указывает тип следующего узла для трафика, направленного к указанному адресу.
Если нет маршрутов, вызывающих сбой сетевого взаимодействия виртуальной машины, проблема может возникнуть из-за программного обеспечения брандмауэра, работающего в операционной системе виртуальной машины.
Если вы принудительно туннелируете трафик на локальное устройство через VPN-шлюз или NVA, возможно, вы не сможете подключиться к виртуальной машине из Интернета в зависимости от того, как настроена маршрутизация для устройств. Убедитесь, что маршрутизация, настроенная для трафика устройства, направляется на общедоступный или частный IP-адрес виртуальной машины.
Используйте функцию устранения неполадок подключения службы "Наблюдатель за сетями", чтобы обнаружить причины проблем с исходящей связью, такие как маршрутизация, фильтрация и работа ОС.
Следующие шаги
Узнайте больше о всех задачах, свойствах и параметрах для маршрутов и таблицы маршрутов.
Узнайте о всех типах следующего прыжка, системных маршрутах и способах выбора маршрута в Azure.