経路の作成
経路を構成して、VPC のネットワーク・トラフィックのフローを制御できます。 VPC 経路により、パケットの宛先アドレスに応じてネクスト・ホップを指定することができます。
VPC のゾーンごとに複数のルーティング・テーブルが存在できます。 送信トラフィックの場合、パケットがサブネットを離れる際、システムはその宛先をサブネットのゾーン内のルーティングテーブルと照合し、パケットを次に送信する先を決定します。 各 VPC には、サブネットがユーザーによって明示的に別のサブネットに接続されていない限り、すべてのサブネットに接続されたデフォルトのルーティング テーブルがあります。
VPCカスタムルートには主に4つの構成要素があります:
-
宛先 CIDR
-
パケットがルーティングされるネクスト・ホップ (アクションが
Deliverの場合)既存の経路のネクスト・ホップ IP アドレスを編集できます。
-
ゾーン
-
アクション
VPC の指定されたゾーンから送信されるトラフィックで、宛先アドレスが、指定された宛先 CIDR の範囲に含まれるものは、ネクスト・ホップに転送されます。 宛先アドレスが複数の VPC 経路の宛先 CIDR の範囲に含まれる場合には、最も具体的な経路が使用されます。 同程度に具体的な経路が 2 つ以上ある場合には、ラウンドロビン方式で各経路にトラフィックが分散されます。
各経路の宛先プロパティーに、接頭部の長さ (/24 の 10.2.0.0/24) が含まれています。 カスタム・ルーティング・テーブルごとにサポートされる固有の「接頭部の長さ」の数は 14 個です。 接頭部が同じ経路が複数存在していても、固有の接頭部としては 1 つのみとカウントされます。
VPC アドレス接頭部は、RFC-1918 アドレスに制限されなくなりました。 non-RFC-1918 アドレスを使用し、かつパブリック接続性( フローティングIP アドレスまたはパブリックゲートウェイ)を持つ VPC は、新しい Delegate-VPC アクションを含むカスタムルートを使用して設定する必要があります。 このアクションは、準拠 non-RFC-1918 しており、かつVPC外にある宛先CIDRに対して指定する必要があります。たとえば、パブリック
Direct Linkインターネット経由 Transit Gateway、VPCクラシック経由、またはVPCクラシックアクセス経由で到達可能な宛先などが該当します。 Delegate-VPC アクションをいつ使用するかについては、IANA 登録済み IP 割り当てに関するルーティングの考慮事項を参照してください。
以下の両方に該当する場合、Delegate-VPC アクションが必要です。
- VPC で RFC-1918 以外のアドレスを使用している
- VPC にパブリック接続がある
以下の場合、Delegate-VPC アクションは必要ありません。
- VPC で RFC-1918 アドレスのみを使用している
- VPC にパブリック接続がない
IBM Cloud サービスのルートは、コンソール、CLI、API、またはTerraformを使用して作成できます。
コンソールでルートを作成する
コンソールでルートを作成するには、次の手順に従ってください:
-
制限とガイドライン を必ず確認してください。
-
IBM Cloud コンソールで、 [Navigation]メニューの
選択し、 [Infrastructure
>[ Network ]>[ Routing tables]の順にクリックします。 「VPC 用のルーティング・テーブル」ページが表示されます。
-
表示したいルーティングテーブルに関連付けられているVPCを選択してください。 次に、ルーティング・テーブルの名前をクリックして、その詳細を表示します。
-
「経路」セクションまでスクロールし、**「作成」**をクリックします。
-
ルート作成サイドパネルで、以下の情報を入力してください:
-
ゾーン-経路のアベイラビリティー・ゾーンを選択します。
-
名前- 新しいルートの名前を入力してください。
-
Destination CIDR (宛先 CIDR)-経路の宛先 CIDR (例えば、
10.0.0.0/16)。 -
優先順位-
0から4までの優先順位を入力します。 デフォルト値は2です。 詳しくは、「 経路設定の決定」を参照してください。 -
アクション- ルートに一致するパケットに対して実行する操作。 値は次のとおりです。
- 委任 (Delegate) - システム・ルーティング・テーブルを使用してパケットを転送します。
- Delegate-VPC - インターネットにバインドされた経路を無視して、システムの組み込み経路に委任します。 VPC で RFC-1918 以外のアドレスが使用され、さらにパブリック接続もある場合には必須です。 詳しくは、IANA 登録済み IP 割り当てに関するルーティングの考慮事項を参照してください。
- 転送 (Deliver) - パケットをネクスト・ホップのターゲットに転送します。 アドレス接頭部が同じ複数の経路を追加できます。 仮想ルーターは、複数の異なるネクスト・ホップ IP アドレスを使用して、等価コスト・マルチパスの (ECMP) ルーティングを実行します。
- ドロップ (Drop) - パケットをドロップします。
あるサブネットから発信されるトラフィックには、そのサブネットに関連付けられているカスタム・ルーティング・テーブルが使用されます。 対応する経路がカスタム・ルーティング・テーブルで見つからなければ、VPC のシステム・ルーティング・テーブルを使用してルーティングが続行されます。 この動作は、カスタム・ルーティング・テーブルのデフォルト経路にドロップのアクションを指定することで回避できます。
-
タイプ- IPアドレスまたは VPN接続のいずれかを選択してください。
-
ネクスト・ホップ (IP アドレス)-ネクスト・ホップを入力します。
既存の経路のネクスト・ホップ IP アドレスを変更できます。
-
アドバタイズ-Ingress ソースにアドバタイズします。 現在、 Direct Link および Transit Gateway がサポートされています。 オプション。
-
-
**「保存」**をクリックして、新しい経路を保存します。 「ルーティング・テーブルの詳細」ページに経路が表示されます。
CLIからルートを作成する
開始する前に、 CLI 環境をセットアップします。
CLIからVPCルートを作成するには、次のコマンドを実行します:
ibmcloud is vpc-routing-table-route-create VPC ROUTING_TABLE --zone ZONE_NAME --destination DESTINATION_CIDR [--action delegate_vpc | delegate | deliver | drop] [--priority PRIORITY] [--next-hop NEXT_HOP [--vpngw VPNGW]][--advertise true | false] [--name NAME] [--output JSON] [-q, --quiet]
ここで、
VPC- VPCのIDまたは名前です。
ROUTING_TABLE- VPCルーティングテーブルのIDまたは名前です。
--zone- ゾーンの名前です。
--destination- ルートの宛先CIDRです。 テーブルごとに、1 ゾーンにつき最大 2 つの経路に同じ宛先を指定できます。ただし、両方の経路のアクションが deliver である場合に限られます。
--action- パケットがルートに一致した場合に実行するアクションです。 アクションは、delegate_vpc、delegate、deliver、および drop です。
--priority- 経路の優先順位です。 値は、
0、1、2、3、および4です。 デフォルト値は2です。 小さい値ほど優先度が高い。 カスタム・ルーティング・テーブルに同じ宛先を持つ経路が含まれている場合、最も高い優先順位 (最小値) を持つ経路が選択されます。 --next-hop- アクションが 「転送」 の場合、パケットを転送する次のホップのIPアドレスまたはVPN接続IDを入力してください。
--vpngw- これは VPN ゲートウェイの名前です。
--advertise- Direct Link、Transit Gateway、または両方の Ingress ソースにアドバタイズします。 true、 false のいずれか。
--name- VPCルーティングテーブルの名前です。
--output- 出力をJSON形式でフォーマットします。
--q, quiet- コマンドをサイレントに実行し、出力を生成しません。
CLI の例
ibmcloud is vpc-routing-table-route-update 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 72b27b5c-f4b0-48bb-b954-5becc7c1d456 72b27b5c-f4b0-48bb-b954-5becc7c1d4ef --name my-vpc-route --priority 1
ibmcloud is vpc-routing-table-route-update 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 72b27b5c-f4b0-48bb-b954-5becc7c1d456 72b27b5c-f4b0-48bb-b954-5becc7c1d4ef --name my-vpc-route --next-hop 10.0.0.2
APIを使用したルートの作成
APIを使用して目的地ルートを作成するには、次の手順に従ってください:
-
API 環境をセットアップします。
-
API コマンドで使用する以下の変数に値を格納します。
export VpcId=<your_vpc_id> export RoutingTableId=<your_routing_table_id> -
経路を作成します。
curl -X POST "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables/$RoutingTableId/routes?version=$api_version&generation=2" \ -H "Authorization: $iam_token" \ -d '{ "name": "my-new-route", "zone": {"name": "us-south-2"}, "action": "deliver", "destination": "10.10.10.0/24", "next_hop": {"address": "10.0.0.3"} }'
詳細情報とオプションのパラメータについては、VPC API リファレンスの 「VPC ルーティングテーブルでルートを作成する」 を参照してください。
Terraform を使用した経路の作成
Terraform を使用して経路を作成するには、以下の手順を実行します。
-
Terraform環境を設定してください。
-
経路を作成します。
resource "ibm_is_vpc_routing_table_route" "example" { vpc = ibm_is_vpc.example.id routing_table = ibm_is_vpc_routing_table.example.routing_table zone = "us-south-1" name = "custom-route-2" destination = "192.168.4.0/24" action = "deliver" next_hop = ibm_is_vpn_gateway_connection.example.gateway_connection // Example value "10.0.0.4" }この
ibm_is_vpc_routing_table_routeリソースの詳細については、 Terraform Registry を参照してください。