랩: NVA(네트워크 가상 어플라이언스)

시나리오

Azure는 기본적으로 가상 네트워크 내의 모든 서브넷 간 트래픽을 라우팅합니다. 사용자 지정 경로를 생성하여 Azure의 기본 라우팅을 재설정할 수 있습니다. 만약 네트워크 가상 어플라이언스(NVA)를 통해 서브넷간 트래픽을 라우트하는 경우에는 사용자 지정 경로를 생성하는 것이 유용합니다.

  • 경로 테이블 생성
  • 경로 생성
  • 다중 서브넷으로 구성된 가상 네트워크 생성
  • 서브넷에 경로 테이블 연결
  • 트래픽을 전달하는 NVA 생성
  • 다른 서브넷에 가상 머신 배포
  • NVA를 통해 트래픽을 다른 서브넷으로 전달

연습 1: Azure 포털을 이용해 경로 테이블로 네트워크 트래픽 라우트

작업 1: 라우트 테이블 생성

  1. Azure 포털에서 경로 테이블을 탐색하여 선택한다.

  2. 경로 테이블 만들기를 클릭하고, 다음 값을 입력한다.

    설정
    이름 myRouteTablePublic 입력
    구독 이 랩에서 사용할 구독
    리소스 그룹 새로만들기 Select az5000206
    위치 (Asia Pacific) 동남 아시아
    가상 네트워크 게이트웨이 경로 전파 사용
  3. 만들기를 클릭한다.

작업 2: 경로 만들기

  1. 포털에서 myRouteTablePublic를 검색하여 클릭한다.

  2. 설정 섹션에 경로 > + 추가를 클릭한다.

  3. 경로 추가에 다음 값을 사용한다.

    설정
    경로 이름 ToPrivateSubnet 입력
    주소 접두사 10.0.1.0/24
    다음 홉 형식 가상 어플라이언스
    다음 홉 주소 10.0.2.4.
  4. 확인을 클릭한다.

작업 3: 서브넷에 경로 테이블 연결

서브넷에 경로 테이블을 연결하기 전에 가상 네트워크와 서브넷을 생성합니다.

  1. Azure 포털에서 가상 네트워크를 검색하여 선택한다.

  2. 가상 네트워크 만들기에 다음 값을 사용한다.

    설정
    이름 myVirtualNetwork
    주소 공간 10.0.0.0/16.
    구독 이 랩에서 사용할 구독의 이름
    리소스 그룹 az5000206
    지역 (Asia Pacific) 동남 아시아
    서브넷 이름 Public
    서브넷 주소 범위 10.0.0.0/24.
  3. 다른 값은 기본으로 두고 만들기를 클릭한다.

작업 4: 가상 네트워크에 서브넷 추가

  1. Azure 포털에서 myVirtualNetwork를 찾아 클릭한다.

  2. 설정 섹션의 서브넷을 클릭한다.

    Screenshot

  3. 서브넷 추가에서 다음 값을 입력한다.

    설정
    이름 Private
    주소 범위 10.0.1.0/24.
  4. 다른 값은 기본으로 두고 확인을 클릭한다.

  5. + 서브넷을 클릭하고 다음 값으로 서브넷을 추가한다.

    설정
    이름 DMZ
    주소 범위 10.0.2.0/24.
  6. 다른 값은 기본으로 두고 확인을 클릭한다.

    Public, Private, DMZ. 서브넷이 생성된 것을 확인한다.

작업 5: myRouteTablePublic을 서브넷에 연결

  1. Public을 선택한다.

  2. 경로 테이블MyRouteTablePublic를 선택하고 저장을 클릭한다.

    Screenshot

작업 6: NVA(네트워크 가상 어플라이언스) 생성

NVA(네트워크 가상 어플라이언스)는 라우팅이나 방화벽 최적화 등 네트워크 기능을 돕는 가상머신입니다. 필요시 다른 운영 체제를 선택할 수 있습니다. 이 랩은 Windows Server 2016 Datacenter를 사용합니다.

  1. Azure 포털의 리소스 만들기 > 새로 만들기에서 Windows Server 2016 Datacenter를 검색하여 클릭한다.

  2. 가상 머신 만들기 - 기본 사항 탭에서 다음 정보를 입력한다.

    설정
    프로젝트 정보  
    구독 이 랩에서 사용할 구독의 이름
    리소스 그룹 az5000206
    인스턴스 정보  
    가상 머신 이름 myVmNva
    지역 (Asia Pacific) 동남 아시아
    가용성 옵션 인프라 중복이 필요하지 않습니다
    이미지 Windows Server 2016 Datacenter
    크기 Standard DS1 v2
    관리자 계정  
    사용자 이름 Student
    암호 Pa55w.rd1234
    인바운드 포트 규칙  
    공용 인바운드 포트 없음
    비용 절감  
    이미 Windows Server 라이선스가 있나요 아니요
  3. 다음 : 디스크를 클릭한다.

  4. 필요에 맞는 디스크 유형을 선택한다.

  5. 다음 : 네트워킹을 선택한다.

  6. 다음 값을 입력한다.

    설정
    가상 네트워크 myVirtualNetwork.
    서브넷 DMZ (10.0.2.0/24).
    공용 IP Select 없음을 선택한다.(가상 머신을 인터넷에 연결하지 않음)
  7. 다른 값은 기본으로 두고 다음 : 관리를 클릭한다.

  8. 진단 스토리지 계정새로 만들기를 클릭한다.

  9. 다음 값을 이용하여 스토리지 계정을 생성한다.

    설정
    이름 az5000206storage (고유한 값 입력)
    계정 종류 Storage (범용 v1)
    성능 표준
    복제 Leave the default LRS(로컬 중복 스토리지)
  10. 확인을 클릭한다.

  11. 검토 + 만들기를 클릭한다.

  12. 유효성 검사에 통과하면 만들기를 클릭한다.

  13. 가상 머신을 배포하는 데 몇 분이 소요된다. 배포가 완료되면 리소스로 이동을 클릭한다.

작업 7: IP 전달 설정

myVmNva에 대한 IP 전달을 설정합니다. 만약 myVmNva로 다른 IP 주소로 향하는 네트워크 트래픽을 전송하면 IP 전달을 통해 올바른 목적지로 트래픽을 전송합니다.

  1. myVmNva설정 섹션에서 네트워킹을 클릭한다.

  2. 가상 머신의 네트워크 인터페이스로 생성된 myvmnva123을 선택한다. myvmnva 뒤의 숫자(123)는 다를 수 있습니다.

  3. 설정 섹션의 IP 구성을 선택한다.

  4. IP 전달사용으로 선택하고 저장을 클릭한다.

    Screenshot

작업 8: 공용 및 개인 가상 머신 생성

가상 네트워크에 공용 및 개인 가상 머신을 생성합니다. 이는 NVA를 통해 공용 서브넷 트래픽을 개인 서브넷으로 전달하는 동작을 확인하기 위해 사용됩니다.

  1. 다음 설정을 사용하여 작업 6에서 NVA를 생성한 과정을 두 번 반복한다. (아래 명시된 값을 제외하고 나머지는 작업 6과 동일한 설정을 사용)
설정
PUBLIC VM  
기본 사항  
가상 머신 이름 myVmPublic.
네트워킹  
서브넷 Select Public (10.0.0.0/24).
공용 IP 주소 기본 값 사용
공용 인바운드 포트 선택한 포트 허용
인바운드 포트 선택 HTTP, RDP
관리  
진단 스토리지 계정 az5000206storage (앞서 생성한 스토리지 계정 선택)
PRIVATE VM  
기본 사항  
가상 머신 이름 Enter myVmPrivate.
네트워킹  
서브넷 Private (10.0.1.0/24).
공용 IP 주소 기본 값 사용
공용 인바운드 포트 선택한 포트 허용
인바운드 포트 선택 HTTP, RDP
관리  
진단 스토리지 계정 az5000206storage (앞서 생성한 스토리지 계정 선택

myVmPublic을 배포하는 동안 myVmPrivate을 생성할 수 있습니다. 모든 가상 머신 생성이 완료된 후 다음 단계를 진행하십시오.

작업 9: NVA를 통해 트래픽 전달

  1. 원격 데스크톱 연결을 통해 myVmPrivate에 접속한다.

  2. 포털에서 myVmPrivate을 검색하여 클릭한다.

  3. 연결을 선택하고 RDP를 클릭한다.

  4. RDP 파일 다운로드를 클릭하여 다운로드한다.

  5. 다운로드 된 .rdp 파일을 연다.

    1. 창이 뜨면 연결을 클릭한다.

    2. 가상 머신을 생성할 때 설정한 계정 이름과 암호를 이용하여 로그인한다.

    로그인 과정 중에 인증 경고창이 표시될 수 있습니다.

작업 10: Windows 방화벽을 통해 ICMP(Internet Control Message Protocol) 설정

나중 단계에서는 경로 추적 도구를 사용하여 라우팅을 테스트합니다. 경로 추적은 Windows 방화벽에서 기본으로 거부하도록 설정된 인터넷 제어 메시지 프로토콜(ICMP)을 사용한다. Windows 방화벽을 통해 ICMP를 사용하도록 설정하십시오.

  1. myVmPrivate 원격 데스크톱 세션에서 PowerShell을 시작한다.

  2. 다음 명령을 입력한다.

    New-NetFirewallRule -DisplayName "Allow ICMPv4-In" -Protocol ICMPv4
    

    이 튜토리얼에서는 경로 추적을 사용하여 라우팅을 테스트합니다. 프로덕션 환경에서는 Windows 방화벽을 통해 ICMP를 허용하는 것을 권장하지 않습니다.

작업 11: myVmNva에서 IP 전달 설정

Azure를 사용하여 VM의 네트워크 인터페이스에 대해 IP 전달을 설정한 경우, VM의 운영 체제도 네트워크 트래픽을 전달해야 합니다. 다음 명령을 사용하여 myVmNva 가상 머신의 운영 체제에 대한 IP 전달을 설정하십시오.

  1. myVmPrivate 가상 머신의 명령 프롬프트 창에 다음 명령을 입력하여 myVMNva 가상 머신에 대한 원격 데스크톱을 실행합니다.

    mstsc /v:myvmnva
    
  2. myVmNva의 PowerShell에서 다음 명령을 입력하여 IP 전달을 설정한다.

    Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name IpEnableRouter -Value 1
    
  3. myVmNva 가상 머신을 다시 시작한다. (시작 버튼 > 전원 버튼, Other (Planned) > Continue)

    해당 작업은 데스크톱 세션을 끊습니다.

  4. myVmNva 가상 머신을 재시작한 후, myPublic 가상 머신에 원격 데스크톱 세션을 생성합니다. myVmPrivate 가상 머신에 연결한 채 명령 프롬프트에 다음 명령을 입력한다.

    mstsc /v:myVmPublic
    
  5. myVmPublic 원격 데스크톱에서 PowerShell을 시작한다.

  6. 다음 명령을 입력하여 Windows 방화벽을 통한 ICMP를 허용한다.

    New-NetFirewallRule -DisplayName "Allow ICMPv4-In" -Protocol ICMPv4
    

작업 12: 네트워크 트래픽 전달 테스트

우선, myVmPublic 가상 머신에서 myVmPrivate 가상 머신으로 향하는 네트워크 트래픽의 전달을 테스트합니다.

  1. myVmPublic 가상 머신의 PowerShell에서 다음 명령을 입력한다.

    tracert myVmPrivate
    

    아래 결과와 비슷한 응답이 출력된다.

    Tracing route to myVmPrivate.vpgub4nqnocezhjgurw44dnxrc.bx.internal.cloudapp.net [10.0.1.4]
    over a maximum of 30 hops:
    
    1    <1 ms     *        1 ms  10.0.2.4
    2     1 ms     1 ms     1 ms  10.0.1.4
    
    Trace complete.
    

    첫 번째 홉이 NVA의 개인 IP 주소인 10.0.2.4인 것을 확인할 수 있습니다. 두 번째 홉은 myVmPrivate VM의 개인 IP 주소인 10.0.1.4 입니다. 이전 작업에서 myRouteTablePublic 경로 테이블에 경로를 추가하고, Public 서브넷에 연결한 결과, Azure는 트래픽을 Private 서브넷으로 직접 전송하지 않고 NVA를 통해 전송합니다.

  2. myVmPublic 가상 머신의 원격 데스크톱 세션을 종료한다. myVmPrivate 가상 머신에 대한 연결은 유지한다.

  3. myVmPrivate 가상 머신의 명령 프롬프트 창에 다음 명령을 입력한다.

    tracert myVmPublic
    

    해당 명령은 myVmPrivate 가상 머신에서 myVmPublic 가상 머신으로 향하는 네트워크 트래픽 전달을 테스트합니다. 아래 결과와 비슷한 응답이 출력됩니다.

    Tracing route to myVmPublic.vpgub4nqnocezhjgurw44dnxrc.bx.internal.cloudapp.net [10.0.0.4]
    over a maximum of 30 hops:
    
    1     1 ms     1 ms     1 ms  10.0.0.4
    
    Trace complete.
    

    myVmPrivate 가상 머신에서 myVmPublic 가상 머신으로 트래픽을 직접 라우팅하는 것을 확인할 수 있습니다. 기본적으로 Azure는 서브넷 간 트래픽을 직접 라우팅합니다.

  4. myVmPrivate 가상 머신의 원격 데스크톱 세션을 종료한다.

연습 2: 랩 리소스 삭제

작업 1: Cloud Shell 열기

  1. Azure 포털 상단에서 Cloud Shell 아이콘을 클릭하여 Cloud Shell 창을 시작한다.

  2. Cloud Shell 인터페이스에서 Bash를 선택한다.

  3. Cloud Shell 명령 프롬프트에서 다음 명령을 입력하고 Enter를 눌러 이 랩에서 생성한 모든 리소스 그룹을 나열한다.

     az group list --query "[?starts_with(name,'az500')].name" --output tsv
    
  4. 출력된 결과가 이 랩에서 생성한 리소스 그룹만 포함되어 있는지 확인한다. 이 그룹은 다음 작업에서 삭제된다.

작업 2: 리소스 그룹 삭제하기

  1. Cloud Shell 명령 프롬프트에서 다음 명령을 입력하고 Enter를 눌러 이 랩에서 생성한 모든 리소스 그룹을 삭제한다.

     az group list --query "[?starts_with(name,'az500')].name" --output tsv | xargs -L1 bash -c 'az group delete --name $0 --no-wait --yes'
    
  2. Cloud Shell 명령 프롬프트를 닫는다.

결과: 이 연습을 완료한 후 이 랩에서 사용된 리소스 그룹을 제거했습니다.