ルートの使用

このページでは、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)"

VM インスタンスのネットワーク インターフェースのルートを一覧表示する

GCP Console には、インターフェースに適用されるすべてのルートと、実際にインターフェースで使用されているルートの一覧がネットワーク インターフェースごとに表示されます。ルートは他のルートをマスキングできるため、インターフェースに適用されるすべてのルートが実際にインターフェースで使用されないことがあります。

ルートを VM インスタンスに関連付けて適用するには、VPC ネットワークまたはネットワーク タグを使用します。適用されているすべてのルートを表示して、特定のルートがインターフェースに適用されているかどうかを確認できます。

VM インスタンスの特定のネットワーク インターフェースに適用されているルートを表示するには、次のようにします。

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

ネットワーク インターフェースでは、そのインターフェースに適用されているルートのすべてが使用されるわけではありません。一部のルートが、優先度の高いルートで上書きされることがあります。使用中のルートを表示して、特定の宛先に対してネットワーク インターフェースで使用しているルートを確認できます。

VM インスタンスの特定のネットワーク インターフェースで使用されているルートを表示するには、次のようにします。

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

ルートの説明

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

Console

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

gcloud

以下の gcloud コマンドを使用します。[ROUTE-NAME] は、検査するルートの名前に置き換えます。

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

ルートの追加と削除

静的ルートの追加

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

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

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

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

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 compute routes create [ROUTE] \
    --destination-range [DEST_RANGE] \
    --network [NETWORK]\
    [--tags=TAG,[TAG,…]] \
    [--next-hop-address=[ADDRESS]] |
    [--next-hop-gateway=default-internet-gateway]  |
    [--next-hop-instance=[INSTANCE_NAME] |
    [--next-hop-vpn-tunnel=[VPN_TUNNEL]]

  • --destination-range=[DESTINATION_RANGE] - ルートが適用される送信パケットの送信先の範囲。最も広範囲な送信先は 0.0.0.0/0 です。
  • --network - ルートが適用されるネットワーク。
  • --tags - 1 つまたは複数のタグを指定することによって、ルートが適用される VM を制限できます。これらのタグのいずれかを持つ VM を離れるトラフィックのみが、タグ付けされたルートを使用します。

指定したルートに次のいずれか 1 つのみを指定する必要があります。

  • --next-hop-address=[ADDRESS] - 特定の IP アドレスにトラフィックを送信する必要がある場合、--next-hop-address フラグと IP アドレスを指定します。
  • --next-hop-gateway=default-internet-gateway - サブネットのデフォルト ゲートウェイを介してパケットをネットワーク外に送信するルートが必要な場合、このフラグと default-internet-gateway パラメータを指定します。
  • --next-hop-instance=[INSTANCE_NAME] - トラフィックを特定のインスタンスに転送するルートが必要な場合、このフラグとインスタンス名を指定します。
  • --next-hop-vpn-tunnel=[VPN_TUNNEL] - トラフィックを Cloud VPN トンネルに送信するルートが必要な場合、このフラグとトンネル名を指定します。

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

ルートの削除

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

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

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

Console

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

gcloud

gcloud compute routes delete [ROUTE]

オペレーションの順序

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

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

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

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

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

ルートのネクストホップとして 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

VM インスタンスに適用されているルートを確認する

新しい test ルートを VPC ネットワークに追加し、宛先の範囲が 172.16.1.0/24 であるとします。ルートを作成したら、そのルートが特定のインスタンスに正しく適用されているかどうかを確認できます。詳細については、VM インスタンスのネットワーク インターフェースを一覧表示するをご覧ください。

次に示すコンソールの例では、[ルート分析] タブにこの VM インスタンスの test ルートが表示されており、172.16.1.0/24 へのトラフィックで test ルートが使用されていることがわかります。

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

次のステップ

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