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ı AzureNetworkWatcherExtension
gerekir. 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