정적 라우팅을 사용하여 기본 VPN 만들기

이 페이지에서는 정적 라우팅을 사용하여 기본 VPN 게이트웨이와 하나의 터널을 만드는 방법을 설명합니다. 이 터널은 정책 기반 또는 경로 기반 터널입니다.

경로 기반 VPN에서는 원격 트래픽 선택기만 지정합니다. 로컬 트래픽 선택기를 지정해야 할 경우에는 대신 정책 기반 라우팅을 사용하는 Cloud VPN 터널을 만드세요.

라우팅 옵션 차이점

Google Cloud Console에서 정책 기반 터널을 만들 때 기본 VPN은 다음 작업을 모두 수행합니다.

  • 터널의 로컬 트래픽 선택기를 지정한 IP 범위로 설정합니다.
  • 터널의 원격 트래픽 선택기를 원격 네트워크 IP 범위에 지정한 IP 범위로 설정합니다.
  • 원격 네트워크 IP 범위의 각 범위에 대해 Google Cloud는 대상의 프리픽스가 범위의 CIDR이고 다음 홉이 터널인 커스텀 정적 경로를 만듭니다.

Cloud Console에서 경로 기반 터널을 만들 때 기본 VPN은 다음 두 작업을 모두 수행합니다.

  • 터널의 로컬 및 원격 트래픽 선택기를 임의의 IP 주소로 설정합니다(0.0.0.0/0).
  • 원격 네트워크 IP 범위의 각 범위에 대해 Google Cloud는 대상의 프리픽스가 범위의 CIDR이고 다음 홉이 터널인 커스텀 정적 경로를 만듭니다.

gcloud 명령줄에서 정책 기반 또는 경로 기반 터널을 만들 때 터널의 트래픽 선택기도 같은 방식으로 정의됩니다. 그러나 커스텀 정적 경로는 별도의 명령어로 만들기 때문에 해당 경로는 더욱 세밀하게 제어할 수 있습니다. 자세한 내용은 네트워크 및 터널 라우팅을 참조하세요.

트래픽 선택기당 여러 CIDR 지정

트래픽 선택기에 지정할 수 있는 CIDR 수는 IKE 버전에 따라 다릅니다. 추가 정보 또는 중요한 배경 정보는 라우팅 옵션 및 트래픽 선택기트래픽 선택기당 여러 CIDR을 신중하게 검토하세요.

시작하기 전에

Google Cloud에서 다음 항목을 설정하면 Cloud VPN을 더 쉽게 구성할 수 있습니다.

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Cloud Console의 프로젝트 선택기 페이지에서 Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Cloud SDK 설치 및 초기화
  1. gcloud 명령어를 사용 중인 경우 다음 명령어로 프로젝트 ID를 설정합니다. 이 페이지의 gcloud 관련 안내에서는 명령어를 실행하기 전에 프로젝트 ID를 설정했다고 가정합니다.
  gcloud config set project [PROJECT_ID]

다음 명령어를 사용하면 이미 설정된 프로젝트 ID도 볼 수 있습니다.

  gcloud config list --format='text(core.project)'

커스텀 Virtual Private Cloud 네트워크 및 서브넷 만들기

기본 VPN 게이트웨이 및 터널을 만들기 전에 기본 VPN 게이트웨이를 만들 리전에 하나의 Virtual Private Cloud 네트워크와 하나 이상의 서브넷을 만들어야 합니다.

게이트웨이 및 터널 만들기

VPN 설정 마법사는 기본 VPN 게이트웨이를 만들기 위한 유일한 Console 옵션입니다. 마법사에는 기본 VPN 게이트웨이, 터널, BGP 세션, 외부 VPN 게이트웨이 리소스를 만들기 위한 모든 필수 구성 단계가 포함되어 있습니다. 하지만 특정 단계를 나중에 완료할 수도 있습니다. 예를 들어 BGP 세션은 나중에 구성해도 됩니다.

VPN 만들기 버튼은 HA VPN 게이트웨이 만들기만 지원합니다.

VPN 마법사

게이트웨이 구성

  1. Google Cloud Console에서 VPN 페이지로 이동합니다.
    VPN 페이지로 이동
  2. VPN 설정 마법사를 클릭합니다.
  3. VPN 만들기 페이지에서 기본 VPN을 지정합니다.
  4. 계속을 클릭합니다.
  5. VPN 연결 만들기 페이지에서 다음 게이트웨이 설정을 지정합니다.
    • 이름 - VPN 게이트웨이의 이름입니다. 이름은 나중에 변경할 수 없습니다.
    • 설명 - 원할 경우 설명을 추가합니다.
    • 네트워크 - VPN 게이트웨이와 터널을 만들 기존 VPC 네트워크를 지정합니다.
    • 리전 - Cloud VPN 게이트웨이 및 터널은 리전별 개체입니다. 게이트웨이가 있는 Google Cloud 리전을 선택합니다. 다른 리전에 있는 인스턴스 및 다른 리소스는 경로 순서에 따라 이그레스 트래픽에 터널을 사용할 수 있습니다. 최상의 성능을 원한다면 관련 Google Cloud 리소스와 동일한 리전에서 게이트웨이와 터널을 찾습니다.
    • IP 주소 - 리전별 외부 IP 주소를 만들거나 기존 주소를 선택합니다.

터널 구성

  1. 터널 섹션에서 새 터널에 대해 다음 설정을 지정합니다.

    • 이름 - VPN 터널의 이름입니다. 이름은 나중에 변경할 수 없습니다.
    • 설명 - 원할 경우 설명을 입력합니다.
    • 원격 피어 IP 주소 — 피어 VPN 게이트웨이의 외부 IP 주소를 지정합니다.
    • IKE 버전 - 피어 VPN 게이트웨이에서 지원하는 적절한 IKE 버전을 선택합니다. 피어 기기에서 지원되는 경우 IKEv2가 권장됩니다.
    • 공유 보안 비밀 - 인증을 위해 사용되는 사전 공유 키를 제공합니다. Cloud VPN 터널의 공유 보안 비밀은 피어 VPN 게이트웨이에서 상대 터널을 구성할 때 사용한 보안 비밀과 일치해야 합니다. 이 지침에 따라 암호적으로 강력한 공유 보안 비밀을 생성할 수 있습니다.

    정책 기반 터널

    • 라우팅 옵션에서 정책 기반을 선택합니다.
    • 원격 네트워크 IP 범위에서 피어 네트워크에서 사용된 IP 범위를 공백으로 구분된 목록으로 제공합니다. 이것은 Cloud VPN의 관점에서 볼 때 '오른쪽'에 있는 원격 트래픽 선택기입니다.
    • 로컬 IP 범위에서 다음 방법 중 하나를 선택합니다.
      • 로컬 서브네트워크 메뉴를 사용하여 기존의 로컬 IP 범위를 선택합니다.
      • 로컬 IP 범위 필드를 사용하여 VPC 네트워크에서 사용된 IP 범위를 공백으로 구분된 목록으로 입력합니다. 중요한 고려 사항은 트래픽 선택기를 참조하세요.

    경로 기반 터널

    • 라우팅 옵션 - 경로 기반을 선택합니다.
    • 원격 네트워크 IP 범위 - 피어 네트워크에서 사용된 IP 범위를 공백으로 구분된 목록으로 제공합니다. 이러한 범위는 다음 홉이 이 VPN 터널인 커스텀 정적 경로를 만드는 데 사용됩니다.
  2. 동일한 게이트웨이에 터널을 더 만들어야 할 경우, 터널 추가를 클릭하고 이전 단계를 반복합니다. 터널은 나중에 더 추가할 수 있습니다.

  3. 만들기를 클릭합니다.

gcloud

다음 명령어에서 다음 항목을 바꿉니다.

  • project-id를 프로젝트 ID로 바꿉니다.
  • network를 Google Cloud 네트워크 이름으로 바꿉니다.
  • region을 게이트웨이 및 터널을 만들어야 하는 Google Cloud 리전으로 바꿉니다.
  • (선택사항) --target-vpn-gateway-region은 기본 VPN 게이트웨이가 작동할 리전입니다. 값은 --region과 같아야 합니다. 지정하지 않을 경우 이 옵션이 자동으로 설정됩니다. 이 옵션은 이 명령어 호출의 기본 compute/region 속성 값을 재정의합니다.
  • gw-name을 게이트웨이 이름으로 바꿉니다.
  • gw-ip-name을 게이트웨이에서 사용되는 외부 IP 이름으로 바꿉니다.

다음 명령어 시퀀스를 완성하여 Google Cloud 게이트웨이를 만듭니다.

  1. Cloud VPN 게이트웨이에 대한 리소스를 만듭니다.

    1. 대상 VPN 게이트웨이 객체를 만듭니다.

      gcloud compute target-vpn-gateways create gw-name \
          --network network \
          --region region \
          --project project-id
      
    2. 리전 외부(정적) IP 주소를 예약합니다.

      gcloud compute addresses create gw-ip-name \
          --region region \
          --project project-id
      
    3. 피어 VPN 게이트웨이를 구성할 때 사용할 수 있도록 IP 주소를 적어 둡니다.

      gcloud compute addresses describe gw-ip-name \
          --region region \
          --project project-id \
          --format='flattened(address)'
      
    4. 3개의 전달 규칙을 만듭니다. 이러한 규칙은 Google Cloud에 ESP(IPsec), UDP 500, UDP 4500 트래픽을 게이트웨이로 전송하도록 지시합니다.

      gcloud compute forwarding-rules create fr-gw-name-esp \
          --ip-protocol ESP \
          --address gw-ip-name \
          --target-vpn-gateway gw-name \
          --region region \
          --project project-id
      
      gcloud compute forwarding-rules create fr-gw-name-udp500 \
          --ip-protocol UDP \
          --ports 500 \
          --address gw-ip-name \
          --target-vpn-gateway gw-name \
          --region region \
          --project project-id
      
      gcloud compute forwarding-rules create fr-gw-name-udp4500 \
          --ip-protocol UDP \
          --ports 4500 \
          --address gw-ip-name \
          --target-vpn-gateway gw-name \
          --region region \
          --project project-id
      
  2. 다음 세부정보에 따라 Cloud VPN 터널을 만듭니다.

    • tunnel-name을 터널 이름으로 바꿉니다.
    • on-prem-ip를 피어 VPN 게이트웨이의 외부 IP 주소로 바꿉니다.
    • ike-vers를 IKEv1의 경우 1 또는 IKEv2의 경우 2로 바꿉니다.
    • shared-secret를 공유 보안 비밀로 바꿉니다. Cloud VPN 터널의 공유 보안 비밀은 피어 VPN 게이트웨이에서 상대 터널을 구성할 때 사용한 보안 비밀과 일치해야 합니다. 이 지침에 따라 암호적으로 강력한 공유 보안 비밀을 생성할 수 있습니다.

    정책 기반 VPN:

    • local-ip-ranges를 쉼표로 구분된 Google Cloud IP 범위 목록으로 바꿉니다. 예를 들어 VPC 네트워크의 각 서브넷에 대해 CIDR 블록을 제공할 수 있습니다. 이것은 Cloud VPN의 관점에서 볼 때 '왼쪽'에 있습니다.
    • remote-ip-ranges를 피어 네트워크 IP 범위의 쉼표로 구분한 목록으로 바꿉니다. 이것은 Cloud VPN의 관점에서 볼 때 '오른쪽'에 있습니다.

    정책 기반 VPN 명령어:

    gcloud compute vpn-tunnels create tunnel-name \
        --peer-address on-prem-ip \
        --ike-version ike-vers \
        --shared-secret shared-secret \
        --local-traffic-selector=local-ip-ranges \
        --remote-traffic-selector=remote-ip-ranges \
        --target-vpn-gateway gw-name \
        --region region \
        --project project-id
    

    경로 기반 VPN:

    gcloud compute vpn-tunnels create tunnel-name \
        --peer-address on-prem-ip \
        --ike-version ike-vers \
        --shared-secret shared-secret \
        --local-traffic-selector=0.0.0.0/0 \
        --remote-traffic-selector=0.0.0.0/0 \
        --target-vpn-gateway gw-name \
        --region region \
        --project project-id
    
  3. 이전 단계의 --remote-traffic-selector 옵션에서 지정한 각 원격 IP 범위에 대한 정적 경로를 만듭니다. 각 원격 IP 범위에 대해 이 명령어를 반복하여 route-name을 경로의 고유 이름으로 바꾸고 [REMOTE_IP_RANGE]는 적합한 원격 IP 범위로 바꿉니다.

    gcloud compute routes create route-name \
        --destination-range remote-ip-range \
        --next-hop-vpn-tunnel tunnel-name \
        --network network \
        --next-hop-vpn-tunnel-region region \
        --project project-id
    

후속 작업 단계

새 Cloud VPN 게이트웨이 및 터널을 사용하려면 먼저 다음 단계를 완료해야 합니다.

  1. 피어 VPN 게이트웨이를 설정하고 여기에서 해당 터널을 구성합니다. 다음 페이지를 참조하세요.
  2. Google Cloud 및 피어 네트워크에서 필요에 따라 방화벽 규칙을 구성합니다. 제안 사항은 방화벽 규칙 페이지를 참조하세요.
  3. 전달 규칙을 포함하여 터널의 상태를 확인합니다.
  4. 프로젝트 라우팅 테이블로 이동하고 '다음 홉 유형:VPN 터널'을 필터링하여
    VPN 경로를 볼 수 있습니다.
VPN 조직 정책 적용

피어 VPN 게이트웨이의 IP 주소를 제한하는 조직 정책 제약조건 적용

기본 VPN 또는 HA VPN 터널을 통해 피어 VPN 게이트웨이에 허용되거나 거부되는 IP 주소 집합을 정의하는 Google Cloud 조직 정책을 제약조건을 만들 수 있습니다. 이 제약조건에는 제약조건을 적용한 후 생성되는 Cloud VPN 터널에 적용되는 피어 IP 주소에 대한 허용 목록 또는 거부 목록이 포함되어 있습니다. 자세한 내용은 Cloud VPN 개요를 참조하세요.

필수 권한

조직 또는 프로젝트 수준에서 피어 IP 제약조건을 설정하려면 먼저 조직에 대한 조직 정책 관리자(orgpolicy.policyAdmin) 역할이 있어야 합니다.

제약조건 설정 방법

조직 정책을 만들고 이를 조직, 폴더, 프로젝트에 연결하려면 다음 섹션에 표시된 예시를 사용하고 제약조건 사용의 단계를 따릅니다.

Cloud VPN 터널을 통해 특정 피어 IP 주소의 연결 제한

특정 피어 IP 주소만 허용하려면 다음 단계를 수행하세요.

  1. 다음 명령어를 입력하여 조직 ID를 찾습니다.
    gcloud organizations list

    명령어 출력은 다음 예시와 같이 표시됩니다.

          DISPLAY NAME             ID
          example-organization     29252605212
        
  2. 정책을 정의하는 JSON 파일을 만듭니다. 다음 예시에 표시된 것처럼 정책을 JSON 파일로 제공해야 합니다.

         {
           "constraint": "constraints/compute.restrictVpnPeersIPs",
           "listPolicy": {
             "allowedValues": [
               "100.1.1.1",
             ],
           }
         }
       
  3. gcloud Resource Manager set-policy 명령어를 사용하여 조직 정책을 설정합니다. 이 때 JSON 파일을 전달하고, 이전 단계에서 검색된 organization-id를 사용합니다.

Cloud VPN 터널을 통해 피어 IP의 연결 제한

Cloud VPN 터널이 새로 생성되지 않도록 금지하려면 이 예시 제약조건의 단계를 따르세요.

  1. 정책을 설정하려는 리소스 계층 구조에서 노드 ID 또는 조직 ID를 찾습니다.
  2. 다음 예시와 같이 JSON 파일을 만듭니다.

        {
          "constraint": "constraints/compute.restrictVpnPeersIPs",
          "listPolicy": {
            "allValues": "DENY"
          }
        }
    
  3. 특정 피어 IP 주소를 제한할 때와 동일한 명령어를 입력하여 JSON 파일을 전달합니다.