VPN ゲートウェイの作成

IBM Cloud VPN for VPCを作成すると、VPCをオンプレミスネットワークや別のVPCなどの別のプライベートネットワークに安全に接続できます。

始める前に、VPNゲートウェイ のプランニングに関する考慮事項と、VPNゲートウェイ の既知の制限事項、問題点、および制限事項を確認してください。

コンソールでVPNゲートウェイを作成する

コンソールでVPNゲートウェイを作成するには、以下の手順に従ってください:

  1. ブラウザから、 IBM Cloud コンソールを開き、 アカウントログインします。

  2. ナビゲーション メニューナビゲーション メニュー アイコン を選択し、 インフラストラクチャVPC アイコン > ネットワーク > VPN をクリックします。

  3. 「サイト間ゲートウェイ (Site-to-site gateways)」>「VPN ゲートウェイ (VPN gateways)」 タブを選択していることを確認します。

  4. 「VPC の VPN (VPNs for VPC)」ページで、**「作成」をクリックして「サイト間 (Site-to-site)」**ゲートウェイ・タイルを選択します。

  5. 以下の情報を指定します。

    • Region- VPNゲートウェイをプロビジョニングする地域を選択します。

    • VPN ゲートウェイ名 - VPN ゲートウェイの名前 (my-vpn-gateway など) を入力します。

    • リソース・グループ - VPN ゲートウェイのリソース・グループを選択します。

    • タグ - オプションで、この VPN ゲートウェイを識別するタグを追加します。

    • アクセス管理タグ-オプションで、アクセス制御関係の編成に役立つアクセス管理タグをリソースに追加します。 サポートされるアクセス管理タグの形式は key:value のみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。

    • 仮想プライベート・クラウド - VPN ゲートウェイの VPC を選択します。

    • サブネット- VPNゲートウェイを作成するサブネットを選択します。 サブネットの重要な情報については、計画時の考慮事項を参照してください。

    • モード-ポリシー・ベースまたは経路ベースの VPN のいずれかを選択します。 VPN のタイプについて詳しくは、VPN の機能を参照してください。

    • ASN- VPNゲートウェイの識別子。 この値は、BGPピアリング用のローカルネットワークを識別し、オンプレミスデバイスとのBGPセッションセットアップ時に使用されます。

    • Advertised CIDRs (optional)- リモートVPNピアに IPv4 ネットワーク範囲をアドバタイズするCIDR範囲値。

      ASN値はダイナミックルーティングに必要である。 ASN を指定しない場合、VPN ゲートウェイはデフォルトの ASN 64520 で作成されます。 VPNゲートウェイをTransit Gateway接続した後は、ローカルASNの値を変更することはできません。

  6. 「VPC の VPN 接続 (VPN connection for VPC)」 セクションで、スイッチをオンに切り替えて、このゲートウェイと VPN 外部のネットワークとの間の接続を確立します。 ゲートウェイのプロビジョニング後にVPN接続を追加することもできます。 接続の詳細セクションで、以下の情報を指定する:

    • VPN 接続名 - 接続の名前 (my-connection など) を入力します。

    • 接続タイプ- 静的または動的接続タイプを選択します。

    • ピア・ゲートウェイ・アドレス-VPC 外部のネットワークの VPN ゲートウェイのパブリック IP アドレスまたは FQDN を使用して、ピア・デバイスを指定します。

    • ピアASN(ダイナミックルートベースのみ)- 接続タイプとしてダイナミックを選択した場合は、ピアASNを指定する必要があります。 この値は、VPN がルートを交換するリモート・ピアネットワークを識別します。

      特定のASN値は制限されており、ピアASNとして使用することはできません。これには、 0138843635164512645136510065200–‍6523465402‍–‍65433655004201065000‍–‍4201065999 が含まれます。 これらの値は予約されているか、プライベートASN範囲の一部であり、ルーティングの競合を引き起こす可能性がある。

    • 確立モード- 「双方向」 または 「ピアのみ」 のいずれかを選択します。

      • 双方向モードは、VPNゲートウェイのどちら側からでもIKEプロトコルのネゴシエーション(またはリキー処理)を開始します。
      • 「ピアのみ」 モードでは、ピアはこの VPN ゲートウェイ接続の IKE プロトコル・ネゴシエーションを開始できます。 ピアは、接続が確立された後に鍵再設定プロセスを開始することも担当します。

      ピア・デバイスが NAT デバイスの背後にあり、パブリック IP アドレスを持っていない場合は、必ず 「ピアのみ」 を指定してください。

    • 事前共有鍵 - VPC 外部のネットワークの VPN ゲートウェイの認証鍵を指定します。 事前共有鍵は、16 進数字のストリング、または印刷可能な ASCII 文字のパスフレーズです。 ほとんどのピア・ゲートウェイのタイプに対応できるように、このストリングは以下の規則に従う必要があります。

      • 数字、小文字、大文字、以下の特殊文字の組み合わせが可能: - + & ! @ # $ % ^ * ( ) . , :
      • ストリングの長さは 6 文字から 128 文字まででなければならない。
      • 先頭文字を 0x0s にすることはできない。
    • トラフィックを分散する(ルートベースVPNのみ)- VPCルートのネクストホップがVPN接続である場合に、VPNゲートウェイのアクティブなトンネル間でトラフィックを自動的に分散するには、このオプションを有効にします。 このオプションは、2つのVPNトンネルがリモート・ピアネットワークに接続する際のスループットを最大化するのに便利です。 このオプションが有効でない場合、VPNゲートウェイはより小さいパブリックIPを持つトンネルをプライマリパスとして選択し、プライマリがダウンした場合にのみセカンダリトンネルに切り替えます。 詳しくは、 ユースケース4:ルートベースVPNのトラフィック分散を ご覧ください。

    • ローカル・サブネット (ポリシー・ベースの VPN のみ) - VPN トンネルを介して接続する VPC のサブネットを 1 つ以上指定します。

    • ピアサブネット(ポリシーベースVPNのみ)- VPNトンネルを通して接続したいピアネットワーク内の1つ以上のサブネットを指定します。

      ローカル・サブネットとピア・サブネットのサブネット範囲がオーバーラップすることは許可されません。

  7. Tunnel details セクション(ダイナミックルートベースのみ)で、BGPによるダイナミックルーティングに必要なトンネルとピアインターフェースIPを指定します。

    • Tunnel interface 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 である。 トンネル1インターフェイスに 192.168.0.1 、ピア1インターフェイスに 192.168.0.2。 同様に、Tunnel 2 には、 192.168.0.4/30 のような異なる /30 サブネットを使用する。 この場合、 192.168.0.5 をトンネル2インターフェイスに、 192.168.0.6 をピア2インターフェイスに割り当てます。 また、IPsec接続の設定に使用されるトンネルIPは、 Transit Gateway 接続に選択されるCIDR範囲と重複することはできない。

  8. デッドピア検出セクションで、VPNゲートウェイがどのようにメッセージを送信してピアゲートウェイがアクティブであるかをチェックするかを設定します。 以下の情報を指定します。

    • アクション - ピア・ゲートウェイが応答を停止した場合に実行する非活動ピア検出アクション。 例えば、ゲートウェイで即時に接続の再ネゴシエーションを実行する場合は、**「再始動」**を選択します。
    • 間隔 (秒) (Interval (sec)) - ピア・ゲートウェイがアクティブであることを確認する頻度。 デフォルトでは、メッセージは 2 秒間隔で送信されます。
    • タイムアウト(秒) - ピア・ゲートウェイからの応答を待機する時間。 デフォルトでは、応答が 10 秒以内に受信されない場合、ピア・ゲートウェイはアクティブでないと見なされます。
  9. **「ポリシー」**セクションで、接続のフェーズ 1 およびフェーズ 2 のネゴシエーションに使用する Internet Key Exchange (IKE) および Internet Protocol Security (IPsec) オプションを指定します。

    • ゲートウェイが接続の確立を自動的に試行するように設定する場合は、**「自動」**を選択します。
    • 以下の場合は、カスタム・ポリシーを選択または作成する:
      • 特定のセキュリティ要件を強制する必要がある。
      • 相手側ネットワークのVPNゲートウェイが、セットアップ時に自動的にネゴシエートされるセキュリティ提案をサポートしていない。

    接続に指定するIKEとIPsecのセキュリティ・オプションは、VPC外のネットワークのピアゲートウェイに設定されているものと完全に一致している必要があります。

  10. 「拡張オプション」セクションでは、デフォルトの IKE ID を使用する代わりに、ローカルおよびピアの IKE ID をカスタマイズすることができます。 ピア IKE ID は多くても 1 つしか指定できません。

    ポリシー・ベースの VPN ゲートウェイの場合、最大で 1 つのローカル IKE ID を構成できます。 経路ベースの VPN ゲートウェイの場合、ローカル IKE ID を構成するには、2 つを指定する必要があります。 メンバーに値を指定することも、入力フィールドを空のままにすることもできます。

    • ローカル IKE ID-ローカル IKE ID のタイプを選択し、その値を入力します。 例えば、4オクテットの IPv4 アドレス(9.168.3.4 )、FQDN(my-vpn.example.com )、ホスト名(my-host )、または base64-encoded キーID(MTIzNA== )を1つ入力できます。

      • 静的経路モードは、アクティブ/アクティブ・モードの 2 つのメンバーで構成されます。最初の ID は最初のメンバーに適用され、2 番目の ID は 2 番目のメンバーに適用されます。 ローカル IKE ID を指定しない場合、タイプは IPv4 アドレスになり、値はメンバーの VPN 接続トンネルのパブリック IP アドレスになります。

      • ポリシー・モードは、アクティブ/スタンバイ・モードの 2 つのメンバーで構成されます。 ローカル 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
    
  • Defaultリソースグループを使用して、ポリシーベースのVPNゲートウェイを作成する:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode policy --resource-group-name Default
    
  • 特定のリソース・グループIDを使用して、ルート・ベースのVPNゲートウェイを作成し、JSON形式で出力する:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode route --resource-group-id fee82deba12e4c0fb69c3b09d1f12345 --output JSON
    
  • アドバタイズされたCIDRとローカルASNを使用して、動的接続用のルートベースVPNゲートウェイを作成する:

    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: $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: $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 ゲートウェイを作成したら、以下を行えます。