Diagnozowanie problemu z routingiem sieciowym maszyny wirtualnej przy użyciu programu PowerShell
Z tego artykułu dowiesz się, jak używać narzędzia do następnego przeskoku usługi Azure Network Watcher w celu rozwiązywania i diagnozowania problemu z routingiem maszyny wirtualnej, który uniemożliwia mu prawidłową komunikację z innymi zasobami.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Azure Cloud Shell lub Azure PowerShell.
Kroki opisane w tym artykule uruchamiają interaktywne polecenia cmdlet programu Azure PowerShell w usłudze Azure Cloud Shell. Aby uruchomić polecenia cmdlet w usłudze Cloud Shell, wybierz pozycję Otwórz usługę Cloud Shell w prawym górnym rogu bloku kodu. Wybierz pozycję Kopiuj , aby skopiować kod, a następnie wklej go w usłudze Cloud Shell, aby go uruchomić. Możesz również uruchomić usługę Cloud Shell z poziomu witryny Azure Portal.
Możesz również zainstalować program Azure PowerShell lokalnie , aby uruchomić polecenia cmdlet. Uruchom polecenie Get-Module -ListAvailable Az , aby znaleźć zainstalowaną wersję. Jeśli uruchomisz program PowerShell lokalnie, zaloguj się do platformy Azure przy użyciu polecenia cmdlet Connect-AzAccount .
Tworzenie maszyny wirtualnej
Przed utworzeniem maszyny wirtualnej musisz utworzyć grupę zasobów, która będzie zawierała maszynę wirtualną. Utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup. W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus.
New-AzResourceGroup -Name myResourceGroup -Location EastUS
Utwórz maszynę wirtualną za pomocą polecenia New-AzVM. Podczas wykonywania tego kroku jest wyświetlany monit o poświadczenia. Wprowadzane wartości są konfigurowane jako nazwa użytkownika i hasło dla maszyny wirtualnej.
$vM = New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVm" `
-Location "East US"
W ciągu kilku minut zostanie utworzona maszyna wirtualna. Wykonywanie pozostałych kroków możesz zacząć dopiero wtedy, gdy maszyna wirtualna zostanie utworzona i program PowerShell zwróci dane wyjściowe.
Testowanie komunikacji sieciowej
Aby przetestować komunikację sieciową z usługą Network Watcher, należy najpierw włączyć usługę Network Watcher w regionie, w którym ma być testowa maszyna wirtualna, a następnie użyć funkcji następnego przeskoku usługi Network Watcher w celu przetestowania komunikacji.
Włączanie usługi Network Watcher
Jeśli masz już włączoną usługę Network Watcher w regionie Wschodnie stany USA, użyj polecenia Get-AzNetworkWatcher, aby pobrać usługę Network Watcher . Poniższy przykład pobiera istniejącą usługę Network Watcher o nazwie NetworkWatcher_eastus znajdującą się w grupie zasobów NetworkWatcherRG:
$networkWatcher = Get-AzNetworkWatcher `
-Name NetworkWatcher_eastus `
-ResourceGroupName NetworkWatcherRG
Jeśli usługa Network Watcher nie jest jeszcze włączona w regionie Wschodnie stany USA, użyj polecenia New-AzNetworkWatcher , aby utworzyć obserwatora sieciowego w regionie Wschodnie stany USA:
$networkWatcher = New-AzNetworkWatcher `
-Name "NetworkWatcher_eastus" `
-ResourceGroupName "NetworkWatcherRG" `
-Location "East US"
Korzystanie z funkcji Następny przeskok
Na platformie Azure są automatycznie tworzone trasy do domyślnych miejsc docelowych. Możesz tworzyć trasy niestandardowe zastępujące domyślne trasy. Czasami użycie tras niestandardowych może spowodować niepowodzenie komunikacji. Aby przetestować routing z maszyny wirtualnej, użyj polecenia Get-AzNetworkWatcherNextHop , aby określić następny przeskok routingu, gdy ruch jest przeznaczony dla określonego adresu.
Przetestuj komunikację wychodzącą z maszyny wirtualnej do jednego z adresów IP dla www.bing.com:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 13.107.21.200
Po kilku sekundach dane wyjściowe informują o tym, że wartość NextHopType to Internet, a identyfikator RouteTableId to Trasa systemowa. Ten wynik informuje o tym, że istnieje prawidłowa trasa do miejsca docelowego.
Przetestuj komunikację wychodzącą z maszyny wirtualnej do adresu 172.31.0.100:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 172.31.0.100
Zwrócone dane wyjściowe informują o tym, że wartość None jest wartością NextHopType i że routeTableId jest również trasą systemową. Ten wynik oznacza, że istnieje prawidłowa trasa systemowa do miejsca docelowego, ale nie ma następnego przeskoku umożliwiającego kierowanie ruchu do miejsca docelowego.
Wyświetlanie szczegółów trasy
Aby dokładniej przeanalizować routing, przejrzyj obowiązujące trasy dla interfejsu sieciowego za pomocą polecenia Get-AzEffectiveRouteTable :
Get-AzEffectiveRouteTable `
-NetworkInterfaceName myVm `
-ResourceGroupName myResourceGroup |
Format-table
Zwracane są dane wyjściowe zawierające następujący tekst:
Name State Source AddressPrefix NextHopType NextHopIpAddress
---- ----- ------ ------------- ----------- ----------------
Active Default {192.168.0.0/16} VnetLocal {}
Active Default {0.0.0.0/0} Internet {}
Active Default {10.0.0.0/8} None {}
Active Default {100.64.0.0/10} None {}
Active Default {172.16.0.0/12} None {}
Jak widać w poprzednich danych wyjściowych, trasa z prefiksem AddressPrefix 0.0.0.0/0 kieruje cały ruch, który nie jest przeznaczony dla adresów w prefiksach adresów innych tras z następnym przeskokiem Internetu. Jak widać również w danych wyjściowych, chociaż istnieje trasa domyślna do prefiksu 172.16.0.0/12, który zawiera adres 172.31.0.100, następny typhoptype to Brak. Platforma Azure tworzy domyślną trasę dla zakresu adresów 172.16.0.0/12, ale nie określa typu następnego przeskoku, jeśli nie jest to wymagane. Jeśli na przykład dodano zakres adresów 172.16.0.0/12 do przestrzeni adresowej sieci wirtualnej, platforma Azure zmienia wartość nextHopType na sieć wirtualną dla trasy. Następnie zostanie wyświetlona kontrola Sieć wirtualna jako następna wartośćHopType.
Czyszczenie zasobów
Gdy grupa zasobów nie jest już potrzebna, możesz użyć polecenia Remove-AzResourceGroup , aby usunąć grupę zasobów i wszystkie zawarte w niej zasoby:
Remove-AzResourceGroup -Name myResourceGroup -Force
Następne kroki
W tym artykule utworzono maszynę wirtualną i zdiagnozowano routing sieciowy z maszyny wirtualnej. Uzyskano informacje o tworzeniu tras domyślnych na platformie Azure i przetestowano routing do dwóch różnych miejsc docelowych. Uzyskaj więcej informacji na temat routingu na platformie Azure i dowiedz się, jak tworzyć trasy niestandardowe.
W przypadku połączeń wychodzących maszyn wirtualnych można również określić opóźnienie i dozwolony i niedozwolony ruch sieciowy między maszyną wirtualną a punktem końcowym przy użyciu możliwości rozwiązywania problemów z połączeniem usługi Network Watcher. Możesz monitorować komunikację między maszyną wirtualną a punktem końcowym, takim jak adres IP lub adres URL w czasie, przy użyciu funkcji monitora połączeń usługi Network Watcher. Aby uzyskać więcej informacji, zobacz Monitorowanie połączenia sieciowego.