IBM Cloud Docs
VPN 経路の管理

VPN 経路の管理

各クライアントとサイト間の VPN は、ルーティング・テーブルを使用して、ネットワーク・トラフィックが送信される宛先ネットワーク経路をリストします。 宛先ネットワークにアクセスできるクライアントを指定するには、クライアントとサイト間の VPN 経路ごとに許可規則を構成します。

プライベート IP は静的ではなく、任意の時に変更される可能性があります。 経路を作成せずに、プライベート IP アドレスを使用してください。

クライアントとサイト間の VPN でのスプリット・トンネルの使用

スプリット・トンネル構成で VPN が確立されると、クライアントとサイト間の VPN サーバー・ルーティング・テーブルのすべての経路がクライアント・ルーティング・テーブルに追加されます。 経路を後で追加する場合は、新しい経路がクライアントに送信されるように、接続をリセットする必要があります。

経路が使い尽くされないようにするために、クライアントとサイト間の VPN サーバー・ルーティング・テーブルを変更する前に、クライアント・デバイスの経路容量を記録しておいてください。

コンソールでルートを作成する

経路を作成して、宛先ネットワーク・トラフィックの送信方法を指定します。 経路を作成するには、VPN クライアント・サーバーの正常性状況が「Healthy」であり、サーバー状況が「Stable」である必要があります。

経路として 0.0.0.0/0 を追加して、クライアントがインターネットにアクセスできるようにします。

  1. ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。
  2. ナビゲーションメニューメニューアイコン 選択し、「インフラ > ネットワーク > VPN クリックする。
  3. Client-to-site servers タブを選択します。
  4. 経路を追加する VPN サーバーを選択します。 次に、 「VPN サーバー経路 (VPN server routes)」 タブを選択します。
  5. **「作成 + (Create +)」**を選択します。
  6. 経路の名前を指定します。
  7. 宛先ネットワークの宛先 CIDR 範囲を指定します。 以下に例を示します。
    • インターネット・アクセスには 0.0.0.0/0 と入力します。
    • オンプレミス・ネットワークの場合は、サイト間ゲートウェイ接続の IPv4 CIDR 範囲を入力します。
    • VPC サブネットの場合は、VPC サブネット CIDR を入力します。
  8. アクションを選択します。
    • Deliver - 経路宛先が VPC 内にある場合、または VPN ゲートウェイを使用して接続されたオンプレミス・プライベート・サブネット内にある場合に使用します。 VPN 経路が配信アクションを使用する場合、クライアント IP は保持されます。
    • Drop - クライアントからのトラフィックをブロックし、不要または望ましくないネットワーク・トラフィックをヌルまたは「ブラック・ホール」経路に転送する場合に使用します。
    • Translate - ソース IP を VPN サーバー・プライベート IP に変換してから VPN サーバーから送信し、VPN クライアント IP が宛先デバイスから見えないようにする場合に使用します。
  9. 「作成」 をクリックします。

VPNサーバールートのActionsメニューから Editを選択すると、ルート名を変更することができます。

コンソールでルートを削除する

UI を使用して経路を削除するには、以下の手順を実行します。

  1. ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。
  2. ナビゲーションメニューメニューアイコン 選択し、「インフラ > ネットワーク > VPN クリックする。
  3. **「クライアントとサイト間のサーバー (Client-to-site servers)」**タブを選択します。
  4. 経路を削除する VPN サーバーを選択します。 次に、Actionsメニューから Deleteを選択する。
  5. **「削除」**をもう一度選択して、削除を確定します。

CLIからルートを作成する

開始する前に、 CLI 環境をセットアップします

CLIからVPNサーバー・ルートを作成するには、以下のコマンドを入力する:

ibmcloud is vpn-server-route-create VPN_SERVER_ID --destination DESTINATION_CIDR [--action translate | deliver | drop] [--name NAME] [--output JSON] [-q, --quiet]

ここで、

  • VPN_SERVER_ID: VPNサーバーのID。
    • -アクション :action:ルートにマッチしたパケットに対して実行するアクション。 translatedeliverdrop のいずれかです (デフォルト: deliver)。
  • --destination: VPN サーバーでこの VPN 経路に使用する宛先です。 VPN サーバー内で固有である必要があります。 受信パケットがどの宛先にもマッチしない場合、そのパケットはドロップされる。
  • -- name: VPNルートの名前。
    • -出力 : 出力フォーマットを指定します。 次のいずれか: JSON
  • -q, --quiet: 詳細な出力を非表示にします。

以下に例を示します。

  • ibmcloud is vpn-server-route-create r006-77e21079-7291-44c2-866a-8f1848bc10f0 --name myroute --action deliver --destination 10.0.0.0/24

  • ibmcloud is vpn-server-route-create r006-77e21079-7291-44c2-866a-8f1848bc10f0 --name myroute --action drop --destination 10.0.0.0/24

CLIからルートを更新する

CLIからVPNサーバーのルートを更新するには、以下のコマンドを入力します:

ibmcloud is vpn-server-route-update VPN_SERVER_ID ROUTE_ID [--name NAME] [--output JSON] [-q, --quiet]

ここで、

  • VPN_SERVER_ID: VPNサーバーのID。
  • ROUTE_ID: VPNルートのID。
  • -- name: VPNルートの新しい名前。
    • -出力 :出力フォーマットを指定します。 次のいずれか: JSON
  • -q, --quiet: 詳細な出力を非表示にします。

以下に例を示します。

ibmcloud is vpn-server-route-update r006-77e21079-7291-44c2-866a-8f1848bc10f0 1233a60b-fc95-4dbc-96ab-a976b723bfb0 --name myroute

CLIからVPNルートの詳細を表示する

VPN 経路の詳細を表示するには、次のコマンドを入力します。

ibmcloud is vpn-server-route VPN_SERVER_ID ROUTE_ID [--output JSON] [-q, --quiet]

ここで、

  • VPN_SERVER_ID: VPNサーバーのID。
  • ROUTE_ID: VPNルートのID。
    • -出力 :出力フォーマットを指定します。 次のいずれか: JSON
  • -q, --quiet: 詳細な出力を非表示にします。

CLIを使用してすべてのルートを表示する

開始する前に、 CLI 環境をセットアップします

CLIからVPNサーバーのVPNサーバールートのリストを表示するには、以下のコマンドを入力します:

ibmcloud is vpn-server-routes VPN_SERVER_ID [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME | --all-resource-groups] [--output JSON] [-q, --quiet]

ここで、

  • VPN_SERVER_ID: VPNサーバーのID。
    • -リソースグループのID :リソースグループのID。 このオプションは --resource-group-name と同時に指定することはできません。
  • -- resource-group-name: リソースグループの名前。 このオプションは --resource-group-id と同時に指定することはできません。
  • --all-resource-groups: すべてのリソース・グループの照会。
    • -出力 :出力フォーマットを指定します。 次のいずれか: JSON
  • -q, --quiet: 詳細な出力を非表示にします。

CLI を使用した経路の削除

CLIからVPNサーバーのルートを削除するには、以下のコマンドを入力します:

ibmcloud is vpn-server-route-delete VPN_SERVER_ID (ROUTE_ID1 ROUTE_ID2 ...) [--output JSON] [-f, --force] [-q, --quiet]

ここで、

  • VPN_SERVER_ID: VPNサーバーのID。
  • ROUTE_ID1 :VPN ルートの ID。
  • ROUTE_ID2: VPNルートのID。
    • -出力 :出力フォーマットを指定します。 次のいずれか: JSON
  • --force, -f: 確認を求めずに操作を強制します。
  • -q, --quiet: 詳細な出力を非表示にします。

API を使用した経路の作成

APIを使用してVPNサーバー上にVPNルートを作成するには、以下の手順に従ってください:

  1. 適切な変数を設定して API 環境をセットアップします。

  2. /vpn_servers/{vpn_server_id}/routes に対して POST を実行します。

       curl -X POST "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes?version=$api_version&generation=2" \
         -H "Authorization: $iam_token" \
         -d '{
            "name":"my-route-1",
             "destination": "10.10.10.0/24",
             "action": "translate"
          }'
    

APIを使ってルートを更新する

APIを使用してVPNサーバー上のルートを更新するには、以下の手順に従ってください:

  1. 適切な変数を設定して API 環境をセットアップします。

  2. /vpn_servers/{vpn_server_id}/routes/{id} に対して PATCH を実行します

       curl -X PUT "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2" \
         -H "Authorization: $iam_token" \
         -d '{
            "name":"new-route-name"
          }'
    

APIを使ってルートを表示する

APIを使用してVPNサーバー上のルートを表示するには、以下の手順に従ってください:

  1. 適切な変数を設定して API 環境をセットアップします。

  2. すべての変数が開始されたら、経路をリストします。

    curl -sS -X GET \
    -H "Authorization: $iam_token" \
    "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes?version=$api_version&generation=2" | jq
    

    この例では、 jq をパーサーとして使用しています。 jq は、 MIT ライセンスの 下でライセンスされたサードパーティツールです。インスタンスの作成時に利用可能なすべての VPC イメージにプリインストールされているとは限りません。 使用する前に jq をインストールするか、お好みの他のパーサーを使用する必要があるかもしれません。

  3. /vpn_servers/{vpn_server_id}/routes/{id} に対して GET を実行します。 詳しくは、list_vpn-server_routes を参照してください。

    curl -sS -X GET \
    -H "Authorization: $iam_token" \
    "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2" | jq
    

API を使用した経路の削除

APIを使用してVPNサーバー上のルートを削除するには、以下の手順に従ってください:

  1. 適切な変数を設定して API 環境をセットアップします。

  2. /vpn_servers/{vpn_server_id}/routes/{id} に対して DELETE を実行します。

    curl -sS -X DELETE \
    -H "Authorization: $iam_token" \
    "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2"