Udostępnij za pośrednictwem


Zarządzanie przechwytywaniem pakietów w zestawie skalowania maszyn wirtualnych za pomocą usługi Azure Network Watcher przy użyciu programu PowerShell

Przechwytywanie pakietów usługi Network Watcher umożliwia tworzenie sesji przechwytywania w celu śledzenia ruchu do i z wystąpienia zestawu skalowania maszyn wirtualnych. Filtry są udostępniane dla sesji przechwytywania, aby zapewnić przechwycenie tylko żądanego ruchu. Przechwytywanie pakietów pomaga diagnozować anomalie sieci, zarówno reaktywnie, jak i aktywnie. Inne zastosowania obejmują zbieranie statystyk sieciowych, uzyskiwanie informacji na temat włamań sieciowych, debugowanie komunikacji między klientem a serwerem i wiele innych. Możliwość zdalnego wyzwalania przechwytywania pakietów ułatwia ręczne uruchamianie przechwytywania pakietów w żądanym wystąpieniu zestawu skalowania maszyn wirtualnych, co pozwala zaoszczędzić cenny czas.

W tym artykule przedstawiono różne zadania zarządzania, które są obecnie dostępne do przechwytywania pakietów.

Zanim rozpoczniesz

W tym artykule założono, że masz następujące zasoby:

  • Wystąpienie usługi Network Watcher w regionie, w którym chcesz utworzyć przechwytywanie pakietów

Ważne

Przechwytywanie pakietów wymaga rozszerzenia AzureNetworkWatcherExtensionzestawu skalowania maszyn wirtualnych. Aby zainstalować rozszerzenie na maszynie wirtualnej z systemem Windows, odwiedź stronę Rozszerzenie maszyny wirtualnej agenta usługi Azure Network Watcher dla systemu Windows i maszyny wirtualnej z systemem Linux, odwiedź stronę Rozszerzenie maszyny wirtualnej agenta usługi Azure Network Watcher dla systemu Linux.

Instalowanie rozszerzenia zestawu skalowania maszyn wirtualnych

Krok 1

$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Krok 2

Instalowanie agenta networkWatcherAgent w zestawie skalowania maszyn wirtualnych/wystąpieniach zestawu skalowania maszyn wirtualnych

Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "AzureNetworkWatcherExtension" -Publisher "Microsoft.Azure.NetworkWatcher" -Type "NetworkWatcherAgentWindows" -TypeHandlerVersion "1.4" -AutoUpgradeMinorVersion $True

Update-AzVmss -ResourceGroupName "$resourceGroupName" -Name $virtualMachineScaleSetName -VirtualMachineScaleSet $vmss
Update-AzVmssInstance -ResourceGroupName "$resourceGroupName" -VMScaleSetName $vmss.Name -InstanceId 0
> The `Set-AzVMExtension` cmdlet may take several minutes to complete.

Krok 3

Aby upewnić się, że agent jest zainstalowany, wykonaj krok 1

Get-AzVMss -ResourceGroupName $vmss.ResourceGroupName  -VMNScaleSetName $vmss.Name

Uruchamianie przechwytywania pakietów

Po wykonaniu powyższych kroków agent przechwytywania pakietów jest instalowany w zestawie skalowania maszyn wirtualnych.

Krok 1

Następnym krokiem jest pobranie wystąpienia usługi Network Watcher. Ta zmienna jest przekazywana do New-AzNetworkWatcherPacketCapture polecenia cmdlet w kroku 4.

$networkWatcher = Get-AzNetworkWatcher  | Where {$_.Location -eq "westcentralus" }

Krok 2

Pobieranie konta magazynu. To konto magazynu służy do przechowywania pliku przechwytywania pakietów.

$storageAccount = Get-AzStorageAccount -ResourceGroupName testrg -Name testrgsa123

Krok 3

Filtry mogą służyć do ograniczania danych przechowywanych przez przechwytywanie pakietów. Poniższy przykład konfiguruje dwa filtry. Jeden filtr zbiera wychodzący ruch TCP tylko z lokalnego adresu IP 10.0.0.3 do portów docelowych 20, 80 i 443. Drugi filtr zbiera tylko ruch UDP.

$filter1 = New-AzPacketCaptureFilterConfig -Protocol TCP -RemoteIPAddress "1.1.1.1-255.255.255.255" -LocalIPAddress "10.0.0.3" -LocalPort "1-65535" -RemotePort "20;80;443"
$filter2 = New-AzPacketCaptureFilterConfig -Protocol UDP

Uwaga

Na potrzeby przechwytywania pakietów można zdefiniować wiele filtrów.

Krok 4

Tworzenie zakresu przechwytywania pakietów

$s1 = New-AzPacketCaptureScopeConfig -Include "0", "1"

Krok 5

Uruchom polecenie cmdlet, New-AzNetworkWatcherPacketCaptureV2 aby rozpocząć proces przechwytywania pakietów, przekazując wymagane wartości pobrane w poprzednich krokach.


New-AzNetworkWatcherPacketCaptureV2 -NetworkWatcher $networkwatcher -PacketCaptureName $pcName -TargetId $vmss.Id -TargetType "azurevmss" -StorageAccountId $storageAccount.id -Filter $filter1, $filter2

Pobieranie przechwytywania pakietów

Get-AzNetworkWatcherPacketCapture Uruchomienie polecenia cmdlet pobiera stan aktualnie uruchomionego lub ukończonego przechwytywania pakietów.

Get-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"

Poniższy przykład to dane wyjściowe polecenia Get-AzNetworkWatcherPacketCapture cmdlet . Poniższy przykład jest po zakończeniu przechwytywania. Wartość PacketCaptureStatus to Stopped z wartością StopReason timeExceeded. Ta wartość pokazuje, że przechwytywanie pakietów zakończyło się pomyślnie i trwało jego czas.

Name                    : PacketCaptureTest
Id                      : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatcher
                          s/NetworkWatcher_westcentralus/packetCaptures/PacketCaptureTest
Etag                    : W/"4b9a81ed-dc63-472e-869e-96d7166ccb9b"
ProvisioningState       : Succeeded
Target                  : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm1
BytesToCapturePerPacket : 0
TotalBytesPerSession    : 1073741824
TimeLimitInSeconds      : 60
StorageLocation         : {
                            "StorageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/Microsoft.Storage/storageA
                          ccounts/examplestorage",
                            "StoragePath": "https://examplestorage.blob.core.windows.net/network-watcher-logs/subscriptions/00000000-0000-0000-0000-00000
                          0000000/resourcegroups/testrg/providers/microsoft.compute/virtualmachines/testvm1/2017/02/01/packetcapture_22_42_48_238.cap"
                          }
Filters                 : [
                            {
                              "Protocol": "TCP",
                              "RemoteIPAddress": "1.1.1.1-255.255.255",
                              "LocalIPAddress": "10.0.0.3",
                              "LocalPort": "1-65535",
                              "RemotePort": "20;80;443"
                            },
                            {
                              "Protocol": "UDP",
                              "RemoteIPAddress": "",
                              "LocalIPAddress": "",
                              "LocalPort": "",
                              "RemotePort": ""
                            }
                          ]
CaptureStartTime        : 2/1/2017 10:43:01 PM
PacketCaptureStatus     : Stopped
StopReason              : TimeExceeded
PacketCaptureError      : []

Zatrzymywanie przechwytywania pakietów

Stop-AzNetworkWatcherPacketCapture Uruchamiając polecenie cmdlet, jeśli sesja przechwytywania jest w toku, jest zatrzymana.

Stop-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"

Uwaga

Polecenie cmdlet nie zwraca żadnej odpowiedzi po uruchomieniu aktualnie uruchomionej sesji przechwytywania lub istniejącej sesji, która została już zatrzymana.

Usuwanie przechwytywania pakietów

Remove-AzNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName "PacketCaptureTest"

Uwaga

Usunięcie przechwytywania pakietów nie powoduje usunięcia pliku na koncie magazynu.

Pobieranie przechwytywania pakietów

Po zakończeniu sesji przechwytywania pakietów plik przechwytywania można przekazać do magazynu obiektów blob lub do pliku lokalnego w wystąpieniach/s. Lokalizacja przechowywania przechwytywania pakietów jest definiowana podczas tworzenia sesji. Wygodne narzędzie do uzyskiwania dostępu do tych plików przechwytywania zapisanych na koncie magazynu jest Eksplorator usługi Microsoft Azure Storage, które można pobrać tutaj:https://storageexplorer.com/

Jeśli określono konto magazynu, pliki przechwytywania pakietów są zapisywane na koncie magazynu w następującej lokalizacji:

Jeśli wybrano wiele wystąpień

https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachinescalesets/{VMSSName}/{year}/{month}/{day}/packetCapture_{creationTime}

W przypadku wybrania pojedynczego wystąpienia

https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachinescalesets/{VMSSName}/virtualMachines/{instance}/{year}/{month}/{day}/packetCapture_{creationTime}.cap

Następne kroki

Sprawdź, czy określony ruch jest dozwolony na maszynie wirtualnej lub poza maszyną wirtualną, odwiedzając stronę Sprawdzanie weryfikacji przepływu adresów IP