Microsoft Azure, 가상 네트워크 생성 및 VPN 관련 기본 구성 1편(사이트간, 지점 및 사이트간)

IaaS(Infrastructure as a Service) 형태의 클라우드 서비스를 이용할 경우, 컴퓨팅 자원(CPU, 메모리 분배 : 대표적으로 Hyper-V가 제공), 네트워크, 스토리지에 대한 설정이 선 진행되게 됩니다. System Center Virtual Machine Manager(SCVMM)에서도 이 세 요소를 묶어서 패브릭(Fabric)이라는 요소로 관리가 가능하게 제공하고 있습니다.

image

Microsoft Azure내 여러 서비스 중, 가상 컴퓨터(VM)를 이용하고자 할 경우, 기본적으로 먼저 설정되어야 할 부분도 사설 클라우드와 유사합니다. Azure내 Storage에 대한 구성, 네트워크에 대한 구성을 진행한 후, 이를 이용하여 VM을 생성하게 됩니다. 오늘은 여러 요소중 우선 Microsoft Azure에서 제공하는 가상 네트워크에 대한 개념 및 구현을 살펴보도록 하겠습니다. 가상 네트워크는 단순히 Microsoft Azure내 VM 서비스에서 뿐만 아니라, PaaS 형태의 클라우드 서비스, 그리고 IaaS 형태로 제공되는 다양한 서비스에서 활용되게 되므로, 잘 숙지해놓으면, 다른 서비스로의 확장 및 응용에 큰 도움이 됩니다.

image

Microsoft Azure내 가상 네트워크를 생성하기 위해서는 새로 만들기 메뉴내 네트워크 서비스, 가상 네트워크 항목을 이용할 수 있습니다. 세부적인 설정없이 빠르게 생성하기 위해서는 빠른 생성을 사용할 수 있습니다만, IP 주소 영역, VPN 구성등과 같은 형태를 반영하려면, 사용자 지정 만들기를 이용해야 합니다.

image

가상 네트워크 생성의 첫단계는 너무나 당연한 이야기지만, 생성하고자 하는 데이터센터의 위치를 지정해야 합니다. 개별 데이터센터의 위치에 대한 정보는 여기에서 확인하실 수 있습니다. 더불어, 개별 데이터센터의 서비스 상태에 대한 정보도 확인이 가능합니다.

image

개별 데이터센터와 사용자의 지역간의 네트워크 품질을 테스트할 수 있는 사이트는 많이 있습니다. https://azureping.info/, https://www.azurespeed.com/ 등이 이에 해당됩니다. 가상 네트워크 생성의 두번째 단계는 DNS 서버와 VPN에 대한 구성입니다.

image

DNS 서버 항목에 별도의 DNS 서버를 지정하지 않게 되면, Microsoft Azure에서 제공하는 DNS를 사용하게 됩니다. 별도의 DNS 서버를 설정해야 하는 경우가 있거나, Active Directory를 Microsoft Azure내, 혹은 사내 네트워크에 구성하여, 사용하고자 하는 경우, 해당 도메인 컨트롤러의 IP 주소를 DNS 서버 항목에 입력해야 합니다.

image

DNS 서버에 대한 사전 구성은 가상 네트워크 페이지의 상단 링크 중 DNS 서버 항목에서도 가능합니다. 또한 가상 네트워크 생성시 입력한 DNS 서버도 해당 항목에 배치되게 됩니다.

image

두개의 추가적인 VPN 옵션이 가상 네트워크 생성의 두번째 페이지에 있습니다. 지점 및 사이트간 연결과 사이트간 연결입니다. 추가적인 VPN 연결 없이 Microsoft Azure내에서만 네트워크를 구성하고자 한다면, 구성하지 않아도 됩니다.

image

Microsoft Azure내 가상 네트워크는 Azure 데이터센터내 만들어지는 네트워크입니다. 해당 네트워크에 대한 확장이 필요한 경우가 있을 수 있습니다.

  1. Microsoft Azure내 가상 네트워크와 사내 네트워크를 연결하여, 논리적으로 하나의 네트워크를 구성하고자 하는 경우 : 사이트간 VPN 구성
  2. Microsoft Azure내 생성한 가상 네트워크와 Microsoft Azure내 생성한 또다른 가상 네트워크를 연결하여 하나의 네트워크를 구성하고자 하는 경우 : 사이트간 VPN 구성
  3. Microsoft Azure내 가상 네트워크에 VPN 장비를 배치한 형태로 구성하여, 클라이언트가 필요시 연결하여, 가상 네트워크를 이용하고자 하는 경우 : 지점 및 사이트간 VPN 구성
  4. 사이트간 VPN 구성을 하지 않고, 로컬 네트워크내 몇대의 서버나 클라이언트가 Microsoft Azure와 연결하여, 가상 네트워크를 이용하고자 하는 경우 : 지점 및 사이트간 VPN 구성

하나의 회사가 지리적으로 분리되어 있다고 가정해보면(서울, 부산, 광주), 하나의 회사처럼 운영되게 하기 위해, IT 엔지니어는 가장 먼저 지역간 네트워크를 일원화해야 합니다. 지리적으론 분리되어 있지만, 논리적으론 하나의 네트워크 형태로 연결하는 것이죠. 네트워크 연결에 가장 많이 사용되는 형태가 사이트 대 사이트(Site to Site) VPN입니다. 개별 지역 네트워크 가장 앞단에 VPN 장비를 배치하고, 지역간 VPN 장비끼리 터널링을 맺게 되는 것이죠.

  • 서울 : 192.168.50.0/24
  • 부산 : 192.168.100.0/24
  • 광주 : 192.168.150.0/24

3개의 구분된 네트워크를 VPN 장비로 연결하고, 네트워크 서브넷별로 VPN 장비가 라우팅을 시켜주는 형태입니다. 서울의 사용자가 광주로 향할 때, 해당 네트워크 신호는 가장 앞단에 게이트웨이로 오게 되고, 게이트웨이내 VPN 터널링 설정이 되어 있다면, 광주의 VPN 장비로 패킷이 전달되게 되겠죠. Microsoft Azure 역시, 이러한 형태를 지원하고 있습니다. 이를 사이트간 VPN 구성이라고 합니다.

image

현재 Microsoft Azure에서는 다양한 벤더의 VPN 장비를 지원하고 있습니다. (공식 지원 목록) VPN 장비간 IPSec를 이용하여 안전한 교신을 보장하고 있습니다. 공식 지원 장비 목록은 문제 발생시 Microsoft가 기술 지원을 하는 형태를 의미합니다. 만약 공식적으로 지원하는 형태의 장비가 있지 않지만, IPSec를 지원하는 VPN 장비나 소프트웨어(대표적으로 Forefront TMG)를 가지고 있다면, Microsoft Azure에서 사용하는 VPN의 IPSec 설정을 반영하여, 상호 연결은 할 수 있습니다. (문제 발생시 지원은 불가능합니다.) 관련된 IPSec IKE 설정은 여기에서 살펴볼 수 있습니다.

더불어, 공식 지원을 하고 있는 개별 장비에 대한 빠른 설정이 가능하도록 설정 반영 스크립트도 제공합니다. Microsoft Azure의 가상 네트워크내 사이트간 연결을 간단히 테스트해볼 수 있는 형태는 Windows Server 2012 이상의 RRAS(Routing and Remove Access Service)를 이용하는 것입니다. VPN 장비를 설정할 때, 2가지 형태의 게이트웨이(정적, 동적)이 있습니다. Microsoft Azure에서는 2가지 형태의 게이트웨이를 모두 지원합니다만, 정적 게이트웨이에서는 하나의 가상 네트워크가 여러 네트워크와 사이트간 VPN을 구성하는 멀티-사이트 VPN, 지점 및 사이트간 VPN 구성, Microsoft Azure내 다른 가상 네트워크 연결을 지원하지 않습니다.

너무나 당연한 것이, 정적 게이트웨이의 경우에는 하나의 주소 서브넷에 대한 VPN 터널링을 제공하는 형태이므로, 여러 서브넷(멀티 사이트)별로 네트워크 경로를 제공할 수 없습니다. 서브넷별로 네트워크 경로를 제공하는 형태를 동적 게이트웨이라고 부릅니다. 두가지 형태의 게이트웨이에 대한 자세한 설명 및 제약 사항에 대해서는 여기에 잘 정리되어 있습니다.

사이트간 VPN 구성을 선택하면, 새 로컬 네트워크 지정이 나타납니다. Microsoft Azure내 가상 네트워크의 IP 주소 서브넷과 로컬 네트워크의 IP 주소 서브넷을 세번째 페이지에서 설정하게 됩니다. 해당 페이지에서 로컬 네트워크의 이름, 로컬 네트워크내 VPN 장비의 공인 IP 주소, 그리고 로컬 네트워크의 서브넷을 추가합니다. 로컬 네트워크에 사용되는 IP 주소 서브넷이 Microsoft Azure내에서 사용하는 서브넷과 충돌이 되면 절대 안됩니다. (당연한 이야기지만..) 지점 및 사이트간 VPN 구성에 대해서는 잠시 후 살펴보겠습니다.

image

로컬 네트워크에 대한 구성을 차후 변경하고자 하는 경우, 가상 네트워크 페이지내 로컬 네트워크 항목에서 수정이 가능합니다.

image

가상 네트워크 구성의 마지막 페이지에서는 Microsoft Azure내에서 사용할 IP 주소 서브넷을 구성해야 합니다. 사이트 간 VPN 구성을 진행하고 있다면, 로컬 네트워크의 IP 주소 서브넷과 겹치지 않는 형태로 구성해야 합니다. 해당 페이지내 구성되는 주소 공간 및 서브넷에 대해서도 잘 이해해 놓아야 합니다.

image

  • 주소 공간 : Microsoft Azure내에서 네트워크를 대표하는 IP 주소 (CIDR 표기)
  • 서브넷 : 주소 공간내 네트워크를 나눠서 구성하고자 하는 경우 (CIDR 표기), 일반적인 네트워크 구성과 마찬가지로 서브넷 단위가 브로드캐스트 단위로 구분되게 됩니다. 또한 VPN 연결을 설정한 경우에는 반드시 게이트웨이 서브넷 추가 버튼을 클릭하여, VPN 장비간 연결되는 중간 네트워크에 대한 서브넷을 추가해야 합니다.(예제내 10.0.254.0/24)

같은 주소 공간내 서브넷 간에는 Microsoft Azure가 라우팅 처리를 해줍니다. Subnet-1과 Subnet-2는 별도의 게이트웨이를 내부에 구성할 필요없이 Microsoft Azure가 처리를 해준다는 의미입니다. 만약 10.0.0.100을 사용하는 가상 컴퓨터와 10.0.1.100을 사용하는 가상 컴퓨터가 완전히 별도의 네트워크에 배치되어야 한다면 두 가상 컴퓨터는 별도로 생성된 2개의 가상 네트워크가 필요합니다.

또한 같은 가상 네트워크내 2개 이상의 주소 공간을 설계한 경우에도 해당 주소 공간간 라우팅도 자동으로 처리되게 됩니다.

image

결론적으로 별도의 네트워크로 분리해야 한다면, 완전히 새로운 가상 네트워크를 설계하는 것이 가장 편리합니다. (물론 OS 레벨에서 방화벽등을 이용할 수도 있지만..) 이후 마침을 클릭하면, 새로운 가상 네트워크가 만들어지게 됩니다. VPN 설정을 하지 않은 경우에는 이제 바로 VM에서 이를 활용할 수 있습니다만, VPN을 설정한 경우에는 게이트웨이 구성 및 VPN 장비간 IPSec 통신을 위한 추가 구성이 필요합니다.

image

게이트웨이 생성을 위해서, 하단 게이트웨이 만들기를 클릭하고, 사용하려면 시나리오와 장비에서 지원하는 기술에 맞는 라우팅 형태를 선택합니다. 게이트웨이의 형태는 재생성하지 않는 한, 운영 중 변경할 수 없습니다.

image

게이트웨이 생성 작업은 약간의 시간이 소요됩니다.

image

가상 네트워크의 게이트웨이 IP 주소를 기록해놓습니다.

image

게이트웨이 생성이 완료되면, Microsoft Azure에서 설정해야 하는 작업은 모두 완료된 것입니다. 로컬 네트워크내 VPN 장비나 소프트웨어에서 Microsoft Azure와 연결할 설정을 반영해야 합니다. Microsoft Azure에서 공식적으로 지원하는 장비를 가지고 있는 경우에는 가상 네트워크 세부 페이지의 우측 VPN 장치 스크립트 다운로드 링크를 이용하면 편리합니다.

image

이를 클릭한 후, 이용하고자 하는 장비를 선택하면..

image

관련 설정 파일을 다운로드하게 됩니다.

image

Windows Server 2012 이상의 RRAS를 사용한다고 선택했을 경우, 이에 대한 구성을 진행하는 Windows PowerShell 스크립트가 다운로드됩니다.

image

항목 중 <SP_AzureGatewayIpAddress>, <SP_AzureVnetNetworkCIDR>, <SP_PresharedKey>와 같이 < >로 표시되어 있는 부분은 구성된 Microsoft Azure 설정으로 변경해야 합니다.

  • SP_AzureGatewayIpAddress : 가상 네트워크 게이트웨이 IP 주소
  • SP_AzureVnetNetworkCIDR : 가상 네트워크에서 사용하는 주소 공간, 10.0.0.0/16과 같은 형태
  • SP_PreSharedKey : VPN 장비간 인증을 위해 사용하는 공유 키(외부 공유가 안되도록 주의)

SP_PreSharedKey의 경우에는 가상 네트워크 하단 키 관리 버튼을 클릭하면 살펴볼 수 있습니다.

image

키 오른쪽에 배치된 복사 버튼을 통해 클립보드로 손쉽게 복사할 수 있습니다.

image

설정 파일내 < > 값들을 가상 네트워크의 구성 정보로 변경 후, 장비나 소프트웨어에 반영하면, Microsoft Azure 가상 네트워크와 연결되는 VPN 터널링 및 네트워크 경로 설정이 진행됩니다.

image

생성된 VPN 인터페이스를 통해 접근 가능한 네트워크 경로는 앞서 설정한 SP_AzureVnetNetworkCIDR로 반영됩니다.

image

당연한 이야기지만, 로컬 네트워크의 게이트웨이(라우터)와 VPN 장비가 분리되어 있는 경우에는 게이트웨이에서 네트워크 경로별로 VPN 장비로 라우팅을 처리해주는 작업이 추가되어야 합니다. 만약 사내 게이트웨이(라우터)가 192.168.100.254를 사용하고, VPN 장비의 내부 인터페이스가 같은 서브넷내 192.168.100.253을 사용한다면, 192.168.100.254에서 SP_AzureVnetNetworkCIDR에 해당되는 경로를 192.168.100.253으로 넘겨주는 구성이 있어야겠죠.

VPN 장비에 대한 설정이 완료된 후, Microsoft Azure의 관리 포탈을 살펴보면, 가상 네트워크와 로컬 네트워크가 연결된 모습이 보여지게 됩니다.

image

지점 및 사이트간 연결 구성은 사이트간 구성보다 쉽습니다. 별도의 로컬 네트워크에 대한 구성없이 Microsoft Azure내 가상 네트워크에 VPN 장비를 배치하는 것입니다. 이를 위해 가상 네트워크 생성시, 또는 생성 후, 지점 및 사이트간 연결 구성을 선택하면, 가상 네트워크 VPN에 연결했을 때, 클라이언트에서 사용할 IP 주소 서브넷을 지정할 수 있습니다. 이 역시, 가상 네트워크의 게이트웨이 서브넷을 통해서 가상 네트워크와 라우팅 처리가 됩니다.

image

이렇게 지점 및 사이트간 연결 구성을 완료한 후, 인증서의 구성이 필요합니다. 지점 및 사이트간 VPN 연결에 대한 VPN 클라이언트를 인증하는데 인증서가 사용됩니다. 가상 네트워크내 상단 인증서 항목을 갑니다.

image

현재 가상 네트워크에서 지원하는 인증서는 자체 서명된 인증서만 지원합니다. 이를 위해 Microsoft Visual Studio Express 2013 for Windows Desktop내 makecert라는 프로그램을 이용합니다.

makecert -sky exchange -r -n "CN=RootCertificateName" -pe -a sha1 -len 2048 -ss My "RootCertificateName.cer"

해당 명령어를 완료한 후, 생성되는 cer 파일을 가상 네트워크에 업로드합니다.

image

클라이언트에서 사용할 인증서를 생성합니다.

makecert.exe -n "CN=ClientCertificateName" -pe -sky exchange -m 96 -ss My -in "RootCertificateName" -is my -a sha1

클라이언트 인증서는 PFX 형태로 내보내기를 통해 공유할 수도 있고, 개별적으로 생성해도 됩니다.

인증서 구성이 끝나면, VPN 연결 클라이언트 프로그램을 다운로드하여 설치합니다. 해당 프로그램은 가상 네트워크내 간략 상태 항목내에 있습니다.

image

VPN 클라이언트는 Windows 7이상, Windows Server 2008 R2 이상을 지원합니다. 해당 클라이언트를 설치하면, 내부적으로 Microsoft Azure의 가상 네트워크에 접속할 수 있는 정보를 제공합니다.

image

오랜만에 포스팅치곤, 조금은 길었던 포스팅입니다. Microsoft Azure에서 IT 엔지니어가 살펴보아야 할 주요 기술/서비스들은 모두 Microsoft Azure내 가상 네트워크를 기반으로 운영되게 되므로, 잘 알아두시면 매우 유용한 기술들입니다. 또한 지속적으로 소개해드릴 여러 Microsoft Azure내 IT 엔지니어 관련 기술들에서도 필요하기에, 가장 먼저 포스팅하였습니다.

다음 포스팅에서는 가상 네트워크간 VPN 연결, 멀티-사이트 VPN 연결과 같은 가상 네트워크의 조금은 고급 구현에 대해서 살펴보겠습니다.