Диагностика проблемы маршрутизации сети виртуальных машин с помощью PowerShell
В этой статье вы узнаете, как использовать средство следующего прыжка Azure Наблюдатель за сетями для устранения неполадок и диагностики проблемы маршрутизации виртуальной машины, которая препятствует правильному взаимодействию с другими ресурсами.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Azure Cloud Shell или Azure PowerShell.
Действия, описанные в этой статье, выполняют командлеты Azure PowerShell в интерактивном режиме в Azure Cloud Shell. Чтобы запустить командлеты в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать", чтобы скопировать код, а затем вставьте его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure.
Вы также можете установить Azure PowerShell локально для выполнения командлетов. Запустите Get-Module -ListAvailable Az , чтобы найти установленную версию. При локальном запуске PowerShell войдите в Azure с помощью командлета Connect-AzAccount .
Создание виртуальной машины
Прежде чем создать виртуальную машину, создайте группу ресурсов, которая будет содержать эту виртуальную машину. Создайте группу ресурсов с помощью командлета New-AzResourceGroup. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.
New-AzResourceGroup -Name myResourceGroup -Location EastUS
Создайте виртуальную машину с помощью команды New-AzVM. При выполнении этого шага будут запрошены учетные данные. В качестве вводимых значений указываются имя пользователя и пароль для виртуальной машины.
$vM = New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVm" `
-Location "East US"
Создание виртуальной машины занимает несколько минут. Не приступайте к дальнейшим инструкциям, пока не завершится создание виртуальной машины и PowerShell не вернет выходные данные.
Тестирование взаимодействия по сети
Чтобы проверить сетевое подключение с помощью Наблюдателя за сетями, сначала включите Наблюдатель за сетями в регионе, где размещается тестируемая виртуальная машина. Затем примените в Наблюдателе за сетями возможность следующего прыжка.
Включение Наблюдателя за сетями
Если Наблюдатель за сетями уже включен в регионе "Восточная часть США", получите его экземпляр с помощью командлета Get-AzNetworkWatcher. В следующем примере извлекается существующий Наблюдатель за сетями с именем NetworkWatcher_eastus, размещенный в группе ресурсов NetworkWatcherRG:
$networkWatcher = Get-AzNetworkWatcher `
-Name NetworkWatcher_eastus `
-ResourceGroupName NetworkWatcherRG
Если Наблюдатель за сетями еще не включен в регионе "Восточная часть США", создайте его с помощью командлета New-AzNetworkWatcher:
$networkWatcher = New-AzNetworkWatcher `
-Name "NetworkWatcher_eastus" `
-ResourceGroupName "NetworkWatcherRG" `
-Location "East US"
Использование следующего прыжка
Azure автоматически создает маршруты к пунктам назначения по умолчанию. Вы можете создать настраиваемые маршруты, которые переопределяют маршруты по умолчанию. В некоторых случаях настраиваемые маршруты могут привести к сбою связи. Чтобы проверить маршрутизацию из виртуальной машины, выполните команду Get-AzNetworkWatcherNextHop для определения следующего прыжка маршрутизации при поступлении трафика на определенный адрес.
Проверьте исходящее подключение виртуальной машины по любому из IP-адресов сайта www.bing.com:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 13.107.21.200
Через несколько секунд вы получите результат, где указано, что nextHopType имеет значение Интернет, а routeTableId — Системный маршрут. Из этого результата вы узнаете, что существует допустимый системный маршрут к назначению.
Проверьте исходящее подключение виртуальной машины к адресу 172.31.0.100:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 172.31.0.100
Возвращенный результат сообщает, что nextHopType имеет значение Нет, а routeTableId — Системный маршрут. Так мы узнаем, что, хотя есть допустимый системный маршрут к месту назначения, следующий прыжок для маршрутизации трафика в пункт назначения отсутствует.
Просмотр сведений о маршруте
Чтобы проанализировать маршрутизацию дальше, просмотрите действующие маршруты для сетевого интерфейса, выполнив команду Get-AzEffectiveRouteTable:
Get-AzEffectiveRouteTable `
-NetworkInterfaceName myVm `
-ResourceGroupName myResourceGroup |
Format-table
Возвращаются выходные данные, содержащие следующий текст:
Name State Source AddressPrefix NextHopType NextHopIpAddress
---- ----- ------ ------------- ----------- ----------------
Active Default {192.168.0.0/16} VnetLocal {}
Active Default {0.0.0.0/0} Internet {}
Active Default {10.0.0.0/8} None {}
Active Default {100.64.0.0/10} None {}
Active Default {172.16.0.0/12} None {}
Как можно увидеть в предыдущих выходных данных, маршрут с префиксом адреса0.0.0.0/0 перенаправляет весь трафик, не предназначенный для адресов в пределах префиксов адресов другого маршрута, с помощью прыжка Интернета. Кроме того, как можно увидеть в выходных данных, хотя есть маршрут по умолчанию к префиксу 172.16.0.0/12, который включает адрес 172.31.0.100, nextHopType имеет значение Нет. Azure создает маршрут по умолчанию 172.16.0.0/12, но не указывает тип следующего прыжка, пока для этого не возникнут основания. Если, например, добавить диапазон адресов 172.16.0.0/12 в адресное пространство виртуальной сети, Azure изменит nextHopType для маршрута на Виртуальная сеть. Затем проверка отобразит Виртуальная сеть в качестве значения nextHopType.
Очистка ресурсов
Вы можете удалить ненужную группу ресурсов и все содержащиеся в ней ресурсы с помощью командлета Remove-AzResourceGroup:
Remove-AzResourceGroup -Name myResourceGroup -Force
Следующие шаги
В этой статье вы создали виртуальную машину и выполнили диагностику сетевой маршрутизации из виртуальной машины. Вы узнали, что Azure создает несколько маршрутов по умолчанию и тестирует маршрутизацию в два разные пункта назначения. Дополнительные сведения см. в статье Маршрутизация трафика в виртуальной сети и разделе Создание маршрута.
Для исходящих подключений виртуальной машины можно определить задержку, разрешенный и запрещенный сетевой трафик между виртуальной машиной и конечной точкой с помощью функции устранения неполадок с подключениями Наблюдателя за сетями. Вы можете отслеживать обмен данными между виртуальной машиной и конечной точкой, например IP-адресом или URL-адресом с течением времени с помощью возможности монитора подключения Наблюдатель за сетями. Дополнительные сведения см. в разделе "Мониторинг сетевого подключения".