Поделиться через


Краткое руководство. Диагностика проблемы фильтра сетевого трафика виртуальной машины с помощью Azure CLI

В этом кратком руководстве вы развертываете виртуальную машину и используете Наблюдатель за сетями IP-поток проверки подключения к разным IP-адресам и из разных IP-адресов. Используя результаты проверки IP-потока, вы определяете правило безопасности, блокирующее трафик и вызывающее сбой связи, и узнайте, как его можно устранить. Вы также узнаете, как использовать действующие правила безопасности для сетевого интерфейса, чтобы определить, почему правило безопасности разрешает или запрещает трафик.

На схеме показаны ресурсы, созданные в Наблюдатель за сетями кратком руководстве.

Если у вас нет подписки 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 или более поздней. При локальном запуске Azure CLI войдите в Azure с помощью команды az login .

Создание виртуальной машины

В этом разделе описано, как создать виртуальную сеть и подсеть в регионе "Восточная часть США". Затем вы создадите виртуальную машину в подсети с группой безопасности сети по умолчанию.

  1. Создайте группу ресурсов, используя команду az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.

    # Create a resource group.
    az group create --name 'myResourceGroup' --location 'eastus'
    
  2. Создайте виртуальную сеть с помощью команды az network vnet create.

    # Create a virtual network and a subnet.
    az network vnet create --resource-group 'myResourceGroup' --name 'myVNet' --subnet-name 'mySubnet' --subnet-prefixes 10.0.0.0/24 
    
  3. Создайте группу безопасности сети по умолчанию с помощью az network nsg create.

    # Create a default network security group.
    az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
    
  4. Создайте виртуальную машину с помощью команды az vm create. При появлении запроса введите имя пользователя и пароль.

    # Create a Linux virtual machine using the latest Ubuntu 20.04 LTS image.
    az vm create --resource-group 'myResourceGroup' --name 'myVM' --location 'eastus' --vnet-name 'myVNet' --subnet 'mySubnet' --public-ip-address '' --nsg 'myVM-nsg' --image 'Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:latest'
    

Проверка сетевого взаимодействия с помощью проверки IP-потока

В этом разделе описано, как проверить возможность Наблюдатель за сетями ip-потока для проверки сетевого взаимодействия с виртуальной машиной и из нее.

  1. Используйте команду az network watcher test-ip-flow для проверки исходящего трафика от myVM до 13.107.21.200 с помощью проверки ПОТОКА IP (13.107.21.200 является одним из общедоступных IP-адресов, используемых www.bing.com):

    # Start the IP flow verify session to test outbound flow to www.bing.com.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '13.107.21.200:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Через несколько секунд вы получите аналогичные выходные данные в следующем примере:

    Access  RuleName
    ------  --------
    Allow   defaultSecurityRules/AllowInternetOutBound
    

    Результат теста указывает, что доступ разрешен к 13.107.21.200 из-за правила безопасности AllowInternetOutBound по умолчанию. По умолчанию виртуальные машины Azure могут получить доступ к Интернету.

  2. Измените RemoteIPAddress на 10.0.1.10 и повторите тест. 10.0.1.10 — это частный IP-адрес в адресном пространстве myVNet .

    # Start the IP flow verify session to test outbound flow to 10.0.1.10.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '10.0.1.10:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Через несколько секунд вы получите аналогичные выходные данные в следующем примере:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/AllowVnetOutBound
    

    Результат второго теста указывает, что доступ разрешен к 10.0.1.10 из-за правила безопасности AllowVnetOutBound по умолчанию. По умолчанию виртуальная машина Azure может получить доступ ко всем IP-адресам в адресном пространстве своей виртуальной сети.

  3. Измените RemoteIPAddress на 10.10.10.10 и повторите тест. 10.10.10 — это частный IP-адрес, который не находится в адресном пространстве myVNet .

    # Start the IP flow verify session to test outbound flow to 10.10.10.10.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '10.10.10.10:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Через несколько секунд вы получите аналогичные выходные данные в следующем примере:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/DenyAllOutBound
    

    Результат третьего теста указывает, что доступ запрещен в 10.10.10.10 из-за правила безопасности DenyAllOutBound по умолчанию.

  4. Измените направление на входящий трафик, локальный порт на 80 и удаленный порт на 60000, а затем повторите тест.

    # Start the IP flow verify session to test inbound flow from 10.10.10.10.
    az network watcher test-ip-flow --direction 'inbound' --protocol 'TCP' --local '10.0.0.4:80' --remote '10.10.10.10:6000' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Через несколько секунд вы получите аналогичные выходные данные в следующем примере:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/DenyAllInBound
    

    Результат четвертого теста указывает, что доступ запрещен в версии 10.10.10.10 из-за правила безопасности DenyAllInBound по умолчанию. По умолчанию доступ ко всей виртуальной машине Azure за пределами виртуальной сети запрещен.

Просмотр сведений о правиле безопасности

Чтобы определить, почему правила в предыдущем разделе разрешают или запрещают обмен данными, просмотрите действующие правила безопасности сетевого интерфейса виртуальной машины myVM с помощью команды az network nic list-effective-nsg :

# Get the effective security rules for the network interface of myVM.
az network nic list-effective-nsg --resource-group 'myResourceGroup' --name 'myVmVMNic'

Возвращаемые выходные данные содержат следующие сведения для правила AllowInternetOutbound , разрешающего исходящий доступ к www.bing.com:

{
  "access": "Allow",
  "destinationAddressPrefix": "Internet",
  "destinationAddressPrefixes": [
	"Internet"
  ],
  "destinationPortRange": "0-65535",
  "destinationPortRanges": [
	"0-65535"
  ],
  "direction": "Outbound",
  "expandedDestinationAddressPrefix": [
	"1.0.0.0/8",
	"2.0.0.0/7",
	"4.0.0.0/9",
	"4.144.0.0/12",
	"4.160.0.0/11",
	"4.192.0.0/10",
	"5.0.0.0/8",
	"6.0.0.0/7",
	"8.0.0.0/7",
	"11.0.0.0/8",
	"12.0.0.0/8",
	"13.0.0.0/10",
	"13.64.0.0/11",
	"13.104.0.0/13",
	"13.112.0.0/12",
	"13.128.0.0/9",
	"14.0.0.0/7",
	...
	...
	...
	"200.0.0.0/5",
	"208.0.0.0/4"
  ],
  "name": "defaultSecurityRules/AllowInternetOutBound",
  "priority": 65001,
  "protocol": "All",
  "sourceAddressPrefix": "0.0.0.0/0",
  "sourceAddressPrefixes": [
	"0.0.0.0/0",
	"0.0.0.0/0"
  ],
  "sourcePortRange": "0-65535",
  "sourcePortRanges": [
	"0-65535"
  ]
},

В выходных данных, которые префикс адреса 13.104.0.0/13 входит в число префиксов адреса правила AllowInternetOutBound. Этот префикс охватывает IP-адрес 13.107.21.200, который использовался для тестирования исходящего взаимодействия www.bing.com.

Аналогичным образом можно проверить другие правила, чтобы просмотреть префиксы исходного и целевого IP-адресов в каждом правиле.

Очистка ресурсов

Если больше не требуется, используйте az group delete для удаления группы ресурсов myResourceGroup и всех ресурсов, содержащихся в ней:

# Delete the resource group and all resources it contains.
az group delete --name 'myResourceGroup' --yes

Следующий шаг