ルーティング・テーブルの作成
ルーティング・テーブルを作成してルールを定義すると、ネットワーク・トラフィックを最適なパスで宛先に転送できます。 例えば、経路のネクスト・ホップにネットワーク経由でデータ・パケットを送信するための情報をルーティング・テーブルで提供できます。
開始前に
ルーティング・テーブルを作成する前に、少なくとも1つのVPCがあることを確認し、ルーティング・テーブルの 制限とガイドラインを 確認して遵守してください。
コンソール、CLI、API、Terraformを使って、 IBM Cloud サービスのルーティングテーブルを作成できる。
コンソールでルーティングテーブルを作成する
コンソールでルーティングテーブルを作成するには、以下の手順に従ってください
-
IBM Cloud コンソールから、 ナビゲーションメニューの
選択し、 [Infrastructure
>[ Network ]>[ Routing tables]の順にクリックします。 「VPC 用のルーティング・テーブル」ページが表示されます。
-
ページ右上の**「作成」**をクリックします。
-
「VPC プロビジョニングのルーティングテーブル」ページで、以下の情報を入力してください:
-
ルーティング・テーブルの固有の名前を入力します。
-
ルーティング・テーブルを関連付ける仮想プライベート・クラウドを選択します。
-
タグ- (任意)リソースを整理したり見つけやすくしたりするために、タグを追加してください。 後でさらにタグを追加できます。 詳しくは、『タグの処理』を参照してください。
-
アクセス管理タグ- (オプション)リソースにアクセス管理タグを追加して、アクセス制御の関係を整理する。 サポートされるアクセス管理タグの形式は
key:valueのみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。 -
仮想プライベートクラウド- VPCを選択してください。
-
トラフィック・セクションでは、これらのオプション機能から選択することができます:
-
Accepts routes from (オプション)- ルーティングテーブルにルートを作成できるリソースを選択します。 VPNサーバー、 VPNゲートウェイ、またはその両方のスイッチを選択できます。
ポリシーベースのVPNゲートウェイでは、ルートは自動的に検出されません。 ルーティングテーブルは、VPNゲートウェイからのルートを受け入れるように設定する必要があり、伝播されるルートはVPNポリシーで定義されたCIDRプレフィックスに限定されます。 BGPを備えたルートベースのVPNゲートウェイは、学習したルートを動的にアドバタイズする。 ポリシーベースのVPNにおけるCIDRプレフィックスの定義に関する詳細については、 「VPNゲートウェイへの接続の追加」 を参照してください。
VPNサーバーのルートは、クライアントアドレスプールおよび設定済みのクライアントルートから派生し、ルーティングテーブルがVPNサーバーからのルートを受け入れるように設定されている場合に伝播されます。
-
トラフィックソース (オプション) - このルーティングテーブルを使用して VPC にトラフィックをルーティングするトラフィックソースを選択します。
- Direct Link- オンプレミス拠点への IBM Cloud Direct Link 専用接続またはConnect接続からオンプレミス拠点への流入トラフィックを許可します。 オプションで、VPCのアドレスプレフィックス範囲にないダイレクトリンクへのルートをアドバタイズできます。
- Transit Gateway- IBM Cloud Transit Gateway から別の VPC またはクラシック・インフラストラクチャーへのインバウンドトラフィックを許可します。 オプションで、VPCのアドレスプレフィックス範囲にないTransit Gatewayルートをアドバタイズできます。
- VPCゾーン- 同じVPC内の別のアベイラビリティゾーンへのインバウンドトラフィックを許可します。
- パブリックインターネット- フローティングIP を宛先とするパブリックインターネットからのインバウンドトラフィックを、VPCのネクストホップIPへルーティングできるようにします。
-
-
-
[ ルーティングテーブルの作成 ] をクリックします。
CLI からのルーティングテーブルの作成
始める前に、 CLI環境をセットアップして ください。
CLI からルーティングテーブルを作成するには、次のコマンドを実行します
ibmcloud is vpc-routing-table-create VPC [--name NAME] [--direct-link-ingress false | true] [--internet-ingress, --internet false | true] [--transit-gateway-ingress false | true] [--vpc-zone-ingress false | true] [--accept-routes-from-resource-type-filters, --ar-rtf vpn_server | vpn_gateway] [--advertise-routes-to direct_link | transit_gateway | direct_link, transit_gateway] [--output JSON] [-q, --quiet]
ここで、
VPC- VPCのIDまたは名前です。
--name- VPCルーティングテーブルの名前です。
--direct-link-ingress, --direct-link- オプション。
trueに設定された場合、このルーティングテーブルは、 IBM Cloud Direct Link から発信されるトラフィックをこの VPC へルーティングするために使用されます。 ルーティングを正常に実行するには、VPCに、このプロパティが「true」に設定されたルーティングテーブルがすでに存在してはなりません。falseまたはtrueのいずれか。 --internet-ingress, --internet- このルーティング・テーブルを使用して、インターネットから発信されるトラフィックをルーティングするかどうかを示します。
trueに更新すると、VPC 内の他のルーティングテーブルでこのプロパティがtrueに設定されていない限り、このルーティングテーブルが選択されます。falseに更新すると、このルーティングテーブルの選択が解除されます。falseまたはtrueのいずれか。 --transit-gateway-ingress, --transit-gatewaytrueに設定された場合、このルーティングテーブルは、 Transit Gateway から発信されるトラフィックをこの VPC へルーティングするために使用されます。 ルーティングを正常に実行するには、VPCに、このプロパティが「true」に設定されたルーティングテーブルがすでに存在してはなりません。falseまたはtrueのいずれか。--vpc-zone-ingress, --vpc-zone- オプション。
trueに設定されている場合、このルーティングテーブルは、パブリックインターネットから発信されるトラフィックのルーティングに使用されます。 ルーティングを正常に実行するには、VPC内に、このプロパティが「true」に設定されている既存のルーティングテーブルが存在してはなりません。falseまたはtrueのいずれか。 --accept-routes-from-resource-type-filters, --ar-rtf- このルーティングテーブルにルートを作成できる、カンマ区切りのリソースタイプフィルター。 の一つ:
vpn_servervpn_gatewa. --advertise_routes_to TARGETS- オプション。 このルーティングテーブルのルートの広告ターゲットをコンマで区切ったリスト。 現在、
direct_linkとtransit_gatewayが許容値である。direct_linkは、direct-link-ingressをtrueに設定する必要がある。transit_gatewayは、transit—gateway-ingressをtrueに設定する必要がある。advertiseオプションがtrueに設定されたルーティングテーブルのすべてのルートは、 'advertise_routes_to' で指定されたイングレスソースにアドバタイズされる。 --output- 出力フォーマット。 次のいずれか: JSON。
-q, --quiet- 冗長出力を抑制する。
deliverのアクションを持つルートは、ネクストホップがルートのゾーン内のサブネット上のネットワークインターフェースにバインドされているIPアドレスでない限り、 ドロップとして扱われる。 したがって、受信パケットがインターネット接続IPアドレスまたはVPNゲートウェイ接続をネクストホップとするルートにマッチした場合、そのパケットはドロップされる。
VPCごとに1つのルーティングテーブルのみについて、 true というインジェスオプションを設定できます。ただし、そのルーティングテーブルがいかなるサブネットにもアタッチされていない場合に限ります。
CLI の例
ibmcloud is vpc-routing-table-create 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 --name my-vpc-routing-table -—advertise-routes-to direct_link --direct-link-ingress true -—output JSON
ibmcloud is vpc-routing-table-create my-vpc --name my-vpc-routing-table --advertise-routes-to transit_gateway —-transit-gateway-ingress true --output JSON
ibmcloud is vpc-routing-table-create my-vpc --name my-vpc-routing-table --advertise-routes-to direct_link, transit_gateway --direct-link-ingress true —transit-gateway-ingress true -—output JSON
ibmcloud is vpc-routing-table-create 979b4bc6-f018-40a2-92f5-0b1cf777b55d --name test-vpc-cli-routing-tb1 --direct-link-ingress false --internet-ingress false --transit-gateway-ingress false --vpc-zone-ingress true
API を使用したルーティングテーブルの作成
API を使用してルーティングテーブルを作成するには、以下の手順に従ってください
-
API 環境をセットアップします。
-
API コマンドで使用する
VpcIdの値を変数に格納します。export VpcId=<your_vpc_id> -
ルーティング・テーブルを作成します。
発信ルーティング・テーブル:
curl -X POST \ "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables?version=$api_version&generation=2" \ -H "Authorization: ${iam_token}" \ -d '{ "name": "test-routing-table" }'着信ルーティング・テーブル:
curl -X POST "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token" \ -d '{ "name": "my-ingress-routing-table", "route_direct_link_ingress": true }'
詳細およびオプションのパラメータについては、『VPC API リファレンス』 の「VPC のルーティングテーブルの作成 」を参照してください。
Terraform を使用したルーティングテーブルの作成
Terraform を使用してルーティングテーブルを作成するには、以下の手順に従ってください:
-
Terraform環境を設定してください。
-
以下の例のうち、いずれか1つを使用してください:
- ルーティングテーブルを作成するには:
resource "ibm_is_vpc_routing_table" "example" { vpc = ibm_is_vpc.example.id name = "example-vpc-routing-table" route_direct_link_ingress = true }- VPN サーバーから作成されたルートを受け入れるルーティングテーブルを作成するには:
resource "ibm_is_vpc_routing_table" "example" { vpc = ibm_is_vpc.example.id name = "example-vpc-routing-table" route_direct_link_ingress = true accept_routes_from_resource_type = ["vpn_server"] }- IBM Cloud Direct Link から発信されるトラフィックをこの VPC へルーティングするルーティングテーブルを作成するには:
resource "ibm_is_vpc_routing_table" "is_vpc_routing_table_instance" { vpc = ibm_is_vpc.example.id name = "example-vpc-routing-table" route_direct_link_ingress = true route_transit_gateway_ingress = false route_vpc_zone_ingress = false advertise_routes_to = ["direct_link", "transit_gateway"] }- ユーザータグおよびアクセスタグを含むルーティングテーブルを作成するには:
resource "ibm_is_vpc_routing_table" "example" { tags = ["rt-tag"] access_tags = ["access:dev"] vpc = ibm_is_vpc.example.id name = "example-vpc-routing-table" route_direct_link_ingress = true route_transit_gateway_ingress = false route_vpc_zone_ingress = false }CRNおよびリソースグループは、応答およびデータソースに含まれています。
resource "ibm_is_subnet" "example" { name = "example-subnet" vpc = ibm_is_vpc.example.id zone = "us-south-1" ipv4_cidr_block = "10.240.0.0/24" routing_table_crn = ibm_is_vpc_routing_table.example.crn }
ibm_is_vpc_routing_table リソースに関するドキュメントについては、 Terraform Registry を参照してください。