VPN 게이트웨이 작성

VPC용 VPC 간 연결( IBM Cloud VPN )을 생성하여 VPC를 온프레미스 네트워크나 다른 VPC와 같은 다른 사설 네트워크에 안전하게 연결할 수 있습니다.

시작하기 전에 VPN 게이트웨이에 대한 계획 고려 사항과 VPN 게이트웨이의 알려진 제한, 문제 및 제한 사항을 검토하세요.

콘솔에서 VPN 게이트웨이 만들기

콘솔에서 VPN 게이트웨이를 만들려면 다음 단계를 따르세요:

  1. 브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인하세요.

  2. 탐색 메뉴 탐색 메뉴 아이콘을 선택한 다음 인프라 VPC 아이콘 > 네트워크 > VPN을 클릭합니다.

  3. 사이트 간 게이트웨이 > VPN 게이트웨이 탭을 선택했는지 확인하십시오.

  4. VPN for VPC 페이지에서 작성을 클릭한 후 사이트 대 사이트 게이트웨이 타일을 선택하십시오.

  5. 다음 정보를 지정하십시오.

    • 지역- VPN 게이트웨이를 프로비저닝할 지역을 선택합니다.

    • VPN 게이트웨이 이름 - VPN 게이트웨이의 이름을 입력하십시오(예: my-vpn-gateway).

    • 리소스 그룹- VPN 게이트웨이의 리소스 그룹을 선택하십시오.

    • 태그 - 선택적으로 이 VPN 게이트웨이를 식별하는 태그를 추가하십시오.

    • 액세스 관리 태그-선택적으로 액세스 제어 관계를 구성하는 데 도움이 되도록 자원에 액세스 관리 태그를 추가하십시오. 액세스 관리 태그의 유일한 지원 형식은 key:value입니다. 자세한 정보는 태그를 사용하여 리소스에 대한 액세스 제어를 참조하십시오.

    • 가상 사설 클라우드 - VPC for the VPN 게이트웨이를 선택하십시오.

    • 서브넷- VPN 게이트웨이를 생성할 서브넷을 선택합니다. 중요 서브넷 정보는 계획 고려사항을 참조하십시오.

    • 모드-정책 기반 또는 라우트 기반 VPN을 선택하십시오. VPN 유형에 대한 자세한 정보는 VPN 기능을 참조하십시오.

    • ASN- VPN 게이트웨이의 숫자 식별자입니다. 이 값은 BGP 피어링을 위한 로컬 네트워크를 식별하며, 온프레미스 디바이스와의 BGP 세션 설정 중에 사용됩니다.

    • 광고된 CIDR(선택 사항)- 원격 VPN 피어에게 IPv4 네트워크 범위를 광고하는 CIDR 범위 값입니다.

      ASN 값은 동적 라우팅에 필요합니다. ASN을 지정하지 않으면 기본 ASN인 64520 으로 VPN 게이트웨이가 생성됩니다. VPN 게이트웨이를 전송 게이트웨이에 연결한 후에는 로컬 ASN 값을 변경할 수 없습니다.

  6. VPC용 VPN 연결 섹션에서 스위치를 켜서 이 게이트웨이와 VPN 외부의 네트워크 간에 연결을 설정하십시오. 게이트웨이를 프로비저닝한 후에도 VPN 연결을 추가할 수 있습니다. '연결 세부 정보' 섹션에서 다음 정보를 입력하십시오:

    • VPN 연결 이름 - 연결의 이름을 입력하십시오(예: my-connection).

    • 연결 유형- 정적 또는 동적 연결 유형을 선택합니다.

    • 피어 게이트웨이 주소-VPC 외부의 네트워크에 대한 VPN 게이트웨이의 공용 IP 주소 또는 FQDN을 통해 피어 디바이스를 지정하십시오.

    • 피어 ASN(동적 경로 기반만 해당 )- 연결 유형으로 동적을 선택한 경우 피어 ASN을 지정해야 합니다. 이 값은 VPN이 경로를 교환하는 원격 피어 네트워크를 식별합니다.

      0, 13884, 36351, 64512, 64513, 65100, 65200–‍65234, 65402‍–‍65433, 65500, 4201065000‍–‍4201065999 등 특정 ASN 값은 제한되어 있으며 피어 ASN으로 사용할 수 없습니다. 이러한 값은 예약되어 있거나 비공개 ASN 범위의 일부이며 라우팅 충돌을 일으킬 수 있습니다.

    • 확립 모드- 양방향 또는 피어 전용을 선택하십시오.

      • 양방향 모드는 VPN 게이트웨이의 양쪽 어느 한쪽에서든 IKE 프로토콜 협상(또는 키 갱신 프로세스)을 시작합니다.
      • 피어 전용 모드에서는 피어가 이 VPN 게이트웨이 연결에 대한 IKE 프로토콜 조정을 시작할 수 있습니다. 또한 피어는 연결이 설정된 후 키 재조정 프로세스를 시작해야 합니다.

      피어 디바이스가 NAT 디바이스 뒤에 있고 공용 IP 주소가 없는 경우 피어 전용을 지정해야 합니다.

    • 사전 공유된 키 - VPC 외부 네트워크에 대한 VPN 게이트웨이의 인증 키를 지정하십시오. 사전 공유 키는 16진수 문자열 또는 인쇄 가능한 ASCII 문자의 암호구문입니다. 대부분의 피어 게이트웨이 유형과 호환 가능하려면 이 문자열이 다음 규칙을 따라야 합니다.

      • 숫자, 소문자 또는 대문자, 또는 다음 특수 문자의 조합일 수 있습니다: - + & ! @ # $ % ^ * ( ) . , :
      • 문자열의 길이는 6 - 128자여야 합니다.
      • 0x 또는 0s로 시작할 수 없습니다.
    • 트래픽 분산(경로 기반 VPN만 해당 )- VPC 경로의 다음 홉이 VPN 연결일 때 VPN 게이트웨이의 활성 터널 간에 트래픽을 자동으로 분산하려면 이 옵션을 사용하도록 설정합니다. 이 옵션은 두 개의 VPN 터널이 원격 피어 네트워크에 연결되는 경우 처리량을 최대화하는 데 유용합니다. 이 옵션을 활성화하지 않으면 VPN 게이트웨이는 더 작은 공인 IP를 가진 터널을 기본 경로로 선택하고 기본 터널이 다운되는 경우에만 보조 터널로 전환합니다. 자세한 내용은 사용 사례 4: 라우팅 기반 VPN을 위한 트래픽 분산하기를 참조하세요.

    • 로컬 서브넷(정책 기반 VPN 전용) - VPN 터널을 통해 연결할 VPC 내의 서브넷을 하나 이상 지정하십시오.

    • 피어 서브넷(정책 기반 VPN 전용)- VPN 터널을 통해 연결할 피어 네트워크 내의 서브넷을 하나 이상 지정합니다.

      로컬 및 피어 서브넷 사이의 서브네트 범위 겹침이 허용되지 않습니다.

  7. 터널 세부 정보 섹션(동적 경로 기반만 해당)에서 BGP를 사용한 동적 라우팅에 필요한 터널 및 피어 인터페이스 IP를 지정합니다.

    • 터널 인터페이스 IP- VPN 터널의 VPN 게이트웨이 측에 할당되는 IP 주소를 지정합니다.

    • 피어 인터페이스 IP- VPN 터널의 원격 네트워크 측에 할당되는 IP 주소를 지정합니다. 이 주소는 온프레미스 장치 또는 피어 VPN 게이트웨이입니다.

      터널과 피어 인터페이스 IP는 연속적이어야 하며 동일한 /30 서브넷에 속해야 합니다. 이 서브넷은 4개의 IP 주소를 제공하지만 첫 번째(네트워크 주소)와 마지막(브로드캐스트 주소)은 예약되어 있습니다. 예를 들어 서브넷 192.168.0.0/30 에서 사용 가능한 IP는 192.168.0.1192.168.0.2 입니다. 192.168.0.1 을 터널 1 인터페이스에 할당하는 경우 192.168.0.2 을 피어 1 인터페이스에 할당해야 합니다. 마찬가지로 터널 2의 경우 192.168.0.4/30 과 같은 다른 /30 서브넷을 사용합니다. 이 경우 192.168.0.5 을 터널 2 인터페이스에, 192.168.0.6 을 피어 2 인터페이스에 할당합니다. 또한 IPsec 연결을 설정하는 데 사용되는 터널 IP는 Transit Gateway 연결에 선택된 CIDR 범위와 겹칠 수 없습니다.

  8. 'Dead 피어 감지' 섹션에서, VPN 게이트웨이가 피어 게이트웨이가 활성화되어 있는지 확인하기 위해 메시지를 전송하는 방식을 구성합니다. 다음 정보를 지정하십시오.

    • 조치 - 피어 게이트웨이가 응답을 중지하는 경우 취할 수 있는 작동 중지 피어 발견 조치입니다. 예를 들어, 게이트웨이가 즉시 연결 협상을 다시 수행하게 하려면 다시 시작을 선택하십시오.
    • 간격(초) - 피어 게이트웨이의 활성 여부를 확인하는 빈도입니다. 기본적으로 메시지는 2초마다 전송됩니다.
    • 제한시간(초) - 피어 게이트웨이의 응답을 기다리는 시간입니다. 기본적으로 10초 내에 응답이 수신되지 않을 경우 피어 게이트웨이가 더 이상 활성 상태가 아닌 것으로 간주됩니다.
  9. 정책 섹션에서 연결의 1단계 및 2단계 협상에 사용할 IKE(Internet Key Exchange) 및 IPSec(Internet Protocol Security) 옵션을 지정하십시오.

    • 게이트웨이가 연결을 자동으로 설정하도록 하려면 자동을 선택하십시오.
    • 다음과 같은 경우 사용자 지정 정책을 선택하거나 생성합니다:
      • 특정 보안 요구 사항을 적용해야 합니다.
      • 다른 네트워크의 VPN 게이트웨이가 설정 중에 자동으로 협상되는 보안 제안을 지원하지 않습니다.

    연결에 대해 지정한 IKE 및 IPsec 보안 옵션은 VPC 외부의 네트워크에 있는 피어 게이트웨이에서 설정된 옵션과 정확히 일치해야 합니다.

  10. 고급 옵션 섹션에서 기본 IKE ID를 사용하는 대신 로컬 및 피어 IKE ID를 사용자 정의할 수 있습니다. 최대 하나의 피어 IKE ID를 지정할 수 있습니다.

    정책 기반 VPN 게이트웨이의 경우 최대 하나의 로컬 IKE ID를 구성할 수 있습니다. 라우트 기반 VPN 게이트웨이의 경우, 로컬 IKE ID를 구성하려면 두 개를 제공해야 합니다. 멤버에 값을 입력하거나 입력란을 비워둘 수 있습니다.

    • 로컬 IKE ID-로컬 IKE ID의 유형을 선택한 후 해당 값을 입력하십시오. 예를 들어, 4바이트의 단일 IPv4 주소(9.168.3.4), FQDN(my-vpn.example.com), 호스트 이름(my-host), 또는 base64-encoded 키 ID(MTIzNA==)를 입력할 수 있습니다.

      • 정적 라우트 모드는 활성-활성 모드의 두 멤버로 구성되며, 여기서 첫 번째 ID는 첫 번째 멤버에 적용되고 두 번째 ID는 두 번째 멤버에 적용됩니다. 로컬 IKE ID를 지정하지 않으면 유형은 IPv4 주소이고 값은 멤버 VPN 연결 터널의 공용 IP 주소입니다.

      • 정책 모드는 활성-대기 모드의 두 멤버로 구성됩니다. 로컬 IKE 신원은 활성 멤버에 적용됩니다. 값을 지정하지 않으면, 로컬 IKE ID는 VPN 게이트웨이의 공용 IP 주소가 됩니다.

    • 피어 IKE ID-피어 IKE ID의 유형을 선택한 후 해당 값을 입력하십시오. 예를 들어, IPv4 주소(9.168.3.4), FQDN(my-vpn.example.com), 호스트 이름(my-host) 또는 base64-encoded 키 ID(MTIzNA==)를 입력할 수 있습니다.

      피어 IKE 신원은 활성 구성원에게 적용됩니다. 값을 지정하지 않으면 피어 게이트웨이의 IPv4 주소 또는 FQDN을 사용하십시오.

CLI를 사용하여 VPN 게이트웨이 생성하기

시작하기 전에 CLI 환경을 설정 하십시오.

CLI에서 VPN 게이트웨이를 생성하려면 다음 명령을 입력하십시오:

ibmcloud is vpn-gateway-create VPN_GATEWAY_NAME SUBNET
    [--mode policy | route]
    [--advertised-cidrs IPv4_NETWORK_RANGE]
    [--local-asn ASN_NUMBER]
    [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME]
    [--output JSON] [-q, --quiet]

여기서:

VPN_GATEWAY_NAME
VPN 게이트웨이의 이름입니다.
SUBNET
서브넷의 ID입니다.
--mode
VPN 게이트웨이의 모드입니다. 다음 중 하나: policy, route.
--advertised-cidrs
IPv4 네트워크 범위를 설정하여 원격 VPN 피어에게 주소를 알릴 수 있습니다.
--local-asn
BGP 피어링을 위해 로컬 네트워크를 식별합니다.
--resource-group-id
리소스 그룹의 ID입니다. 이 옵션은 --resource-group-name`` 옵션과 상호 배타적입니다.
--resource-group-name
자원 그룹의 이름입니다. 이 옵션은 --resource-group-id`` 옵션과 상호 배타적입니다.
--output
JSON 형식으로 출력합니다.
-q, --quiet
상세 출력을 억제하는 옵션입니다.

명령 예제

  • 특정 서브넷 ID를 사용하여 라우트 기반 VPN 게이트웨이를 작성합니다.

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode route
    
  • 기본 리소스 그룹을 사용하여 정책 기반 VPN 게이트웨이를 생성합니다:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode policy --resource-group-name Default
    
  • JSON 형식의 출력을 사용하여 특정 리소스 그룹 ID를 지정해 경로 기반 VPN 게이트웨이를 생성합니다:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode route --resource-group-id fee82deba12e4c0fb69c3b09d1f12345 --output JSON
    
  • 라우트 기반 VPN 게이트웨이를 생성하여 광고된 CIDR 및 로컬 ASN과 동적으로 연결합니다:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode route --advertised-cidrs 192.168.3.0/24 --local-asn 64520
    
  • 모든 VPN 게이트웨이를 나열합니다:

    ibmcloud is vpn-gateways
    ic vpn-gateways
    
  • 특정 VPN 게이트웨이에 대한 자세한 정보를 확인하세요:

    ic vpn-gateway my-vpc-gateway
    
  • 로컬 ASN으로 VPN 게이트웨이를 업데이트하세요:

    ic vpn-gateway-update my-vpc-gateway --name my-vpc-gateway --local-asn 64521
    
  • VPN 게이트웨이에 대해 광고된 CIDR을 나열합니다:

    ibmcloud is vpn-gateway-advertised-cidrs my-vpc-gateway
    
  • 지정된 광고된 CIDR이 VPN 게이트웨이에 존재하는지 확인하십시오:

    ibmcloud is vpn-gateway-advertised-cidr  my-vpc-gateway --cidr 10.45.0.0/26
    
  • VPN 게이트웨이에 광고된 CIDR을 추가합니다:

    ibmcloud is vpn-gateway-advertised-cidr-add my-vpc-gateway --cidr 10.45.0.0/26
    
  • VPN 게이트웨이에서 광고된 CIDR 삭제:

    ibmcloud is vpn-gateway-advertised-cidr-delete my-vpc-gateway 10.45.0.0/26
    
  • VPN 게이트웨이에 대한 모든 서비스 연결을 나열합니다:

    ibmcloud is vpn-gateway-service-connections my-vpc-gateway
    
  • 특정 VPN 게이트웨이의 서비스 연결 세부 정보를 확인하세요:

    ibmcloud is vpn-gateway-service-connection my-vpc-gateway --service-connection-id 72fd9e00-3117-4b2e-984d-9361a9a97801
    

API를 사용하여 VPN 게이트웨이 생성하기

API를 사용하여 VPN 게이트웨이를 생성하려면 다음 단계를 따르세요:

  1. 올바른 변수를 사용하여 API 환경을 설정하십시오.

  2. API 명령에 사용할 추가 변수를 저장하십시오. 예를 들면 다음과 같습니다.

    • ResourceGroupId - get resource groups 명령을 사용하여 리소스 그룹 ID를 찾은 후 변수를 채우십시오.
    export ResourceGroupId=<your_resourcegroup_id>
    
    • SubnetId - get subnet 명령을 사용하여 서브넷 ID를 찾은 후 변수를 채우십시오.
    export SubnetId=<your_subnet_id>
    
  3. 모든 변수가 초기화되면 VPN 게이트웨이를 작성합니다.

    • 정책 기반 VPN 게이트웨이를 생성하려면 다음 명령을 사용하십시오
       curl -X POST "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
            "name": "my-new-vpn-gateway",
            "mode": "policy",
            "subnet": {
             "id": "'$SubnetId'"
             },
            "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    
    • 정적 경로 기반 VPN 연결을 위한 VPN 게이트웨이를 만들려면 다음 명령을 사용하세요:
       curl -X POST "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
            "name": "my-new-vpn-gateway",
            "mode": "route",
            "subnet": {
             "id": "'$SubnetId'"
             },
            "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    
    • 동적 경로 기반 VPN 연결을 위한 VPN 게이트웨이를 만들려면 다음 명령을 사용하세요:
       curl -X POST "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -H "Content-Type: application/json" \
         -H "Accept: application/json" \
         -H "X-Correlation-ID: 9852c2ff-c20a-4082-98da-cd689bcd5a11" \
         -d '{
             "name": "my-new-vpn-gateway",
             "subnet": {
             "id": "'"$SubnetId"'"
             },
             "mode": "route",
             "local_asn": 64520,
             "advertised_cidrs": [
             "192.168.0.0/24"
             ],
             "resource_group": {
             "id": "'"$ResourceGroupId"'"
             }
         }'
    
    • VPN 게이트웨이에 대해 광고된 모든 CIDR을 나열하려면 다음 명령을 사용하세요:
       curl -X GET "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2/$vpn_gateway_id/advertised_cidrs/$cidr?__QUERY__" \
         -H "Authorization: Bearer $iam_token"
    
    • VPN 게이트웨이에서 광고된 CIDR을 제거하려면 다음 명령을 사용하세요:
       curl -X DELETE "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2/$vpn_gateway_id/advertised_cidrs/$cidr?__QUERY__" \
         -H "Authorization: Bearer $iam_token" \
    
    • VPN 게이트웨이에서 광고된 CIDR을 설정하려면 다음 명령을 사용하세요:
       curl -X PUT "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2/$vpn_gateway_id/advertised_cidrs/$cidr?__QUERY__" \
         -H "Authorization: Bearer $iam_token"
    

사이트 간 VPN 게이트웨이에 대한 전체 API 집합을 보려면 VPC API 참조를 참조하세요.

Terraform을 사용하여 VPN 게이트웨이 작성

다음 예제에서는 Terraform을 사용하여 VPN 게이트웨이를 작성합니다.

   resource "ibm_is_vpn_gateway" "is_vpn_gateway" {
   name = "my-vpn-gateway"
   subnet = ibm_is_subnet.is_subnet.id
   mode = "route"
   }

자세한 내용은 Terraform 레지스트리를 참조하십시오.

다음 단계

VPN 게이트웨이를 작성한 후 다음을 수행할 수 있습니다.