가상 머신 네트워크 라우팅 문제 진단 - 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에 자동으로 복사되지 않습니다. | |
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 단추를 선택하여 브라우저에서 Cloud Shell을 엽니다. | |
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다. |
Azure Cloud Shell을 사용하려면:
Cloud Shell을 시작합니다.
코드 블록(또는 명령 블록)에서 복사 단추를 선택하여 코드 또는 명령을 복사합니다.
Windows 및 Linux에서 Ctrl+Shift+V를 선택하거나 macOS에서 Cmd+Shift+V를 선택하여 코드 또는 명령을 Cloud Shell 세션에 붙여넣습니다.
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 {}
이전 출력에서 볼 수 있듯이 AddressPrefix가 0.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과 엔드포인트 간의 통신을 모니터링할 수 있습니다. 자세한 내용은 네트워크 연결 모니터링을 참조하세요.