Диагностика проблемы маршрутизации сети виртуальных машин с помощью Azure CLI
В этой статье вы узнаете, как использовать средство следующего прыжка Azure Наблюдатель за сетями для устранения неполадок и диагностики проблемы маршрутизации виртуальных машин, которая не позволяет ему правильно взаимодействовать с другими ресурсами.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Azure Cloud Shell или Azure CLI
Действия, описанные в этой статье, выполняют команды Azure CLI интерактивно в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать ", чтобы скопировать код и вставить его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure.
Вы также можете установить Azure CLI локально для выполнения команд. В этой статье требуется Azure CLI 2.0 или более поздней версии. Выполните команду az --version , чтобы найти установленную версию. При локальном запуске Azure CLI войдите в Azure с помощью команды az login .
Создание виртуальной машины
Прежде чем создать виртуальную машину, создайте группу ресурсов, которая будет содержать эту виртуальную машину. Создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.
az group create --name myResourceGroup --location eastus
Создайте виртуальную машину с помощью команды az vm create. Также команда создает ключи SSH, если они не существуют в расположении ключей по умолчанию. Чтобы использовать определенный набор ключей, используйте параметр --ssh-key-value
. В следующем примере создается виртуальная машина с именем myVM:
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Ubuntu2204 \
--generate-ssh-keys
Создание виртуальной машины занимает несколько минут. Переходите к остальным шагам только после того, как завершится создание виртуальной машины и Azure CLI вернет выходные данные.
Тестирование взаимодействия по сети
Чтобы проверить сетевое подключение с помощью Наблюдателя за сетями, сначала включите Наблюдатель за сетями в регионе, где размещается тестируемая виртуальная машина. Затем примените в Наблюдателе за сетями возможность следующего прыжка.
Включение Наблюдателя за сетями
Если в регионе "Восточная часть США" уже включена служба "Наблюдатель за сетями", перейдите к разделу по использованию следующего прыжка. С помощью команды az network watcher configure создайте Наблюдателя за сетями в регионе "Восточная часть США":
az network watcher configure \
--resource-group NetworkWatcherRG \
--locations eastus \
--enabled
Использование следующего прыжка
Azure автоматически создает маршруты к пунктам назначения по умолчанию. Вы можете создать настраиваемые маршруты, которые переопределяют маршруты по умолчанию. В некоторых случаях настраиваемые маршруты могут привести к сбою связи. Чтобы проверить маршрутизацию из виртуальной машины, выполните команду az network watcher show-next-hop для определения следующего прыжка маршрутизации при поступлении трафика на определенный адрес.
Проверьте исходящее подключение виртуальной машины по любому из IP-адресов сайта www.bing.com:
az network watcher show-next-hop \
--dest-ip 13.107.21.200 \
--resource-group myResourceGroup \
--source-ip 10.0.0.4 \
--vm myVm \
--nic myVmVMNic \
--out table
Через несколько секунд вы получите результат, где указано, что nextHopType имеет значение Интернет, а routeTableId — Системный маршрут. Из этого результата вы узнаете, что существует допустимый системный маршрут к назначению.
Проверьте исходящее подключение виртуальной машины к адресу 172.31.0.100:
az network watcher show-next-hop \
--dest-ip 172.31.0.100 \
--resource-group myResourceGroup \
--source-ip 10.0.0.4 \
--vm myVm \
--nic myVmVMNic \
--out table
Возвращенный результат сообщает, что nextHopType имеет значение Нет, а routeTableId — Системный маршрут. Так мы узнаем, что, хотя есть допустимый системный маршрут к месту назначения, следующий прыжок для маршрутизации трафика в пункт назначения отсутствует.
Просмотр сведений о маршруте
Чтобы проанализировать маршрутизацию дальше, просмотрите действующие маршруты для сетевого интерфейса, выполнив команду az network nic show-effective-route-table:
az network nic show-effective-route-table \
--resource-group myResourceGroup \
--name myVmVMNic
В возвращенные данные включен следующий текст:
{
"additionalProperties": {
"disableBgpRoutePropagation": false
},
"addressPrefix": [
"0.0.0.0/0"
],
"name": null,
"nextHopIpAddress": [],
"nextHopType": "Internet",
"source": "Default",
"state": "Active"
},
При выполнении команды az network watcher show-next-hop
для проверки исходящего подключения по IP-адресу 13.107.21.200 в разделе Использование следующего прыжка маршрут с addressPrefix 0.0.0.0/0** использовался для маршрутизации трафика на адрес, так как другие маршруты в выходных данных не включали адрес. По умолчанию все адреса, не указанные в префиксе адреса другого маршрута, маршрутизируются в Интернет.
Однако при выполнении команды az network watcher show-next-hop
для проверки исходящего подключения по IP-адресу 172.31.0.100 вы узнали, что тип следующего прыжка отсутствовал. В возвращенные данные также включен следующий текст:
{
"additionalProperties": {
"disableBgpRoutePropagation": false
},
"addressPrefix": [
"172.16.0.0/12"
],
"name": null,
"nextHopIpAddress": [],
"nextHopType": "None",
"source": "Default",
"state": "Active"
},
Как можно увидеть в выходных данных выполнения команды az network watcher nic show-effective-route-table
, хотя есть маршрут по умолчанию к префиксу 172.16.0.0/12, который включает адрес 172.31.0.100, nextHopType имеет значение Нет. Azure создает маршрут по умолчанию 172.16.0.0/12, но не указывает тип следующего прыжка, пока для этого не возникнут основания. Если, например, добавить диапазон адресов 172.16.0.0/12 в адресное пространство виртуальной сети, Azure изменит nextHopType для маршрута на Виртуальная сеть. Затем проверка отобразит Виртуальная сеть в качестве значения nextHopType.
Очистка ресурсов
Чтобы удалить ненужную группу ресурсов и все содержащиеся в ней ресурсы, выполните команду az group delete.
az group delete --name myResourceGroup --yes
Следующие шаги
В этой статье вы создали виртуальную машину и выполнили диагностику сетевой маршрутизации из виртуальной машины. Вы узнали, что Azure создает несколько маршрутов по умолчанию и тестирует маршрутизацию в два разные пункта назначения. Дополнительные сведения см. в статье Маршрутизация трафика в виртуальной сети и разделе Создание маршрута.
Для исходящих подключений виртуальной машины можно определить задержку, разрешенный и запрещенный сетевой трафик между виртуальной машиной и конечной точкой с помощью функции устранения неполадок с подключениями Наблюдателя за сетями. Вы можете отслеживать обмен данными между виртуальной машиной и конечной точкой, например IP-адресом или URL-адресом с течением времени с помощью возможности монитора подключения Наблюдатель за сетями. Дополнительные сведения см. в разделе "Мониторинг сетевого подключения".