다음을 통해 공유


가상 머신 네트워크 라우팅 문제 진단 - Azure PowerShell

이 문서에서는 VM(가상 머신)을 배포한 다음, IP 주소와 URL로 전송되는 통신을 확인합니다. 통신 오류의 원인 및 해결 방법을 확인합니다.

Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Azure Cloud Shell

Azure는 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 호스트합니다. Cloud Shell에서 Bash 또는 PowerShell을 사용하여 Azure 서비스 작업을 수행할 수 있습니다. 로컬 환경에 아무 것도 설치할 필요 없이 Azure Cloud Shell의 미리 설치된 명령을 사용하여 이 문서의 코드를 실행할 수 있습니다.

Azure Cloud Shell을 시작하려면 다음을 수행합니다.

옵션 예제/링크
코드 또는 명령 블록의 오른쪽 상단에서 시도를 선택합니다. 시도를 선택해도 코드 또는 명령이 Cloud Shell에 자동으로 복사되지 않습니다. Azure Cloud Shell에 대한 사용 예제를 보여 주는 스크린샷
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 단추를 선택하여 브라우저에서 Cloud Shell을 엽니다. Azure Cloud Shell을 시작하는 단추.
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다. Azure Portal의 Cloud Shell 단추를 보여 주는 스크린샷

Azure Cloud Shell을 사용하려면:

  1. Cloud Shell을 시작합니다.

  2. 코드 블록(또는 명령 블록)에서 복사 단추를 선택하여 코드 또는 명령을 복사합니다.

  3. Windows 및 Linux에서 Ctrl+Shift+V를 선택하거나 macOS에서 Cmd+Shift+V를 선택하여 코드 또는 명령을 Cloud Shell 세션에 붙여넣습니다.

  4. Enter를 선택하여 코드 또는 명령을 실행합니다.

PowerShell을 로컬로 설치하고 사용하기로 선택한 경우 이 문서에는 Az PowerShell 모듈이 필요합니다. 자세한 내용은 Azure PowerShell 설치 방법을 참조하세요. 설치되어 있는 버전을 확인하려면 Get-InstalledModule -Name Az을 실행합니다. PowerShell을 로컬로 실행하는 경우 Connect-AzAccount cmdlet을 사용하여 Azure에 로그인합니다.

VM 만들기

VM을 만들려면 먼저 VM이 포함될 리소스 그룹을 만들어야 합니다. New-AzResourceGroup을 사용하여 리소스 그룹을 만듭니다. 다음 예제에서는 eastus 위치에 myResourceGroup이라는 리소스 그룹을 만듭니다.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

New-AzVM으로 VM을 만듭니다. 이 단계를 실행할 때 자격 증명을 묻는 메시지가 나타납니다. 입력하는 값은 VM에 대한 사용자 이름과 암호로 구성됩니다.

$vM = New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVm" `
    -Location "East US"

VM을 만드는 데 몇 분이 걸립니다. VM이 만들어지고 PowerShell에서 출력을 반환할 때까지 나머지 단계를 진행하지 마십시오.

네트워크 통신 테스트

Network Watcher와의 네트워크 통신을 테스트하려면 먼저 테스트하려는 VM이 있는 지역에서 네트워크 감시자를 활성화한 다음, Network Watcher의 다음 홉 기능을 사용하여 통신을 테스트해야 합니다.

네트워크 감시자 사용

미국 동부 지역에서 활성화된 네트워크 감시자가 이미 있는 경우 Get-AzNetworkWatcher를 사용하여 네트워크 감시자를 검색합니다. 다음 예에서는 NetworkWatcherRG 리소스 그룹에 있는 NetworkWatcher_eastus라는 기존 네트워크 감시자를 검색합니다.

$networkWatcher = Get-AzNetworkWatcher `
  -Name NetworkWatcher_eastus `
  -ResourceGroupName NetworkWatcherRG

미국 동부 지역에서 활성화된 네트워크 감시자가 아직 없는 경우 New-AzNetworkWatcher를 사용하여 미국 동부 지역에서 네트워크 감시자를 만듭니다.

$networkWatcher = New-AzNetworkWatcher `
  -Name "NetworkWatcher_eastus" `
  -ResourceGroupName "NetworkWatcherRG" `
  -Location "East US"

다음 홉 사용

Azure에서는 기본 대상에 대한 경로를 자동으로 만듭니다. 기본 경로를 재정의하는 사용자 지정 경로를 만들 수 있습니다. 경우에 따라 사용자 지정 경로로 인해 통신이 실패할 수 있습니다. VM에서 라우팅을 테스트하려면 Get-AzNetworkWatcherNextHop 명령을 사용하여 트래픽이 특정 주소로 향하는 경우 다음 라우팅 홉을 결정합니다.

VM에서 www.bing.com에 대한 IP 주소 중 하나로 아웃바운드 통신을 테스트합니다.

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 13.107.21.200

몇 초 후에 결과는 NextHopType인터넷이며, RouteTableId시스템 경로임을 알려줍니다. 이 출력 결과를 통해 대상에 대한 유효한 경로가 있음을 알 수 있습니다.

VM에서 172.31.0.100으로 아웃바운드 통신을 테스트합니다.

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 172.31.0.100

반환된 결과는 없음NextHopType이며, RouteTableId시스템 경로임도 알려줍니다. 이 결과를 사용하면 대상에 대한 유효한 시스템 경로가 있지만, 대상에 트래픽을 라우팅하는 다음 홉이 없음을 알 수 있습니다.

경로의 세부 정보 보기

라우팅을 추가로 분석하려면 Get-AzEffectiveRouteTable 명령을 사용하여 네트워크 인터페이스의 유효 경로를 검토합니다.

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVm `
  -ResourceGroupName myResourceGroup |
  Format-table

다음 텍스트를 포함하는 출력이 반환됩니다.

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        {}              

이전 출력에서 볼 수 있듯이 AddressPrefix0.0.0.0/0인 경로는 인터넷의 다음 홉을 사용하여 다른 경로의 주소 접두사 내의 주소로 향하지 않는 모든 트래픽을 라우팅합니다. 또한 출력에서 볼 수 있듯이 172.31.0.100 주소를 포함하는 172.16.0.0/12 접두사에 대한 기본 경로가 있더라도 nextHopType없음입니다. Azure에서는 172.16.0.0/12에 대한 기본 경로를 만들지만 필요가 있을 때까지 다음 홉 형식을 지정하지 않습니다. 예를 들어, 가상 네트워크의 주소 공간에 172.16.0.0/12 주소 범위를 추가한 경우, Azure는 경로의 nextHopType가상 네트워크로 변경합니다. 그런 다음, 검사에서는 가상 네트워크nextHopType으로 표시합니다.

리소스 정리

더 이상 필요하지 않은 경우 Remove-AzResourceGroup을 사용하여 리소스 그룹 및 해당 그룹에 포함된 모든 리소스를 제거할 수 있습니다.

Remove-AzResourceGroup -Name myResourceGroup -Force

다음 단계

이 문서에서는 VM을 만들고 VM에서 네트워크 라우팅을 진단했습니다. Azure가 여러 개의 기본 경로를 만들고 두 개의 다른 대상에 대한 라우팅을 테스트했음을 알아보았습니다. Azure에서 라우팅사용자 지정 경로를 만드는 방법을 알아봅니다.

아웃바운드 VM 연결의 경우 Network Watcher의 연결 문제 해결 기능을 사용하여 대기 시간 외에도 VM과 엔드포인트 간의 허용 또는 거부되는 네트워크 트래픽을 확인할 수 있습니다. Network Watcher 연결 모니터 기능을 사용하여 시간에 따라 IP 주소 또는 URL과 같은 VM과 엔드포인트 간의 통신을 모니터링할 수 있습니다. 자세한 내용은 네트워크 연결 모니터링을 참조하세요.