Aracılığıyla paylaş


PowerShell kullanarak Azure Ağ İzleyicisi ile Sanal makine ölçek kümesinde paket yakalamalarını yönetme

Ağ İzleyicisi paket yakalama, sanal makine ölçek kümesi örneklerine/örneklerine gelen ve bu örneklerden gelen trafiği izlemek için yakalama oturumları oluşturmanıza olanak tanır. Yalnızca istediğiniz trafiği yakalamanızı sağlamak için yakalama oturumu için filtreler sağlanır. Paket yakalama, ağ anomalilerini hem reaktif hem de proaktif olarak tanılamaya yardımcı olur. Diğer kullanım alanları arasında ağ istatistikleri toplama, ağ yetkisiz erişimleri hakkında bilgi edinme, istemci-sunucu iletişiminde hata ayıklama ve çok daha fazlası yer alır. Paket yakalamalarını uzaktan tetikleyebilmek, istenen sanal makine ölçek kümesi örneklerinde el ile paket yakalama çalıştırma yükünü kolaylaştırır ve bu da değerli zaman kazandırır.

Bu makale, şu anda paket yakalama için kullanılabilen farklı yönetim görevlerine göz atar.

Başlamadan önce

Bu makalede aşağıdaki kaynaklara sahip olduğunuz varsayılır:

  • Paket yakalama oluşturmak istediğiniz bölgedeki Ağ İzleyicisi örneği

Önemli

Paket yakalama için bir sanal makine ölçek kümesi uzantısı AzureNetworkWatcherExtensiongerekir. Uzantıyı bir Windows VM'sine yüklemek için Windows için Azure Ağ İzleyicisi Aracısı sanal makine uzantısı ve Linux VM için Linux için Azure Ağ İzleyicisi Agent sanal makine uzantısı'nı ziyaret edin.

Sanal makine ölçek kümesi uzantısını yükleme

Adım 1

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

2. Adım

sanal makine ölçek kümesine/sanal makine ölçek kümesi örneğine/örneklerine networkWatcherAgent yükleme

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.

3. Adım

Aracının yüklendiğinden emin olmak için 1. Adım'ı izleyin

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

Paket yakalamayı başlatma

Önceki adımlar tamamlandıktan sonra paket yakalama aracısı sanal makine ölçek kümesine yüklenir.

1. Adım

Sonraki adım, Ağ İzleyicisi örneğini almaktır. Bu değişken, 4. adımda cmdlet'ine New-AzNetworkWatcherPacketCapture geçirilir.

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

2. Adım

Bir depolama hesabı alın. Bu depolama hesabı paket yakalama dosyasını depolamak için kullanılır.

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

3. Adım

Filtreler, paket yakalama tarafından depolanan verileri sınırlamak için kullanılabilir. Aşağıdaki örnek iki filtre ayarlar. Bir filtre yalnızca yerel IP 10.0.0.3'ten 20, 80 ve 443 hedef bağlantı noktalarına giden TCP trafiğini toplar. İkinci filtre yalnızca UDP trafiğini toplar.

$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

Not

Paket yakalama için birden çok filtre tanımlanabilir.

Adım 4

Paket yakalama için Kapsam Oluşturma

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

5. Adım

New-AzNetworkWatcherPacketCaptureV2 Önceki adımlarda alınan gerekli değerleri geçirerek paket yakalama işlemini başlatmak için cmdlet'ini çalıştırın.


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

Paket yakalama alma

cmdlet'ini Get-AzNetworkWatcherPacketCapture çalıştırmak, çalışmakta olan veya tamamlanmış bir paket yakalama durumunu alır.

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

Aşağıdaki örnek, cmdlet'in çıkışıdır Get-AzNetworkWatcherPacketCapture . Aşağıdaki örnek, yakalama tamamlandıktan sonradır. PacketCaptureStatus değeri, StopReason of TimeExceeded değeriyle Durduruldu değeridir. Bu değer, paket yakalama işleminin başarılı olduğunu ve zamanını çalıştırdığını gösterir.

Name                    : PacketCaptureTest
Id                      : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatcher
                          s/NetworkWatcher_westcentralus/packetCaptures/PacketCaptureTest
Etag                    : W/"4b9a81ed-dc63-472e-869e-96d7166ccb9b"
ProvisioningState       : Succeeded
Target                  : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm1
BytesToCapturePerPacket : 0
TotalBytesPerSession    : 1073741824
TimeLimitInSeconds      : 60
StorageLocation         : {
                            "StorageId": "/subscriptions/00000000-0000-0000-0000-000000000000/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      : []

Paket yakalamayı durdurma

Cmdlet çalıştırılarak Stop-AzNetworkWatcherPacketCapture , devam eden bir yakalama oturumu varsa durdurulur.

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

Not

Cmdlet, çalışmakta olan bir yakalama oturumunda veya zaten durdurulmuş olan mevcut bir oturumda çalıştırıldığında yanıt döndürmez.

Paket yakalamayı silme

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

Not

Paket yakalama silindiğinde depolama hesabındaki dosya silinmez.

Paket yakalamayı indirme

Paket yakalama oturumunuz tamamlandıktan sonra, yakalama dosyası blob depolamaya veya örnek/örneklerde yerel bir dosyaya yüklenebilir. Paket yakalamanın depolama konumu, oturumun oluşturulması sırasında tanımlanır. Depolama hesabına kaydedilen bu yakalama dosyalarına erişmek için kullanışlı bir araç Microsoft Azure Depolama Gezgini ve buradan indirilebilir:https://storageexplorer.com/

Bir depolama hesabı belirtilirse paket yakalama dosyaları aşağıdaki konumdaki bir depolama hesabına kaydedilir:

Birden çok örnek seçiliyse

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

Tek örnek seçiliyse

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

Sonraki adımlar

IP akışını doğrulamayı denetle'yi ziyaret ederek VM'nizde belirli trafiğe izin verilip verilmediğini bulma