Azure Portal을 사용한 Routing 실습

이동현·2021년 8월 31일
0

애저는 Azure😎

목록 보기
3/6

먼저 이 글은 Microsoft Docs 실습의 풀이라고 생각하면 되겠다.
자습서: Azure Portal을 사용하여 경로 테이블이 포함된 네트워크 트래픽 라우팅 실습을 따라하며, 이 글을 참고하면 더욱 도움이 될 거라고 생각한다.

가상 네트워크 만들기

  • Vnet의 범위는 10.0.0.0/16으로 설정하고 3개의 서브넷을 추가한다.

    • Vnet 이름 myVirtualNetwork
      • Public 10.0.0.0/24
      • Private 10.0.1.0/24
      • DMZ 10.0.2.0/24
  • 다음 보안 탭에서 BastionHost 사용을 선택한다.

    • AzureBastionSubnet 10.0.3.0/24
    • 공용 IP 주소 myBastionIP

      Bastion을 사용하여 가상 머신에 연결하는 경우에는 가상머신의 공용 IP주소가 필요하지 않다.
      아이디 비밀번호만 입력하면 VM을 포탈에서 바로 연결할 수 있기 때문에 간편하다.

NVA 만들기

  • 네트워크 가상 어플라이언스는 DMZ에 위치하여 모든 수신 및 발신 트래픽을 확인하고 설정된 규칙을 충족하는 네트워크 트래픽만 허용하므로 안전한 네트워크 경계를 제공한다.

  • Window Server로 가상머신을 만든다.

    • VM 이름은 myVMNVA
    • 공용 인바운드 포트는 없음을 선택한다.
    • 다음 네트워킹 탭에서 서브넷을 DMZ를 선택하고 공용 ip는 없음을 선택한다.

NVA는 네트워크 트래픽을 제어하는 가상머신이라고 생각하면 되겠다.

경로 테이블 만들기

  • 추가할 경로들을 관리하는 경로 테이블을 생성한다.
    • 경로테이블 이름은 myRouteTablePublic

경로 만들기

  • 경로 테이블 내에서 Public VM에서 Private VM으로 가는 경로를 입력한다.
    • 경로 이름은 ToPrivateSubnet
    • 주소 접두사(도착 서브넷)은 10.0.1.0/24(Private 서브넷 주소)
    • 다음 홉 유형은 가상 어플라이언스
    • 다음 홉 주소는 10.0.2.4(DMZ 서브넷으로 생성한 VM)

서브넷에 경로 테이블 연결

  • 경로 테이블은 도착지와 경유지를 설정한다고 생각하면 되고 이제 출발지를 설정해야한다.

    • 이전에 생성한 Public 서브넷을 선택하고 경로테이블에 이전에 생성한 myRouteTablePublic을 선택하고 저장한다.

이제 출발지(Public)와 경유지(DMZ), 그리고 도착지(Private)를 모두 설정하였다.

NVA의 NIC에서 IP forwarding 설정

  • 중간에서 Network만 전달하는 VM인 NVA에 대한 IP forwarding을 켠다. Azure에서 myVMNVA에 네트워크 트래픽을 보낼 때 트래픽 대상이 다른 IP 주소인 경우 IP forwarding은 트래픽을 올바른 위치로 보낸다.

Public VM과 Private VM 생성

  • 이전에 만들어 놓은 서브넷을 이용하여 Public 가상머신과 Private 가상머신을 생성한다.

  • Window Server로 Public 가상머신을 만든다.

    • VM 이름은 myVMPublic
    • 공용 인바운드 포트는 없음을 선택한다.
    • 네트워크 탭에서는 서브넷을 Public으로 선택하고 공용 ip는 없음으로 선택한다.
  • Window Server로 Private 가상머신을 만든다.

    • VM 이름은 myVMPrivate
    • 공용 인바운드 포트는 없음을 선택한다.
    • 네트워크 탭에서는 서브넷을 Private으로 선택하고 공용 ip는 없음으로 선택한다.

NVA를 통한 트래픽 라우팅

  • Private VM에 Bastion 방식으로 접속한다.
  • Private VM내에서 관리자 권한으로 PowerShell을 열고 다음 명령을 입력한다.
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4

추적경로를 확인하기 위하여 ICMP를 사용하도록 설정하였다.

  • 이전에 Portal에서 NVA의 IP forwarding을 한 것처럼 OS에서도 IP forwarding을 해야한다.

  • 다음 명령으로 myVMNVA VM에 대한 원격 데스크톱을 연다.

mstsc /v:myvmnva
  • myVMNVA내에서 관리자 권한으로 PowerShell을 열고 다음 명령을 입력하여 IP forwarding을 켠다.
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name IpEnableRouter -Value 1
  • 다음 명령을 입력하여 myVMNVA를 Restart한다.
Restart-Computer
  • 다음 명령으로 myVMPublic VM에 대한 원격 데스크톱을 연다.
mstsc /v:myvmpublic
  • Public VM내에서 관리자 권한으로 PowerShell을 열고 다음 명령을 입력한다.
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4

Public VM에서도 역시 추적경로를 확인하기 위하여 ICMP를 사용하도록 설정하였다.

네트워크 트래픽의 라우팅 테스트

  • myVMPublic의 PowerShell에서 다음 명령을 입력하여 경로를 추적한다.
tracert myvmprivate
  • 응답은 이렇게 나오면 성공이다.
Tracing route to myvmprivate.q04q2hv50taerlrtdyjz5nza1f.bx.internal.cloudapp.net [10.0.1.4]
over a maximum of 30 hops:

  1     1 ms     *        2 ms  myvmnva.internal.cloudapp.net [10.0.2.4]
  2     2 ms     1 ms     1 ms  myvmprivate.internal.cloudapp.net [10.0.1.4]

Trace complete.
  • 첫번째 홉은 myVMNVA의 개인 IP 주소로 Public에서 전송한 트래픽이 NVA로 먼저 가는 것을 확인할 수 있다.
  • 두번째 홉은 원래의 목적지였던 myVMPrivate의 개인 IP 주소 10.0.1.4를 확인할 수 있다.

반대로 Private에서 Public으로 해보자

  • myVMPublic은 종료하고 myVMPrivate의 PowerShell에서 다음 명령을 입력하여 경로를 추적한다.
tracert myvmpublic
  • 응답은 이렇게 나오면 성공이다.
Tracing route to myvmpublic.q04q2hv50taerlrtdyjz5nza1f.bx.internal.cloudapp.net [10.0.0.4]
over a maximum of 30 hops:

  1     1 ms     1 ms     1 ms  myvmpublic.internal.cloudapp.net [10.0.0.4]

Trace complete.
  • myVMPrivate에서 보낸 트래픽은 NVA를 거치지 않고 바로 myVMPublic으로 가는 것을 확인할 수 있다.
  • 왜냐하면 우리는 Public에서 Private으로 가는 경로만 NVA를 거치라고 경로를 지정하였기 때문이다.

라우팅 추가 실습

그렇다면 여기서 반대로 Private에서 Public으로 가는 경로에 NVA를 거치도록 설정을 해보자.

  • 먼저 정답을 공개하면 myVMPrivate PowerShell창에 경로를 추적하는명령 tracert myvmpublic을 입력하였을때 이렇게 응답이 오면 성공이다.
Tracing route to myvmpublic.f1rq4hpl03xe5imtwim5vjxozh.bx.internal.cloudapp.net [10.0.0.4]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  myvmnva.internal.cloudapp.net [10.0.2.4]
  2     1 ms     1 ms     2 ms  myvmpublic.internal.cloudapp.net [10.0.0.4]

Trace complete.

실습 풀이

실습 풀이를 보기 전 먼저 혼자서 실습을 해보자.
위 내용을 응용하면 충분히 해결할 수 있다.

경로 테이블 만들기

  • 추가할 경로들을 관리하는 경로 테이블을 생성한다.
    • 경로테이블 이름은 myRouteTablePrivate

경로 만들기

  • 경로 테이블 내에서 Private VM에서 Public VM으로 가는 경로를 입력한다.
    • 경로 이름은 ToPublicSubnet
    • 주소 접두사(도착 서브넷)은 10.0.0.0/24(Public 서브넷 주소)
    • 다음 홉 유형은 가상 어플라이언스
    • 다음 홉 주소는 10.0.2.4(DMZ 서브넷으로 생성한 VM)

서브넷에 경로 테이블 연결

  • 경로 테이블은 도착지와 경유지를 설정한다고 생각하면 되고 이제 출발지를 설정해야한다.

    • 이전에 생성한 Private 서브넷을 선택하고 경로테이블에 이전에 생성한 TOPublicSubnet을 선택하고 저장한다.

이제 출발지(Public)와 경유지(DMZ), 그리고 도착지(Private)를 모두 설정하였다.

네트워크 트래픽의 라우팅 테스트

  • myVMPrivate의 PowerShell에서 다음 명령을 입력하여 경로를 추적한다.
tracert myvmprivate
  • 응답은 이렇게 나오면 성공이다.
Tracing route to myvmpublic.f1rq4hpl03xe5imtwim5vjxozh.bx.internal.cloudapp.net [10.0.0.4]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  myvmnva.internal.cloudapp.net [10.0.2.4]
  2     1 ms     1 ms     2 ms  myvmpublic.internal.cloudapp.net [10.0.0.4]

Trace complete.
profile
안녕하세요!

0개의 댓글