VPNサービスの作成(V2サービス/クライアント証明書利用)

VPNサービスを作成する手順を解説します。



  1. 以下で必要な設定を行います。
    $ SUBNET_ID=<SSL-VPNで接続したいサブネットID>
    $ ROUTER_ID=<SSL-VPNで利用するルータID>
    $ VPN_SERVICE_NAME=<VPNサービス名(任意)>
    $ ADMIN_STATE_UP=true
    $ AZ=<アベイラビリティゾーン>
    警告:

    SSL-VPN接続(V2サービス)で接続するサブネットのパラメーター定義が、以下のように指定されている必要があります。

    • cidr

      ネットワークアドレスのマスク値が「16bit~29bit」の範囲内で作成されている。

      例)192.168.1.0/24

    • gateway_ip

      VPNサービスで指定する仮想ルータのIPアドレスが指定されている。

  2. 次のAPIを実行します。
    $ curl -sS $NETWORK/v2.0/vpn/vpnservices -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" \
    -H "Content-Type: application/json" -d '{"vpnservice": {"subnet_id": "'$SUBNET_ID'", 
     "router_id": "'$ROUTER_ID'", "name": "'$VPN_SERVICE_NAME'", 
     "admin_state_up":"'$ADMIN_STATE_UP'", "availability_zone": "'$AZ'" }}' | jq .

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

    {
      "vpnservice": {
        "availability_zone": "<アベイラビリティゾーン>",
        "router_id": "<SSL-VPNで接続するルータID>",
        "status": "PENDING_CREATE",
        "name": "<VPNサービス名>",
        "admin_state_up": true,
        "subnet_id": "<SSL-VPNで接続するサブネットID>",
        "tenant_id": "<SSL-VPNで接続するプロジェクトID>",
        "id": "<VPNサービスID>",
        "description": ""
      }
    }
  3. 作成した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がPENDING_CREATEになっていることを確認できた場合、作成は完了です。

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