ルーティング・テーブルの作成

ルーティング・テーブルを作成してルールを定義すると、ネットワーク・トラフィックを最適なパスで宛先に転送できます。 例えば、経路のネクスト・ホップにネットワーク経由でデータ・パケットを送信するための情報をルーティング・テーブルで提供できます。

開始前に

ルーティング・テーブルを作成する前に、少なくとも1つのVPCがあることを確認し、ルーティング・テーブルの 制限とガイドラインを 確認して遵守してください。

コンソール、CLI、API、Terraformを使って、 IBM Cloud サービスのルーティングテーブルを作成できる。

コンソールでルーティングテーブルを作成する

コンソールでルーティングテーブルを作成するには、以下の手順に従ってください

  1. IBM Cloud コンソールからナビゲーションメニューの [Menu]アイコンを 選択し、 [Infrastructure VPC]アイコン >[ Network ]>[ Routing tables]の順にクリックします。 「VPC 用のルーティング・テーブル」ページが表示されます。

  2. ページ右上の**「作成」**をクリックします。

  3. 「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へルーティングできるようにします。
  4. [ ルーティングテーブルの作成 ] をクリックします。

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-gateway
true に設定された場合、このルーティングテーブルは、 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_server vpn_gatewa.
--advertise_routes_to TARGETS
オプション。 このルーティングテーブルのルートの広告ターゲットをコンマで区切ったリスト。 現在、 direct_linktransit_gateway が許容値である。 direct_link は、 direct-link-ingresstrue に設定する必要がある。 transit_gateway は、 transit—gateway-ingresstrue に設定する必要がある。 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 を使用してルーティングテーブルを作成するには、以下の手順に従ってください

  1. API 環境をセットアップします。

  2. API コマンドで使用する VpcId の値を変数に格納します。

    export VpcId=<your_vpc_id>
    
  3. ルーティング・テーブルを作成します。

    発信ルーティング・テーブル:

    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 を使用してルーティングテーブルを作成するには、以下の手順に従ってください:

  1. Terraform環境を設定してください。

  2. 以下の例のうち、いずれか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 を参照してください。