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.
- Uruchamianie przechwytywania pakietów
- Zatrzymywanie przechwytywania pakietów
- Usuwanie przechwytywania pakietów
- Pobieranie 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 AzureNetworkWatcherExtension
zestawu 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