SSL-VPNコネクションの作成(V1サービス)

SSL-VPNコネクション(V1サービス)を作成する手順を解説します。

注:

本手順は西日本・東日本・UKリージョンを対象としています。

V1サービスは将来的には機能提供を終了し、V2サービスが代替機能となります。



  1. 以下で必要な設定を行います。
    $ NAME=<コネクション名(任意)>
    $ CREDENTIAL_ID=<鍵コンテナのcontainer>
    $ VPNSERVICE_ID=<VPNサービスID>
    $ PROTOCOL=tcp
    $ AZ=<アベイラビリティゾーン>
    $ CLIENT_ADDRESS_POOL_CIDR=<VPNトンネルの仮想ネットワークcidr(任意)>

    CLIENT_ADDRESS_POOL_CIDRはXXX.XXX.XXX.XXX/XX形式でネットワークアドレスの指定を行ってください。

    例)192.168.246.0/24

    警告:

    K5で使用しているネットワークアドレスやクライアントPCが接続しているローカルネットワークアドレスと競合しないネットワークアドレスを指定してください。

  2. 次のAPIを実行します。
    $ curl -sS $NETWORK/v2.0/vpn/ssl-vpn-connections -X POST -H 
    "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"ssl_vpn_connection": {"name": "'$NAME'", "client_address_pool_cidr": "'$CLIENT_ADDRESS_POOL_CIDR'", admin_state_up: true, "credential_id": "'$CREDENTIAL_ID'", "vpnservice_id": '$VPNSERVICE_ID', "availability_zone": "'$AZ'", "protocol": "'$PROTOCOL'" }}' | jq .

    以下のレスポンスが返ってきます。

    {
      "ssl_vpn_connection": {
        "availability_zone": "<アベイラビリティゾーン>",
        "status": "PENDING_CREATE",
        "client_address_pool_cidr": "<VPNトンネルの仮想ネットワークcidr>",
        "name": "<SSL-VPNコネクション名>",
        "admin_state_up": true,
        "tenant_id": "<SSL-VPNで接続するプロジェクトID>",
        "credential_id": "<鍵コンテナID>",
        "vpnservice_id": "<SSL-VPNで使用するVPNサービスID>",
        "id": "<SSL-VPNコネクションID>"
      }
    }
  3. 作成したSSL-VPNコネクションの状態を確認するため、以下のAPIを実行します。
    $ curl -sS $NETWORK/v2.0/vpn/ssl-vpn-connections -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type:application/json" | jq .

    以下のように、SSL-VPNコネクションのstatusがACTIVEになっていることを確認します。

    {													
    "ssl_vpn_connections": [
      {
        "availability_zone": "<アベイラビリティゾーン>",
        "status": "ACTIVE",
        "client_address_pool_cidr": "<VPNトンネルの仮想アドレス帯>",
        "name": "<SSL-VPNコネクション名>",
        "admin_state_up": true,
        "tenant_id": "<SSL-VPNで接続するプロジェクトID>",
        "credential_id": "<鍵コンテナID>",
        "vpnservice_id": "<SSL-VPNで使用するVPNサービスID>",
        "id": "<SSL-VPNコネクションID>"
      }
      ]
    }
  4. VPNサービスの状態を確認するため、以下のAPIを実行します。
    $ curl -sS $NETWORK/v2.0/vpn/vpnservices -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type:application/json" | jq .

    以下のように、VPNサービスのstatusがACTIVEになっていることを確認できた場合、作成は完了です。

    {
    "vpnservices": [										
      {
          "availability_zone": "<アベイラビリティゾーン>",
          "router_id": "<SSL-VPNで接続ルータID>",
          "status": "ACTIVE",
          "name": "<VPNサービス名>",
          "admin_state_up": true,
          "subnet_id": "<SSL-VPNで接続するサブネットID>",
          "tenant_id": "<SSL-VPNで接続するプロジェクトID>",
          "id": "<VPNサービスID>",
          "description": ""
        }
      ]
    }