Memecahkan masalah koneksi keluar menggunakan PowerShell

Dalam artikel ini, Anda mempelajari cara menggunakan fitur pemecahan masalah koneksi Azure Network Watcher untuk mendiagnosis dan memecahkan masalah konektivitas. Untuk informasi selengkapnya tentang pemecahan masalah koneksi, lihat gambaran umum pemecahan masalah Koneksi ion.

Prasyarat

  • Akun Azure dengan langganan aktif. Buat akun secara gratis.

  • Network Watcher diaktifkan di wilayah komputer virtual (VM) yang ingin Anda pecahkan masalahnya. Secara default, Azure mengaktifkan Network Watcher di wilayah saat Anda membuat jaringan virtual di dalamnya. Untuk informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan Azure Network Watcher.

  • Komputer virtual dengan ekstensi VM agen Network Watcher terinstal di atasnya dan memiliki konektivitas TCP keluar berikut:

    • ke 169.254.169.254 melalui port 80
    • ke 168.63.129.16 melalui port 8037
  • Komputer virtual kedua dengan konektivitas TCP masuk dari 168.63.129.16 melalui port yang sedang diuji (untuk uji diagnostik pemindai port).

  • Azure Cloud Shell atau Azure PowerShell.

    Langkah-langkah dalam artikel ini menjalankan cmdlet Azure PowerShell secara interaktif di Azure Cloud Shell. Untuk menjalankan perintah di Cloud Shell, pilih Buka Cloud Shell di sudut kanan atas blok kode. Pilih Salin untuk menyalin kode lalu tempelkan ke Cloud Shell untuk menjalankannya. Anda juga dapat menjalankan Cloud Shell dari dalam portal Azure.

    Anda juga dapat menginstal Azure PowerShell secara lokal untuk menjalankan cmdlet. Artikel ini memerlukan modul Az PowerShell. Untuk informasi selengkapnya, lihat Cara menginstal Azure PowerShell. Untuk menemukan versi yang terinstal, jalankan Get-InstalledModule -Name Az. Jika Anda menjalankan PowerShell secara lokal, masuk ke Azure menggunakan cmdlet Koneksi-AzAccount.

Catatan

Memeriksa konektivitas ke komputer virtual

Contoh ini memeriksa koneksi ke komputer virtual tujuan melalui port 80. Contoh ini mengharuskan Anda mengaktifkan Network Watcher di wilayah yang berisi VM sumber.

Contoh

$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"
$destVMName = "Database0"

$RG = Get-AzResourceGroup -Name $rgName

$VM1 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName
$VM2 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $destVMName

$networkWatcher = Get-AzNetworkWatcher | Where-Object -Property Location -EQ -Value $VM1.Location 

Test-AzNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationId $VM2.Id -DestinationPort 80

Respons

Respons berikut berasal dari contoh sebelumnya. Dalam respons ini, ConnectionStatus bersifat Tidak Dapat Dijangkau. Anda dapat melihat bahwa semua penyelidikan yang dikirim gagal. Konektivitas gagal pada appliance virtual karena NetworkSecurityRule yang dikonfigurasi pengguna bernama UserRule_Port80, dikonfigurasi untuk memblokir lalu lintas masuk pada port 80. Informasi ini dapat digunakan untuk meneliti masalah koneksi.

ConnectionStatus : Unreachable
AvgLatencyInMs   : 
MinLatencyInMs   : 
MaxLatencyInMs   : 
ProbesSent       : 100
ProbesFailed     : 100
Hops             : [
                     {
                       "Type": "Source",
                       "Id": "c5222ea0-3213-4f85-a642-cee63217c2f3",
                       "Address": "10.1.1.4",
                       "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGrou
                   ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurat
                   ions/ipconfig1",
                       "NextHopIds": [
                         "9283a9f0-cc5e-4239-8f5e-ae0f3c19fbaa"
                       ],
                       "Issues": []
                     },
                     {
                       "Type": "VirtualAppliance",
                       "Id": "9283a9f0-cc5e-4239-8f5e-ae0f3c19fbaa",
                       "Address": "10.1.2.4",
                       "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGrou
                   ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/fwNic/ipConfiguratio
                   ns/ipconfig1",
                       "NextHopIds": [
                         "0f1500cd-c512-4d43-b431-7267e4e67017"
                       ],
                       "Issues": []
                     },
                     {
                       "Type": "VirtualAppliance",
                       "Id": "0f1500cd-c512-4d43-b431-7267e4e67017",
                       "Address": "10.1.3.4",
                       "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGrou
                   ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/auNic/ipConfiguratio
                   ns/ipconfig1",
                       "NextHopIds": [
                         "a88940f8-5fbe-40da-8d99-1dee89240f64"
                       ],
                       "Issues": [
                         {
                           "Origin": "Outbound",
                           "Severity": "Error",
                           "Type": "NetworkSecurityRule",
                           "Context": [
                             {
                               "key": "RuleName",
                               "value": "UserRule_Port80"
                             }
                           ]
                         }
                       ]
                     },
                     {
                       "Type": "VnetLocal",
                       "Id": "a88940f8-5fbe-40da-8d99-1dee89240f64",
                       "Address": "10.1.4.4",
                       "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGrou
                   ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/dbNic0/ipConfigurati
                   ons/ipconfig1",
                       "NextHopIds": [],
                       "Issues": []
                     }
                   ]

Memvalidasi masalah perutean

Contohn ini memeriksa konektivitas antara komputer virtual dan titik akhir jarak jauh. Contoh ini mengharuskan Anda mengaktifkan Network Watcher di wilayah yang berisi VM sumber.

Contoh

$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"

$RG = Get-AzResourceGroup -Name $rgName
$VM1 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName

$networkWatcher = Get-AzNetworkWatcher | Where-Object -Property Location -EQ -Value $VM1.Location 

Test-AzNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress 13.107.21.200 -DestinationPort 80

Respons

Dalam contoh berikut, ConnectionStatus ditunjukkan sebagai Tidak Dapat Dijangkau. Dalam detail Hops, Anda dapat melihat di bawah Issues bahwa lalu lintas diblokir karena UserDefinedRoute.

ConnectionStatus : Unreachable
AvgLatencyInMs   : 
MinLatencyInMs   : 
MaxLatencyInMs   : 
ProbesSent       : 100
ProbesFailed     : 100
Hops             : [
                     {
                       "Type": "Source",
                       "Id": "b4f7bceb-07a3-44ca-8bae-adec6628225f",
                       "Address": "10.1.1.4",
                       "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
                       "NextHopIds": [
                         "3fee8adf-692f-4523-b742-f6fdf6da6584"
                       ],
                       "Issues": [
                         {
                           "Origin": "Outbound",
                           "Severity": "Error",
                           "Type": "UserDefinedRoute",
                           "Context": [
                             {
                               "key": "RouteType",
                               "value": "User"
                             }
                           ]
                         }
                       ]
                     },
                     {
                       "Type": "Destination",
                       "Id": "3fee8adf-692f-4523-b742-f6fdf6da6584",
                       "Address": "13.107.21.200",
                       "ResourceId": "Unknown",
                       "NextHopIds": [],
                       "Issues": []
                     }
                   ]

Memeriksa latensi situs web

Contoh berikut memeriksa konektivitas ke situs web. Contoh ini mengharuskan Anda mengaktifkan Network Watcher di wilayah yang berisi VM sumber.

Contoh

$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"

$RG = Get-AzResourceGroup -Name $rgName
$VM1 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName

$networkWatcher = Get-AzNetworkWatcher | Where-Object -Property Location -EQ -Value $VM1.Location 


Test-AzNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress https://bing.com/

Respons

Dalam respons berikut, Anda dapat melihat ConnectionStatus ditunjukkan sebagai Dapat Dijangkau. Saat koneksi berhasil, nilai latensi diberikan.

ConnectionStatus : Reachable
AvgLatencyInMs   : 1
MinLatencyInMs   : 0
MaxLatencyInMs   : 7
ProbesSent       : 100
ProbesFailed     : 0
Hops             : [
                     {
                       "Type": "Source",
                       "Id": "1f0e3415-27b0-4bf7-a59d-3e19fb854e3e",
                       "Address": "10.1.1.4",
                       "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
                       "NextHopIds": [
                         "f99f2bd1-42e8-4bbf-85b6-5d21d00c84e0"
                       ],
                       "Issues": []
                     },
                     {
                       "Type": "Internet",
                       "Id": "f99f2bd1-42e8-4bbf-85b6-5d21d00c84e0",
                       "Address": "204.79.197.200",
                       "ResourceId": "Internet",
                       "NextHopIds": [],
                       "Issues": []
                     }
                   ]

Memeriksa konektivitas ke titik akhir penyimpanan

Contoh berikut memeriksa konektivitas dari komputer virtual ke akun penyimpanan blog. Contoh ini mengharuskan Anda mengaktifkan Network Watcher di wilayah yang berisi VM sumber.

Contoh

$rgName = "ContosoRG"
$sourceVMName = "MultiTierApp0"

$RG = Get-AzResourceGroup -Name $rgName

$VM1 = Get-AzVM -ResourceGroupName $rgName | Where-Object -Property Name -EQ $sourceVMName

$networkWatcher = Get-AzNetworkWatcher | Where-Object -Property Location -EQ -Value $VM1.Location

Test-AzNetworkWatcherConnectivity -NetworkWatcher $networkWatcher -SourceId $VM1.Id -DestinationAddress https://contosostorageexample.blob.core.windows.net/ 

Respons

Json berikut adalah respon contoh dari menjalankan cmdlet sebelumnya. Karena tujuannya dapat dijangkau, properti ConnectionStatus menunjukkan sebagai Dapat Dijangkau. Anda diberikan detail mengenai jumlah hop yang diperlukan untuk mencapai blob penyimpanan dan latensi.

ConnectionStatus : Reachable
AvgLatencyInMs   : 1
MinLatencyInMs   : 0
MaxLatencyInMs   : 8
ProbesSent       : 100
ProbesFailed     : 0
Hops             : [
                     {
                       "Type": "Source",
                       "Id": "9e7f61d9-fb45-41db-83e2-c815a919b8ed",
                       "Address": "10.1.1.4",
                       "ResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurations/ipconfig1",
                       "NextHopIds": [
                         "1e6d4b3c-7964-4afd-b959-aaa746ee0f15"
                       ],
                       "Issues": []
                     },
                     {
                       "Type": "Internet",
                       "Id": "1e6d4b3c-7964-4afd-b959-aaa746ee0f15",
                       "Address": "13.71.200.248",
                       "ResourceId": "Internet",
                       "NextHopIds": [],
                       "Issues": []
                     }
                   ]

Langkah selanjutnya