ルートの使用

このページでは、Google Cloud Platform(GCP)VPC ネットワークのルートを作成および管理する方法を説明します。このページでは、ルートの概要で説明されているさまざまな種類の GCP ルートとそれらの特性についてよく理解していることを前提としています。

新しいすべてのネットワークにはシステムによって生成された 2 種類のルートがあります。1 つ目はデフォルト ルートで、ユーザーが削除または置換できます。2 つ目はサブネット ルートで、サブネットごとに 1 つあります。対応するサブネット自体を削除しない限り、サブネット ルートは削除できません。

システム生成ルートに加えて、他のカスタム静的ルートを作成することもできます。

ルートの検査

VPC ネットワークのルートを一覧表示する

次のいずれかの方法でルートを表示できます。

Console

すべてのネットワークのルートを一覧表示するには、次のようにします。

  1. Google Cloud Platform Console で [ルート] ページに移動します。
    [ルート] ページに移動
  2. [ルートをフィルタ] テキスト ボックスを使用して、表示されるルートを制限できます。たとえば、VPC ネットワークの名前を入力し、Enter キーを押すことで、特定のネットワークのルートを表示できます。
  3. [すべて] タブには、すべてのタイプのルートが表示されます。カスタムの動的ルートのみを表示するには、[動的] タブをクリックします。

gcloud

デフォルト ルートサブネット ルートカスタム静的ルートをリストするには、次の gcloud コマンドを使用します。[NETWORK_NAME] は、使用するネットワークの名前に置き換えてください。

gcloud compute routes list --filter="network=[NETWORK_NAME]"

カスタム動的ルートは、gcloud compute routes list では表示されません。動的ルートを表示するには、ルートを学習した Cloud Router のステータスを照会する必要があります。次のコマンドをテンプレートとして使用します。[CLOUD_ROUTER_NAME] は、Cloud Router の名前に置き換えて、[REGION] はそのリージョンに置き換えます。

gcloud compute routers get-status [CLOUD_ROUTER_NAME] \
    --region=[REGION] \
    --format="flattened(result.bestRoutes)"

ルートの説明

システム生成ルートとカスタム静的ルートの詳細(送信先やネクストホップなど)を表示するには、以下のようにします。

Console

  1. Google Cloud Platform Console で [ルート] ページに移動します。
    [ルート] ページに移動
  2. ルートの名前をクリックします。

gcloud

システム生成ルートとカスタム静的ルートの詳細を表示するには、次の gcloud コマンドを使用して、[ROUTE_NAME] を検査するルートの名前に置き換えます。

gcloud compute routes describe [ROUTE_NAME] --format="flattened()"

VM のルート

このセクションの手順に従って、VM インスタンスの特定のネットワーク インターフェースの観点から、適用可能なルートと適用されているルートを表示できます。適用されているルートは、ルーティング順序を考慮する適用可能なルートのサブセットです。

ネットワーク インターフェースの適用可能なルート

GCP Console を使用して、VM のネットワーク インターフェースの適用可能なルートを表示できます。このビューでは、下りトラフィックに使用できるルートのリストが絞り込まれます。

VM の特定のネットワーク インターフェースの適用可能なルートを表示するには、以下のようにします。

  1. Google Cloud Platform Console の [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. リストで VM インスタンスを見つけます。[その他の操作] メニュー()で、[ネットワークの詳細の表示] を選択します。
  3. インスタンスに複数のネットワーク インターフェースがある場合は、[ネットワーク インターフェースの詳細] セクションに表示するネットワーク インターフェースを選択します。
  4. [ルート] タブをクリックすると、ネットワーク インターフェースに適用されているすべてのルートがルート名順に表示されます。

ルート分析と適用されているルート

ルート分析は、適用可能なルートとルーティング順序を考慮して適用されているルートを特定するのに役立ちます。ルートは送信先 IP 範囲順に一覧表示されるため、特定の送信先範囲にトラフィックを送信するために使用される適用可能なルートがわかります。

たとえば、ネットワーク インターフェースで複数の適用可能なルートを使用する場合があります。詳細については、「ルートの概要」のルーティング順序をご覧ください。

適用範囲とルーティング順序に基づいてルートを表示するには、ルート分析を使用します。

  1. Google Cloud Platform Console で [VM インスタンス] ページに移動し、表示するインスタンスを見つけます。
    [VM インスタンス] ページに移動
  2. インスタンスの [その他の操作] メニュー()で、[ネットワークの詳細の表示] を選択します。
  3. インスタンスに複数のネットワーク インターフェースがある場合は、[ネットワーク インターフェースの詳細] セクションに表示するネットワーク インターフェースを選択します。
  4. [ネットワーク分析] セクションの [ルート分析] タブを選択します。
  5. テーブルに IP アドレス範囲が最も具体的なものから順に表示されるので、特定の送信先範囲に適用されるルートを確認します。

[ルート分析] タブの出力例は次のとおりです。

VM インスタンスに適用されているルート(クリックして拡大)
VM インスタンスに適用されているルート(クリックして拡大)

ルートの追加と削除

静的ルートの追加

新しい静的ルートを作成するには、次の手順に従います。操作を行う前に、以下の点を十分に理解するようにしてください。

  • カスタム静的ルートには、VPC ネットワーク内のサブネット ルートによって使用されている送信先範囲と一致する、またはそれよりも限定された送信先範囲を設定することはできません。

    • VPC ネットワーク ピアリングを使用して 2 つの VPC ネットワークを接続する場合、一方のネットワーク内のカスタム静的ルートに、両方のネットワーク内にあるサブネット ルートと一致する、またはそれよりも限定された送信先を設定することはできません。GCP では、このようにサブネット ルートと競合するカスタム静的ルートは拒否されます。
  • 自動モードのネットワークを使用する際の競合を回避するために、送信先が 10.128.0.0/9 内に収まる静的ルートを作成しないでください。詳細については、自動モード ネットワーク用に予約された IP 範囲を確認してください。

  • 内部割り当て範囲と重複するカスタム静的ルートの送信先を設定することはできません。

  • VM をネクストホップとして使用するカスタム静的ルートを作成する前にネクストホップとしてのインスタンスに精通していることを確認してください。ネクストホップのインスタンスを選択した場合、GCP はルートの作成時に VM が存在することのみを検証します。

Console

  1. Google Cloud Platform Console で [ルート] ページに移動します。
    [ルート] ページに移動
  2. [ルートを作成] をクリックします。
  3. ルートの名前説明を指定します。
  4. ルートが適用される既存のネットワークを選択します。
  5. 送信先 IP の範囲を指定して、ルートの送信先を定義します。
  6. ルートの優先度を指定します。優先度は、ルートに同等の送信先がある場合に、ルーティングの順序を決定するためにのみ使用されます。詳細については、静的ルートのパラメータをご覧ください。
  7. 一致するネットワーク タグを持つ、一部のインスタンスにのみルートが適用されるようにするには、[インスタンス タグ] フィールドでそれらを指定します。ネットワーク上のすべてのインスタンスにルートが適用されるようにするには、このフィールドを空白のままにします。
  8. ルートのネクストホップを選択します。
    • [デフォルト インターネット ゲートウェイ] を選択すると、インターネットへのルートが作成されます。
    • [インスタンスを指定] を選択すると、名前でインスタンスを選択できます。トラフィックは、IP アドレスが変更されても、そのインスタンス(または、同じゾーン内の同じ名前を持つ、代替インスタンス)にルーティングされます。
    • [IP アドレスを指定] を選択すると、VPC ネットワーク内の既存インスタンスの IP アドレスを入力できます。有効なネクストホップ IP アドレスに関する重要な制限については、静的ルートのネクストホップをご覧ください。
    • [VPN トンネルを指定] を選択すると、ネクストホップとして既存の Cloud VPN トンネルを選択できます。トンネルは、ポリシーベースのルーティングを使用するか、ルートベースの VPN である必要があります。
  9. [作成] をクリックします。

gcloud

次の gcloud コマンドを使用して新しいカスタム静的ルートを作成します。

gcloud compute routes create [ROUTE_NAME] \
    --destination-range=[DEST_RANGE] \
    --network=[NETWORK] \
    [NEXT_HOP_SPECIFICATION]

プレースホルダを有効な値に置き換えます。

  • [ROUTE_NAME] はルートの名前です。
  • [DESTINATION_RANGE] は、このルートが適用される送信先 IP アドレスを表します。最も広範囲な送信先は 0.0.0.0/0 です。
  • [NETWORK] は、ルートを含む VPC ネットワークの名前です。
  • [NEXT_HOP_SPECIFICATION] は、カスタム静的ルートのネクストホップを表します。ネクストホップとして次のいずれか 1 つのみを指定する必要があります。ネクストホップの種類の詳細については、「ルートの概要」の静的ルートのネクストホップをご覧ください。
    • --next-hop-gateway=default-internet-gateway: このネクストホップを使用して、インターネットや限定公開の Google アクセスのための IP アドレスなどに VPC ネットワークの外部のトラフィックを送信します。
    • --next-hop-instance=[INSTANCE_NAME]--next-hop-instance-zone=[ZONE]: このネクストホップを使用して、トラフィックを名前とゾーンで既存の VM インスタンスに誘導します。トラフィックは、ルートと同じネットワークにある VM のネットワーク インターフェースのプライマリ内部 IP アドレスに送信されます。送信先 VM の考慮事項については、ネクストホップとしてのインスタンスをご覧ください。
    • --next-hop-address=[ADDRESS]: このネクストホップを使用して、既存の VM インスタンスの IP アドレスにトラフィックを誘導します。送信先 VM の考慮事項については、ネクストホップとしてのインスタンスをご覧ください。
    • --next-hop-vpn-tunnel=[VPN_TUNNEL_NAME]--next-hop-vpn-tunnel-region=[REGION]: このネクストホップを使用して、静的ルーティングを使用する Cloud VPN トンネルにトラフィックを誘導します。

カスタム静的ルートをネットワーク タグによる VM の選択にのみ適用するには、--tags フラグを追加し、1 つ以上のネットワーク タグを指定します。ネットワーク タグとカスタム静的ルートの連携の詳細については、「ルートの概要」の適用可能なルートをご覧ください。

gcloud 構文の詳細については、SDK のドキュメントをご覧ください。

ルートの削除

システム生成のデフォルト ルートまたはカスタム静的ルートを削除できます。その他のタイプのルートについては、次のようになります。

  • サブネット ルートは、対応するサブネットを削除しなければ削除できません

  • Cloud Router によって学習された動的ルートを削除するには、その BGP ピアルーターを構成して、ルートのアドバタイジングを停止する必要があります。

Console

  1. Google Cloud Platform Console で [ルート] ページに移動します。
    [ルート] ページに移動
  2. 削除するルールの横にあるチェックボックスをオンにします。
  3. [削除] をクリックします。
  4. もう一度 [削除] をクリックして確定します。

gcloud

次の gcloud コマンドを使用してカスタム静的ルートを削除します。[ROUTE_NAME] は、削除するルートの名前に置き換えます。

gcloud compute routes delete [ROUTE_NAME]

オペレーションの順序

ルートの追加または削除をリクエストすると、変更がステージングされ、最終的に一貫性のある設計を使用して、ネットワーク内のインスタンスに伝搬されます。ステータスが PENDING または RUNNING である変更リクエストは、そのリクエストがまだ処理されていないことを示します。処理が終わると、変更リクエストのステータスは DONE になります。

一連の順序で変更リクエストを行っても、変更は一貫性のない順序で適用される場合があります。変更リクエストを送信した順番でリクエストが処理されるという保証はありません。また、インスタンスが異なれば、変更が認識されるまでの時間も異なる可能性があります。

インスタンスに対する IP 転送の有効化

デフォルトで、GCP はパケットに対して厳密な送信元と送信先のチェックを行うため、次のようになります。

  • VM インスタンスでは、ネットワーク内のそのインターフェースの内部 IP アドレスと一致するように送信元が設定されたパケットのみを送信できます。
  • パケットは、それらの送信先が、ネットワーク内のインスタンスのインターフェースの IP アドレスと一致する場合にのみ、インスタンスに配信されます。

そのため、デフォルトでは、VM は別の VM から送信されたパケットを転送できません。

ルートのネクストホップとして VM を使用するには、その VM は必ず、それ自体を除く送信先を持つパケットを受信する必要があります。そのようなパケットは転送されるため、それらの送信元はそれ自体の内部 IP とは異なります。このようにするには、VM に対する IP 転送を有効にする必要があります。IP 転送が有効な場合、GCP はパケットの送信元と送信先のチェックを強制しません。

Console

  1. [VM インスタンス] ページに移動します。
    [VM インスタンス] ページに移動
  2. [インスタンスを作成] をクリックします。
  3. [管理、ディスク、ネットワーク、SSH 認証鍵] をクリックします。
  4. [ネットワーキング] をクリックします。
  5. 編集ボタンをクリックして、ネットワーク インターフェースを選択します。
  6. ネットワーク インターフェースについては、[IP 転送] メニューから [オン] を選択します。
  7. 他のインスタンス パラメータを指定します。
  8. [作成] をクリックします。

gcloud

gcloud を使用してインスタンスを作成する場合は、コマンドに --can-ip-forward フラグを追加します。

gcloud compute instances create ... --can-ip-forward

次のステップ

  • ルートの詳細について、ルートの概要を参照する。
  • GCP VPC ネットワークの詳細について、VPC の概要を参照する。
  • VPC ネットワークの作成と変更の手順を、VPC の使用で確認する。
このページは役立ちましたか?評価をお願いいたします。