TOPIC/Cloud

Azure Virtual WAN을 통한 End-to-End 연결하기 (2) Point-to-Site VPN

H-Y-E-N 2023. 11. 15. 14:21

안녕하세요. HYEN입니다. 

저번 글에 이어 이번에는 Azure Virtual WAN의 가상 허브에 P2S VPN 게이트웨이를 연결하는 방법에 대해 정리해 보겠습니다. 

관련 링크 : Azure Virtual WAN을 통한 End-to-End 연결하기 (1) ExpressRoute
(https://with-cloud.tistory.com/3)

Contents

    1. 실습 전체 구성도 

    • 실습 전체 구성도는 아래와 같습니다.
    • Azure Virtual WAN을 통한 End-to-End 연결하기 (1) ExpressRoute에서 Korea Central 지역의 가상 허브에 ExpressRoute 게이트웨이를 연결하고 정상적으로 연결이 되는 것까지 확인한 상태입니다.
    • 이번에는 East US 지역의 가상 허브에 P2S VPN 게이트웨이를 연결하고 정상적으로 연결이 되었는지를 확인해 보겠습니다.

    2. 가상 허브에 P2S VPN 게이트웨이 연결 구성

    1. 가상 허브 생성 (East US)

    지역 : East US # 가상 허브를 배포할 지역 선택
    이름 : vhub-eastus-01 # 가상 허브에 지정할 이름 입력
    허브 프라이빗 주소 공간 : 200.0.0.0/24 # 허브의 주소 범위 (최소 /24)
    가상 허브 용량 : 2 라우팅 인프라 단위, 3Gbps 라우터, 2000개 VM 지원
                               # 가상 허브 라우터의 가상 머신 및 집계 처리량 선택 (해당 실습에서는 최소 용량 선택)
    허브 라우팅 기본 설정 : ExpressRoute # 가상 허브 라우터의 경로 선택 알고리즘과 관련된 설정 

    게이트웨이 배율 단위 : 1 배율 단위 - 500Mbps x 2,500개 클라이언트 지원
    지점 및 사이트 간 서버 구성 : p2s-vpn-eastus-01 # [새로 만들기]를 클릭하여 새 사용자 VPN 구성 생성 필요

    1.1 가상 머신 생성

    • 클라이언트(Point)가 될 대상이 필요하기 때문에 먼저 Hub와 연결할 [가상 머신]을 생성합니다. 
    • [기본 사항] 탭

    리소스 그룹 : rg-vwan-test# 가상 머신이 위치할 리소스 그룹 선택
    가상 머신 이름 : vm-eastus-01# 가상 머신 이름 입력
    지역 : East US# 가상 머신이 위치할 지역 선택 (가상 허브와 동일한 지역 선택)
    이미지 : Ubuntu Server 20.04 LTS - x64 Gen2# 사용하고자 하는 이미지 선택
    크기 : Standard_B2s - 2 vcpu, 4 GiB 메모리# 가상 머신 크기 선택 

    인증 형식 : 암호 
    사용자 이름 : azureuser# 사용할 사용자 이름 입력
    암호 :# 사용할 암호 입력
    • [디스크] 탭 

    OS 디스크 유형 : 표준 SSD(로컬 중복 스토리지) 
    • [네트워킹 탭]

    가상 네트워크 :# [새로 만들기] 클릭 후 설정 진행
    이름 : vnet-eastus-01# 가상 네트워크에 대한 이름 입력
    주소 범위 : 20.0.0.0/24# 가상 네트워크 주소 대역 입력
    서브넷 이름 && 주소 범위 : snet-vm-01&& 20.0.0.0/24# 서브넷에 대한 이름 및 주소 범위 입력

    • 이 외 구성은 Default 값을 유지합니다. 
    • [검토 + 만들기]를 클릭하여 가상 머신을 생성합니다.

    1.2 가상 머신 내 OpenVPN 설치 및 인증서 생성

    • OpenVPN 터널 유형을 사용하는 인증서 인증을 위해서는 클라이언트에 세부 구성이 필요합니다.  
    • [가상 머신] 접속 
      •  ssh azureuser@<가상 머신의 공인 ip 주소> 
      • Linux VM 접근이 가능한 putty 또는 Terminal 창에서 상기 명령어를 입력하여 생성한 [가상 머신]에 접속합니다.
      • 생성 시에 설정한 ID/Password를 입력하여 접속합니다.

     

    지점 및 사이트 간 인증서 생성 및 내보내기: Linux - strongSwan - Azure VPN Gateway

    Linux(strongSwan) CLI를 사용하여 자체 서명된 루트 인증서를 만들고, 공개 키를 내보내고, 클라이언트 인증서를 생성하는 방법을 알아봅니다.

    learn.microsoft.com

    •  openssl x509 -in caCert.pem -outform der | base64 -w0 ; echo 명령어 입력 시 출력되는 값을 복사해 둡니다.

    • 클라이언트 인증서 생성 중 마지막 단계의 p12 번들 생성 부분에서 하기 명령어를 입력하여 p12 번들 대신 pfx 파일을 생성합니다.
      •  openssl pkcs12 -in "${USERNAME}Cert.pem" -inkey "${USERNAME}Key.pem" -certfile caCert.pem -export -out "${USERNAME}.pfx" -password "pass:${PASSWORD}””
    • 하기 링크를 참고하여 OpenVPN 구성 요소를 설치합니다.
      참고 링크 : https://learn.microsoft.com/ko-kr/azure/vpn-gateway/point-to-site-vpn-client-cert-linux#openvpn
     

    P2S VPN 클라이언트 구성 - 인증서 인증 - Linux - Azure VPN Gateway

    인증서 인증을 사용하는 VPN Gateway P2S 구성에 대해 Linux VPN 클라이언트 솔루션을 구성하는 방법을 알아봅니다.

    learn.microsoft.com

    1.3 지점 및 사이트 간 서버 구성

    • [지점 및 사이트 간 서버 구성] 하단의 [새로 만들기]를 클릭하여 새 사용자 VPN 구성을 생성합니다. 
    • [기본 사항] 탭

    이름 : p2s-vpn-eastus-01 # 새 사용자 VPN 구성에 대한 이름 입력
    터널 종류 : OpenVPN # 사용하고자 하는 터널 선택 (인증 메커니즘의 경우 다음 탭에서 설정 필요)
    • [Azure 인증서]

    Azure 인증서 : 예 
    루트 인증서 이름 : rootCert # 루트 인증서에 대한 이름 입력
    공용 인증서 데이터 : # 1.2 가상 머신 내 OpenVPN 설치 및 인증서 생성에서 복사해 둔 값 붙여 넣기
    • 이 외 구성은 Default 값을 유지합니다. 
    • [검토 + 만들기]를 클릭하여 [사용자 VPN 구성]을 생성합니다.
    • [주소 풀] 구성 

    • [사용자 그룹을 주소 풀 매핑으로 구성] 부분에서 [구성]을 클릭하여 [주소 풀]을 지정합니다. 

    • 주소 풀은 Azure의 [가상 네트워크]에서 설정한 대역과 클라이언트가 사용할 주소 대역과 다른 제 3의 대역이어야 합니다.
      • 현재 가상 허브의 주소 대역은 200.0.0.0/24이며 클라이언트의 주소 대역은 20.0.0.0/24입니다.  
    • [검토 + 만들기]를 클릭하여 가상 허브 생성을 완료합니다. (30분 정도 소요) 

    2. 클라이언트 가상 머신 구성 

    • East US 지역의 가상 허브를 클릭한 후 [연결] 블레이드의 [사용자 VPN(지점 대 사이트)] 탭을 클릭합니다.

    • [가상 허브 사용자 VPN 프로필 다운로드]를 클릭한 후 인증 형식은 [EAPTLS]를 선택합니다.

    • 상단의 [프로필 생성 및 다운로드]를 클릭하여 zip 파일을 다운로드 받습니다. 

    • zip 파일 중 [OpenVPN] 폴더를 압축 해제 합니다. 
    • vpnconfig.ovpn 파일을 열고 [가상 머신] 내 생성한 profileinfo.txt의 값을 붙여 넣습니다. 
    • 저장 후 [가상 머신] 내에 vpnconfig.ovpn 파일을 저장합니다. 
    • 하기 명령어를 입력하여 VPN 구성을 마무리합니다.
       sudo openvpn --config vpnconfig.ovpn& 

    3. 연결 확인

    3.1. 지점 및 사이트 간 세션 연결 확인

    • East US 지역의 가상 허브를 클릭한 후 [연결] 블레이드의 [사용자 VPN(지점 대 사이트)] 탭을 클릭합니다.

    • [지점 및 사이트 간 세션]을 클릭하여 클라이언트 연결이 잘 되었는지 확인합니다.

    • 연결이 잘 된 것을 확인할 수 있습니다. 

    3.2 사용자 VPN 구성 확인

    • 생성한 [Virtual WAN]의 [연결] 블레이드의 [사용자 VPN 구성] 탭에서 P2S VPN 연결 자체에 대한 세부 내역을 확인할 수 있습니다. 

    3.3 허브 상태 및 허브 - P2S VPN Gateway 연결 확인

    • 생성한 [Virtual WAN]의 [연결] 블레이드의 [허브] 탭에서 East US 지역에 생성된 가상 허브의 연결 상태 및 P2S VPN Gateway와의 연결 상태를 확인할 수 있습니다.

    3.4 Korea Central 지역의 [ExpressRoute Circuit]의 [경로 테이블] 확인

    • ExpressRoute Circuit에서 [경로 테이블]을 확인합니다.

    • 192.168 대역 (P2S VPN 주소 풀 대역)의 경우 100.0 대역인 Korea Central 지역의 가상 허브를 지나서 ExpressRoute Gateway와 통신하는 것을 확인할 수 있습니다.

    3.5 Korea Central 지역의 [가상 머신]과 East US 지역의 [가상 머신] 간 end to end 통신 확인

    • Korea Central 지역의 [가상 머신]에 접속합니다.

    • 해당 [가상 머신]에서 East US 지역의 [가상 머신]으로 접속이 가능한지 확인합니다. 
      •  ssh azureuser@<VPN 주소 풀 대역에서 할당 받은 사설 ip>  입력


    이번 글에서는 가상 허브와 P2S VPN Gateway를 연결하고 Korea Central 지역의 가상 머신과 end-to-end 통신이 가능한지 확인해 보았습니다. 다음 글에서는 마지막으로 가상 허브와 VNet을 연결하고 각 지역의 Spoke VM들간 통신 및 Throughput Test에 대해 다뤄보도록 하겠습니다. ☺️

    728x90
    320x100
    SMALL