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

이 페이지에서는 Border Gateway Routing Protocol(BGP)을 사용하는 하나의 터널을 사용하여 기본 VPN 게이트웨이와 하나의 터널을 만드는 방법을 설명합니다.

동적 라우팅을 사용할 때는 로컬 또는 원격 트래픽 선택기를 지정하지 않으며, 대신 Cloud Router를 사용합니다. 경로 정보는 동적으로 교환됩니다.

Cloud VPN 설정 전에 고려해야 할 권장사항은 Cloud VPN 권장사항을 참조하세요.

요구사항

일반 요구사항 및 가이드라인

Cloud Router 만들기

새 HA VPN 게이트웨이를 구성할 때 새 Cloud Router를 만들거나 기존 Cloud VPN 터널 또는 VLAN 연결에 이미 사용중인 Cloud Router를 사용할 수 있습니다. 그러나 연결의 특정 ASN 요구사항으로 인해 사용하는 Cloud Router가 Partner Interconnect에 연결된 Interconnect 연결(VLAN)에 대한 BGP 세션을 이미 관리하고 있지 않아야 합니다.

시작하기 전에

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

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

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

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

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

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

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

Console

게이트웨이 구성

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

터널 구성

  1. 새 터널 항목에 대해 터널 섹션에서 다음을 지정합니다.
    • 이름 - VPN 터널의 이름입니다. 이름은 나중에 변경할 수 없습니다.
    • 설명 - 원할 경우 설명을 입력합니다.
    • 원격 피어 IP 주소 — 피어 VPN 게이트웨이의 외부 IP 주소를 지정합니다.
    • IKE 버전 - 피어 VPN 게이트웨이에서 지원하는 적절한 IKE 버전을 선택합니다. 피어 기기에서 지원되는 경우 IKEv2가 권장됩니다.
    • 공유 비밀번호 - 인증을 위해 사용되는 사전 공유 키를 제공합니다. Cloud VPN 터널의 공유 비밀번호는 피어 VPN 게이트웨이에서 상대 터널을 구성할 때 사용한 공유 비밀번호와 일치해야 합니다. 이 지침에 따라 암호적으로 강력한 공유 비밀번호를 생성할 수 있습니다.
    • 라우팅 옵션 - 동적(BGP)을 선택합니다.
    • Cloud Router - 아직 Cloud Router를 만들지 않은 경우 아래의 설명대로 옵션을 지정하여 새 Cloud Router를 만듭니다. 또는 Cloud Router가 Partner Interconnect와 연결된 Interconnect 연결에 대한 BGP 세션을 관리하지 않는 경우 기존 Cloud Router를 사용할 수 있습니다. 기존 Cloud Router를 사용하는 경우 새 BGP 세션이 생성되지만 Google ASN이 동일합니다. 새 Cloud Router를 만들려면 다음 세부정보를 지정합니다.
      • 이름 - Cloud Router의 이름입니다. 이름은 나중에 변경할 수 없습니다.
      • 설명 - 선택적으로 설명을 입력합니다.
      • Google ASN - 비공개 ASN(64512 - 65534, 4200000000 - 4294967294)을 선택합니다. 이 Google ASN은 Cloud Router에서 관리되는 모든 BGP 세션에 사용됩니다. ASN은 나중에 변경할 수 없습니다.
      • 저장 후 계속을 클릭합니다.
    • BGP 세션 - 연필 아이콘을 클릭한 후 다음 세부정보를 지정합니다. 완료되면 저장 후 계속을 클릭합니다.
      • 이름 - BGP 세션의 이름입니다. 나중에 변경할 수 없습니다.
      • 피어 ASN - 피어 VPN 게이트웨이에서 사용하는 공개 또는 비공개(64512 - 65534, 4200000000 - 4294967294) ASN입니다.
      • 공지된 경로 우선순위 - (선택사항) 'Google Cloud에 연결' 경로를 공지할 때 Cloud Router가 사용하는 기본 우선순위입니다. 자세한 내용은 경로 측정항목을 참조하세요. 피어 VPN 게이트웨이는 이를 MED VPN 값으로 가져옵니다.
      • Cloud Router BGP IPBGP 피어 IP - 2개의 BGP 인터페이스 IP 주소는 169.254.0.0/16 블록의 공통 /30 CIDR에 속하는 링크-로컬 IP 주소여야 합니다. 각 BGP IP는 경로 정보 교환을 위해 사용되는 해당 링크-로컬 IP를 정의합니다. 예를 들어 169.254.1.1169.254.1.2는 공통 /30 블록에 속합니다.
  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 Router를 만듭니다. 아래의 설명대로 옵션을 바꿉니다. 또는 Cloud Router가 Partner Interconnect와 연결된 Interconnect 연결에 대한 BGP 세션을 관리하지 않는 한 기존 Cloud Router를 사용할 수 있습니다.

    • ROUTER_NAME을 Cloud Router 이름으로 바꿉니다.
    • GOOGLE_ASN비공개 ASN(64512 - 65534, 4200000000 - 4294967294)으로 바꿉니다. Google ASN은 동일한 Cloud Router에 있는 모든 BGP 세션에 사용되며, 나중에 변경할 수 없습니다.
      gcloud compute routers create ROUTER_NAME \
      --asn GOOGLE_ASN \
      --network NETWORK \
      --region REGION \
      --project PROJECT_ID
    
  3. 다음 세부정보에 따라 Cloud VPN 터널을 만듭니다.

    • TUNNEL_NAME을 터널 이름으로 바꿉니다.
    • ON_PREM_IP를 피어 VPN 게이트웨이의 외부 IP 주소로 바꿉니다.
    • IKE_VERS를 IKEv1의 경우 1, IKEv2의 경우 2로 바꿉니다.
    • SHARED_SECRET을 공유 비밀번호로 바꿉니다. Cloud VPN 터널의 공유 비밀번호는 피어 VPN 게이트웨이에서 상대 터널을 구성할 때 사용한 공유 비밀번호와 일치해야 합니다. 이 지침에 따라 암호적으로 강력한 공유 비밀번호를 생성할 수 있습니다.
    • ROUTER_NAME을 Cloud VPN 터널에 대한 경로를 관리하기 위해 사용하려는 Cloud Router의 이름으로 바꿉니다. Cloud Router는 터널을 만들기 전에 존재해야 합니다.

      gcloud compute vpn-tunnels create TUNNEL_NAME \
          --peer-address ON_PREM_IP \
          --ike-version IKE_VERS \
          --shared-secret SHARED_SECRET \
          --router ROUTER_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  4. 인터페이스 및 BGP 피어를 만들어서 Cloud Router에 대한 BGP 세션을 구성합니다. 다음 방법 중 하나를 선택합니다.

    • Google Cloud가 링크-로컬 BGP IP 주소를 자동으로 선택하도록 하려면 다음 안내를 따르세요.

      1. Cloud Router에 새 인터페이스를 추가합니다. INTERFACE_NAME을 바꿔서 인터페이스 이름을 제공합니다.

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --region REGION \
            --project PROJECT_ID
        
      2. 인터페이스에 BGP 피어를 추가합니다. PEER_NAME을 피어 이름으로 바꾸고 PEER_ASN을 피어 VPN 게이트웨이에 구성된 ASN으로 바꿉니다.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name PEER_NAME \
            --peer-asn PEER_ASN \
            --interface INTERFACE_NAME \
            --region REGION \
            --project PROJECT_ID
        
      3. Cloud Router가 선택한 BGP IP 주소를 나열합니다. 새 인터페이스를 기존 Cloud Router에 추가한 경우 새 인터페이스의 BGP IP 주소가 가장 높은 색인 번호로 나열되어야 합니다. 피어 IP 주소는 피어 VPN 게이트웨이를 설정하는 데 사용해야 하는 BGP IP입니다.

        gcloud compute routers get-status ROUTER_NAME \
             --region REGION \
             --project PROJECT_ID \
             --format='flattened(result.bgpPeerStatus[].ipAddress, \
             result.bgpPeerStatus[].peerIpAddress)'
        

        단일 Cloud VPN 터널(색인 0)을 관리하는 Cloud Router에 대한 예상 출력은 다음과 같습니다. 여기서 GOOGLE_BGP_IP는 Cloud Router 인터페이스의 BGP IP를 나타내며, ON_PREM_BGP_IP는 해당 피어의 BGP IP를 나타냅니다.

        result.bgpPeerStatus[0].ipAddress:     GOOGLE_BGP_IP
        result.bgpPeerStatus[0].peerIpAddress: ON_PREM_BGP_IP
        
    • Google Cloud BGP 인터페이스 및 피어와 연결된 BGP IP 주소를 수동으로 할당하려면 다음 안내를 따르세요.

      1. /30 블록의 링크-로컬 BGP IP 주소 쌍을 169.254.0.0/16 범위 중에서 결정합니다. 다음 명령어에서 GOOGLE_BGP_IP를 바꿔서 이러한 BGP IP 주소 중 하나를 Cloud Router에 할당합니다. 다른 BGP IP 주소는 피어 VPN 게이트웨이에 사용됩니다. 이 주소를 사용하도록 기기를 구성하고 아래의 마지막 명령어에서 ON_PREM_BGP_IP를 바꿔야 합니다.

      2. Cloud Router에 새 인터페이스를 추가합니다. INTERFACE_NAME을 바꿔서 인터페이스 이름을 지정합니다.

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --ip-address GOOGLE_BGP_IP \
            --mask-length 30 \
            --region REGION \
            --project PROJECT_ID
        
      3. 인터페이스에 BGP 피어를 추가합니다. PEER_NAME을 피어 이름으로 바꾸고 PEER_ASN을 피어 VPN 게이트웨이에 구성된 ASN으로 바꿉니다.

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name PEER_NAME \
            --peer-asn PEER_ASN \
            --interface INTERFACE_NAME \
            --peer-ip-address ON_PREM_BGP_IP \
            --region REGION \
            --project PROJECT_ID
        

후속 작업 단계

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

  1. 피어 VPN 게이트웨이를 설정하고 여기에서 해당 터널을 구성합니다. 다음 페이지를 참조하세요.
  2. Google Cloud와 피어 네트워크에서 필요에 따라 방화벽 규칙을 구성합니다. 제안 사항은 방화벽 규칙 페이지를 참조하세요.
  3. 전달 규칙을 포함하여 터널의 상태를 확인합니다.
VPN 조직 정책 적용

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

기본 VPN 또는 HA VPN 터널을 통해 피어 VPN 게이트웨이에 허용되거나 거부되는 IP 주소 집합을 정의하는 Google Cloud 조직 정책 제약조건을 만들 수 있습니다. 이 제약조건은 이러한 피어 IP 주소의 허용 목록 또는 거부 목록을 포함하며 이 제약조건을 적용한 후에 생성된 Cloud VPN 터널에 적용됩니다. 자세한 내용은 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 파일을 전달합니다.