VPN 経路の管理
各クライアントとサイト間の VPN は、ルーティング・テーブルを使用して、ネットワーク・トラフィックが送信される宛先ネットワーク経路をリストします。 宛先ネットワークにアクセスできるクライアントを指定するには、クライアントとサイト間の VPN 経路ごとに許可規則を構成します。
プライベート IP は静的ではなく、任意の時に変更される可能性があります。 経路を作成せずに、プライベート IP アドレスを使用してください。
クライアントとサイト間の VPN でのスプリット・トンネルの使用
スプリット・トンネル構成で VPN が確立されると、クライアントとサイト間の VPN サーバー・ルーティング・テーブルのすべての経路がクライアント・ルーティング・テーブルに追加されます。 経路を後で追加する場合は、新しい経路がクライアントに送信されるように、接続をリセットする必要があります。
経路が使い尽くされないようにするために、クライアントとサイト間の VPN サーバー・ルーティング・テーブルを変更する前に、クライアント・デバイスの経路容量を記録しておいてください。
コンソールでルートを作成する
経路を作成して、宛先ネットワーク・トラフィックの送信方法を指定します。 経路を作成するには、VPN クライアント・サーバーの正常性状況が「Healthy」であり、サーバー状況が「Stable」である必要があります。
経路として 0.0.0.0/0
を追加して、クライアントがインターネットにアクセスできるようにします。
- ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。
- ナビゲーションメニュー「
選択し、「インフラ > ネットワーク > VPN クリックする。
- Client-to-site servers タブを選択します。
- 経路を追加する VPN サーバーを選択します。 次に、 「VPN サーバー経路 (VPN server routes)」 タブを選択します。
- **「作成 + (Create +)」**を選択します。
- 経路の名前を指定します。
- 宛先ネットワークの宛先 CIDR 範囲を指定します。 以下に例を示します。
- インターネット・アクセスには
0.0.0.0/0
と入力します。 - オンプレミス・ネットワークの場合は、サイト間ゲートウェイ接続の IPv4 CIDR 範囲を入力します。
- VPC サブネットの場合は、VPC サブネット CIDR を入力します。
- インターネット・アクセスには
- アクションを選択します。
- Deliver - 経路宛先が VPC 内にある場合、または VPN ゲートウェイを使用して接続されたオンプレミス・プライベート・サブネット内にある場合に使用します。 VPN 経路が配信アクションを使用する場合、クライアント IP は保持されます。
- Drop - クライアントからのトラフィックをブロックし、不要または望ましくないネットワーク・トラフィックをヌルまたは「ブラック・ホール」経路に転送する場合に使用します。
- Translate - ソース IP を VPN サーバー・プライベート IP に変換してから VPN サーバーから送信し、VPN クライアント IP が宛先デバイスから見えないようにする場合に使用します。
- 「作成」 をクリックします。
VPNサーバールートのActionsメニューから Editを選択すると、ルート名を変更することができます。
コンソールでルートを削除する
UI を使用して経路を削除するには、以下の手順を実行します。
- ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。
- ナビゲーションメニュー「
選択し、「インフラ > ネットワーク > VPN クリックする。
- **「クライアントとサイト間のサーバー (Client-to-site servers)」**タブを選択します。
- 経路を削除する VPN サーバーを選択します。 次に、Actionsメニューから Deleteを選択する。
- **「削除」**をもう一度選択して、削除を確定します。
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:ルートにマッチしたパケットに対して実行するアクション。 translate、deliver、drop のいずれかです (デフォルト: 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ルートを作成するには、以下の手順に従ってください:
-
適切な変数を設定して API 環境をセットアップします。
-
/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サーバー上のルートを更新するには、以下の手順に従ってください:
-
適切な変数を設定して API 環境をセットアップします。
-
/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サーバー上のルートを表示するには、以下の手順に従ってください:
-
適切な変数を設定して API 環境をセットアップします。
-
すべての変数が開始されたら、経路をリストします。
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
をインストールするか、お好みの他のパーサーを使用する必要があるかもしれません。 -
/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サーバー上のルートを削除するには、以下の手順に従ってください:
-
適切な変数を設定して API 環境をセットアップします。
-
/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"