Udostępnij za pośrednictwem


Diagnozowanie problemu z routingiem na maszynie wirtualnej

Z tego artykułu dowiesz się, jak diagnozować problemy z routingiem, wyświetlając obowiązujące trasy dla interfejsu sieciowego na maszynie wirtualnej. Platforma Azure automatycznie tworzy trasy domyślne dla każdej podsieci sieci wirtualnej. Te trasy domyślne można zastąpić, definiując trasy niestandardowe w tabeli tras i kojarząc tabelę z podsiecią. Obowiązujące trasy dla interfejsu sieciowego to kombinacja tras domyślnych platformy Azure, tras niestandardowych zdefiniowanych i wszelkich tras propagowanych z sieci lokalnej za pośrednictwem bramy sieci VPN platformy Azure przy użyciu protokołu BGP (Border Gateway). Jeśli dopiero zaczynasz korzystać z sieci wirtualnych, interfejsów sieciowych lub routingu, zobacz Omówienie sieci wirtualnej, Interfejs sieciowy i Omówienie routingu.

Scenariusz

Próbujesz nawiązać połączenie z maszyną wirtualną, ale połączenie kończy się niepowodzeniem. Aby określić, dlaczego nie można nawiązać połączenia z maszyną wirtualną, możesz wyświetlić obowiązujące trasy dla interfejsu sieciowego przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure.

Zakłada się w poniższych krokach, że masz istniejącą maszynę wirtualną, aby móc wyświetlić obowiązujące trasy. Jeśli nie masz istniejącej maszyny wirtualnej, najpierw wdróż maszynę wirtualną z systemem Linux lub Windows , aby wykonać zadania z tego artykułu. Przykłady w tym artykule dotyczą maszyny wirtualnej o nazwie vm-1 z interfejsem sieciowym o nazwie vm-1445. Maszyna wirtualna i interfejs sieciowy znajdują się w grupie zasobów o nazwie test-rg i znajdują się w regionie Wschodnie stany USA . Zmień wartości w krokach odpowiednio dla maszyny wirtualnej, dla której diagnozujesz problem.

Diagnozowanie przy użyciu witryny Azure Portal

  1. Zaloguj się w witrynie Azure Portal przy użyciu konta platformy Azure, które ma niezbędne uprawnienia.

  2. W górnej części witryny Azure Portal wprowadź nazwę maszyny wirtualnej, która jest w stanie uruchomienia, w polu wyszukiwania. Gdy nazwa maszyny wirtualnej pojawi się w wynikach wyszukiwania, wybierz ją.

  3. Rozwiń sekcję Sieć i wybierz pozycję Ustawienia sieci.

  4. Aby wybrać interfejs, wybierz jego nazwę.

    Zrzut ekranu przedstawiający interfejs sieciowy w ustawieniach maszyny wirtualnej.

  5. W interfejsie sieciowym rozwiń Pomoc. Wybierz Obowiązujące trasy.

    Zrzut ekranu przedstawiający obowiązujące trasy interfejsu sieciowego.

    Wybierz żądany interfejs sieciowy, aby wyświetlić obowiązujące trasy. Każdy interfejs może należeć do innej podsieci, co powoduje unikatowe trasy. W przykładzie na obrazie przedstawiono domyślne trasy utworzone przez platformę Azure dla każdej podsieci. Lista zawiera trasy domyślne i może również zawierać dodatkowe trasy. Trasy mogą pochodzić z funkcji, takich jak komunikacja równorzędna sieci wirtualnych lub połączenia z sieciami lokalnymi za pośrednictwem bramy sieci VPN platformy Azure. Aby uzyskać szczegółowe informacje na temat tras, zobacz Routing ruchu w sieci wirtualnej. Jeśli istnieje wiele tras, użyj opcji Pobierz , aby zapisać je jako plik .csv, aby ułatwić przegląd.

Mimo że obowiązujące trasy były wyświetlane za pośrednictwem maszyny wirtualnej w poprzednich krokach, możesz również wyświetlić obowiązujące trasy za pośrednictwem:

  • Pojedynczy interfejs sieciowy: dowiedz się, jak wyświetlić interfejs sieciowy.

  • Pojedyncza tabela tras: dowiedz się, jak wyświetlić tabelę tras.

Diagnozowanie przy użyciu programu PowerShell

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Możesz uruchomić następujące polecenia w usłudze Azure Cloud Shell lub uruchomić program PowerShell z komputera. Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie. W przypadku uruchamiania programu PowerShell z komputera potrzebny jest moduł Azure PowerShell w wersji 1.0.0 lub nowszej. Uruchom Get-Module -ListAvailable Az na swoim komputerze, aby znaleźć zainstalowaną wersję. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli korzystasz z programu PowerShell lokalnie, musisz również uruchomić polecenie Connect-AzAccount , aby zalogować się do platformy Azure przy użyciu konta z wymaganymi uprawnieniami.

Uzyskaj efektywne trasy dla interfejsu sieciowego za pomocą Get-AzEffectiveRouteTable. Poniższy przykład pobiera obowiązujące trasy dla interfejsu sieciowego o nazwie vm-1445 w grupie zasobów o nazwie test-rg:

$Params = @{
  NetworkInterfaceName = "vm-1445"
  ResourceGroupName    = "test-rg"
}
Get-AzEffectiveRouteTable @Params | Format-Table

Aby zrozumieć informacje zwrócone w danych wyjściowych, zobacz Omówienie routingu. Dane wyjściowe są zwracane tylko wtedy, gdy maszyna wirtualna jest w stanie uruchomienia. Jeśli istnieje wiele interfejsów sieciowych dołączonych do maszyny wirtualnej, możesz przejrzeć obowiązujące trasy dla każdego interfejsu sieciowego. Ponieważ każdy interfejs sieciowy może znajdować się w innej podsieci, każdy interfejs sieciowy może mieć różne efektywne trasy. Jeśli nadal masz problem z komunikacją, zobacz więcej diagnoz i zagadnień.

Jeśli znasz nazwę maszyny wirtualnej, ale nie nazwę interfejsu sieciowego, użyj następujących poleceń, aby zwrócić identyfikator wszystkich interfejsów sieciowych dołączonych do maszyny wirtualnej:

$Params = @{
  Name              = "vm-1"
  ResourceGroupName = "test-rg"
}
$VM = Get-AzVM @Params
$VM.NetworkProfile

Otrzymasz dane wyjściowe podobne do następującego przykładu:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/test-rg/providers/Microsoft.Network/networkInterfaces/vm-1445

W poprzednich danych wyjściowych nazwa interfejsu sieciowego to vm-1445.

Diagnozowanie przy użyciu interfejsu wiersza polecenia platformy Azure

Możesz uruchomić następujące polecenia w usłudze Azure Cloud Shell lub uruchomić interfejs wiersza polecenia z komputera. Ten artykuł wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0.32 lub nowszej. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest zainstalowana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. Jeśli używasz Azure CLI lokalnie, musisz również uruchomić az login i zalogować się do Azure przy użyciu konta, które ma niezbędne uprawnienia.

Uzyskaj efektywne trasy dla interfejsu sieciowego za pomocą polecenia az network nic show-effective-route-table. Następujące polecenie pobiera obowiązujące trasy dla interfejsu sieciowego o nazwie vm-1445 , który znajduje się w grupie zasobów o nazwie test-rg:

az network nic show-effective-route-table \
  --name vm-1445 \
  --resource-group test-rg

Aby zrozumieć informacje zwrócone w danych wyjściowych, zobacz Omówienie routingu. Dane wyjściowe są zwracane tylko wtedy, gdy maszyna wirtualna jest w stanie uruchomienia. Jeśli istnieje wiele interfejsów sieciowych dołączonych do maszyny wirtualnej, możesz przejrzeć obowiązujące trasy dla każdego interfejsu sieciowego. Ponieważ każdy interfejs sieciowy może znajdować się w innej podsieci, każdy interfejs sieciowy może mieć różne efektywne trasy. Jeśli nadal masz problem z komunikacją, zobacz więcej diagnoz i zagadnień.

Jeśli znasz nazwę maszyny wirtualnej, ale nie nazwę interfejsu sieciowego, użyj następujących poleceń, aby zwrócić identyfikator wszystkich interfejsów sieciowych dołączonych do maszyny wirtualnej:

az vm show \
  --name vm-1 \
  --resource-group test-rg

Rozwiązywanie problemu

Rozwiązywanie problemów z routingiem zwykle składa się z następujących procedur:

  • Dodanie trasy niestandardowej w celu zastąpienia jednej z tras domyślnych platformy Azure. Dowiedz się, jak dodać trasę niestandardową.

  • Zmieniono lub usunięto trasę niestandardową, która mogła prowadzić do niepożądanej lokalizacji. Dowiedz się, jak zmienić lub usunąć trasę niestandardową.

  • Upewnij się, że tabela tras zawierająca wszystkie zdefiniowane trasy niestandardowe jest skojarzona z podsiecią, w jakiej znajduje się interfejs sieciowy. Dowiedz się, jak skojarzyć tabelę tras z podsiecią.

  • Upewnij się, że wdrożone urządzenia, takie jak brama sieci VPN platformy Azure lub wdrożone wirtualne urządzenia sieciowe, są obsługiwane. Użyj możliwości diagnostyki sieci VPN usługi Network Watcher, aby określić wszelkie problemy z bramą sieci VPN platformy Azure.

Jeśli nadal występują problemy z komunikacją, zobacz Zagadnienia i więcej diagnoz.

Kwestie wymagające rozważenia

Podczas rozwiązywania problemów z komunikacją należy wziąć pod uwagę następujące kwestie:

  • Routing używa najdłuższego dopasowania prefiksu (LPM) do określenia najlepszej trasy spośród tras systemowych, BGP i tras niestandardowych. Jeśli wiele tras dzieli to samo dopasowanie LPM, platforma Azure wybiera jedną na podstawie kolejności priorytetów w sekcji Przegląd routingu. Efektywne trasy pokazują tylko trasy dopasowane z LPM, co ułatwia identyfikowanie i rozwiązywanie problemów z trasami wpływającymi na komunikację maszyn wirtualnych.

  • Jeśli trasy niestandardowe kierują ruch do wirtualnego urządzenia sieciowego (WUS) z Virtual Appliance jako typem następnego przeskoku, upewnij się, że przekazywanie IP WUS jest włączone; w przeciwnym razie pakiety zostaną odrzucone. Dowiedz się, jak włączyć przekazywanie IP dla interfejsu sieciowego i skonfigurować system operacyjny urządzenia NVA lub aplikacji do przesyłania ruchu.

  • Jeśli zostanie utworzona trasa do 0.0.0.0/0, cały wychodzący ruch internetowy jest kierowany do określonego następnego przeskoku, takiego jak urządzenie NVA lub brama sieci VPN. Tworzenie takiej trasy jest często określane jako wymuszone tunelowanie. Połączenia zdalne przy użyciu protokołów RDP lub SSH z Internetu do maszyny wirtualnej mogą nie działać przez tę trasę, w zależności od tego, jak następny węzeł obsługuje ruch. Wymuszone tunelowanie można włączyć:

    • Korzystając z sieci VPN typu lokacja-lokacja, należy utworzyć trasę, wybierając typ VPN Gateway jako następny przeskok. Dowiedz się więcej o konfigurowaniu wymuszonego tunelowania.
    • Jeśli trasa domyślna 0.0.0.0/0 jest anonsowana za pośrednictwem protokołu BGP za pośrednictwem bramy sieci wirtualnej podczas korzystania z sieci VPN typu lokacja-lokacja lub obwodu usługi ExpressRoute. Dowiedz się więcej o korzystaniu z protokołu BGP z siecią VPN typu lokacja-lokacja lub usługą ExpressRoute.
  • Aby ruch komunikacji równorzędnej sieci wirtualnych działał prawidłowo, trasa systemowa z typem następnego przeskoku komunikacji równorzędnej sieci wirtualnych musi istnieć dla zakresu prefiksów równorzędnej sieci wirtualnej. Jeśli taka trasa nie istnieje, a połączenie równorzędne wirtualnej sieci to Połączono:

    • Poczekaj kilka sekund i spróbuj ponownie. Jeśli jest to nowo ustanowione łącze komunikacji równorzędnej, propagowanie tras do wszystkich interfejsów sieciowych w podsieci czasami zajmuje więcej czasu. Aby dowiedzieć się więcej na temat komunikacji równorzędnej sieci wirtualnych, zobacz Omówienie komunikacji równorzędnej sieci wirtualnych i zarządzanie komunikacją równorzędną sieci wirtualnych.

    • Reguły sieciowej grupy zabezpieczeń mogą mieć wpływ na komunikację. Aby uzyskać więcej informacji, zobacz Diagnozowanie problemu z filtrowaniem ruchu sieciowego maszyny wirtualnej.

  • Chociaż platforma Azure przypisuje domyślne trasy do każdego interfejsu sieciowego platformy Azure, jeśli masz wiele interfejsów sieciowych dołączonych do maszyny wirtualnej, tylko podstawowy interfejs sieciowy ma przypisaną trasę domyślną (0.0.0.0.0/0) lub bramę w systemie operacyjnym maszyny wirtualnej. Dowiedz się, jak utworzyć trasę domyślną dla pomocniczych interfejsów sieciowych dołączonych do maszyny wirtualnej z systemem Windows lub Linux . Dowiedz się więcej o podstawowych i pomocniczych interfejsach sieciowych.

Więcej diagnoz

  • Aby uruchomić szybki test w celu określenia typu następnego przeskoku dla ruchu kierowanego do lokalizacji, użyj funkcji Następny przeskok usługi Azure Network Watcher. Następny krok informuje, jaki jest typ następnego kroku dla ruchu kierowanego do określonej lokalizacji.

  • Jeśli nie ma tras powodujących niepowodzenie komunikacji sieciowej maszyny wirtualnej, problem może być spowodowany przez oprogramowanie zapory działające w systemie operacyjnym maszyny wirtualnej

  • Jeśli wymuszasz tunelowanie ruchu do urządzenia lokalnego za pośrednictwem bramy sieci VPN lub urządzenia WUS, możesz nie być w stanie nawiązać połączenia z maszyną wirtualną (VM) z Internetu, w zależności od tego, jak skonfigurowany jest routing dla tych urządzeń. Upewnij się, że routing skonfigurowany dla urządzenia kieruje ruch do publicznego lub prywatnego adresu IP maszyny wirtualnej.

  • Skorzystaj z funkcji rozwiązywania problemów z połączeniem Network Watcher, aby określić routing, filtrowanie oraz przyczyny problemów z komunikacją wychodzącą w systemie operacyjnym.

Następne kroki