経路の作成
経路を構成して、VPC のネットワーク・トラフィックのフローを制御できます。 VPC 経路により、パケットの宛先アドレスに応じてネクスト・ホップを指定することができます。
VPC のゾーンごとに複数のルーティング・テーブルが存在できます。 egressトラフィックの場合、パケットがサブネットから出るとき、システムはその宛先をサブネットのゾーン内のルーティングテーブルと照らし合わせて評価し、パケットを次にどこに送るかを決定する。 各 VPC には、サブネットがユーザーによって明示的に別のサブネットに接続されていない限り、すべてのサブネットに接続されたデフォルトのルーティング テーブルがあります。
VPCカスタムルートには4つの主要コンポーネントがある:
-
宛先 CIDR
-
パケットがルーティングされるネクスト・ホップ (アクションが
Deliver
の場合)既存の経路のネクスト・ホップ IP アドレスを編集できます。
-
ゾーン
-
アクション
VPC の指定されたゾーンから送信されるトラフィックで、宛先アドレスが、指定された宛先 CIDR の範囲に含まれるものは、ネクスト・ホップに転送されます。 宛先アドレスが複数の VPC 経路の宛先 CIDR の範囲に含まれる場合には、最も具体的な経路が使用されます。 同程度に具体的な経路が 2 つ以上ある場合には、ラウンドロビン方式で各経路にトラフィックが分散されます。
各経路の宛先プロパティーに、接頭部の長さ (/24
の 10.2.0.0/24
) が含まれています。 カスタム・ルーティング・テーブルごとにサポートされる固有の「接頭部の長さ」の数は 14 個です。 接頭部が同じ経路が複数存在していても、固有の接頭部としては 1 つのみとカウントされます。
VPC アドレス接頭部は、RFC-1918 アドレスに制限されなくなりました。 新しい Delegate-VPC
アクションを含むカスタムルートを使用して、 non-RFC-1918 アドレスの両方を使用し、パブリック接続(フローティング IP アドレスまたはパブリックゲートウェイ)を持つ VPC を構成する必要があります。 このアクションは、 Direct Link、 Transit Gateway、またはVPCクラシック・アクセスで到達可能な宛先など、
non-RFC-1918 に準拠し、VPC外部にもある宛先CIDRに対して指定する必要があります。 Delegate-VPC
アクションをいつ使用するかについては、IANA 登録済み IP 割り当てに関するルーティングの考慮事項を参照してください。
以下の両方に該当する場合、Delegate-VPC
アクションが必要です。
- VPC で RFC-1918 以外のアドレスを使用している
- VPC にパブリック接続がある
以下の場合、Delegate-VPC
アクションは必要ありません。
- VPC で RFC-1918 アドレスのみを使用している
- VPC にパブリック接続がない
コンソール、CLI、API、Terraformを使って、 IBM Cloud サービスのルートを作成できます。
コンソールでルートを作成する
コンソールでルートを作成するには、以下の手順に従ってください:
-
制限とガイドライン を必ず確認してください。
-
IBM Cloud コンソールで、 [Navigation]メニューの
選択し、 [Infrastructure
>[ Network ]>[ Routing tables]の順にクリックします。 「VPC 用のルーティング・テーブル」ページが表示されます。
-
表示したいルーティングテーブルに関連付けられているVPCを選択します。 次に、ルーティング・テーブルの名前をクリックして、その詳細を表示します。
-
「経路」セクションまでスクロールし、**「作成」**をクリックします。
-
Create routeサイドパネルで、以下の情報を入力します:
-
ゾーン-経路のアベイラビリティー・ゾーンを選択します。
-
名前- 新しいルートの名前を入力します。
-
Destination CIDR (宛先 CIDR)-経路の宛先 CIDR (例えば、
10.0.0.0/16
)。 -
優先順位-
0
から4
までの優先順位を入力します。 デフォルト値は2
です。 詳しくは、「 経路設定の決定」を参照してください。 -
Action- ルートにマッチしたパケットに対して実行するアクション。 値は次のとおりです。
- 委任 (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 ソースにアドバタイズします。 真、 偽のいずれか。
--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"} }'
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 レジストリー を参照してください。