Cloud Router

Google Cloud Router は、Border Gateway Protocol(BGP)を使用して、Google Cloud Platform(GCP)Virtual Private Cloud(VPC)ネットワークとお客様の自社運用ネットワーク間のルートを動的に更新できるようにします。初期リリースの Cloud Router は Cloud VPN に対してのみ BGP をサポートします。

Cloud Router は、レガシー ネットワークと Virtual Private Cloud(VPC)ネットワークのどちらでも機能します。

このドキュメントでは、VPN で Cloud Router と動的ルートを使用する事例のみを取り上げます。VPN での静的ルートの使用と VPN の概要については、Cloud VPN のドキュメントをご覧ください。

VPC と他のベンダーまたはプロバイダとの間で VPN を設定する方法について詳しくは、VPN 相互運用ガイドをご覧ください。

始める前に

概要

VPN を使用して、自社運用ネットワークと VPC ネットワークを安全に接続することができます。Cloud Router がなければ、静的ルートを使用して VPN を設定しなければなりません。Cloud Router があれば、Cloud VPN で動的ルーティングを利用できます。

Cloud Router はお客様の VPN ゲートウェイまたはルーターとピアリングし、BGP を介してトポロジ情報を交換します。ネットワーク トポロジの変化は VPC ネットワークと自社運用ネットワークの間で自動的に伝播するため、Cloud VPN トンネル用に静的ルートを設定する必要はありません。

Cloud Router は完全に分散管理された Google クラウド サービスです。Software-Defined Networking(SDN)の原理に基づいて構築されており、ソフトウェアによって定義された Google のネットワーク仮想化スタックの形で提供されます。

Cloud Router の利点を次にまとめます。

  • 動的ルーティング方式の VPN を実現できます。動的ルーティングはエンタープライズ クラスの VPN を利用する場合に必須の要件です。
  • VPN トンネル用に静的ルートを設定する必要がありません。BGP による動的ルーティングにより、各システムが協調してネットワーク トポロジの変化を自動的かつ迅速に検出できます。
  • トポロジが変化したときに VPN トンネルを再起動する必要がありません。その結果、トラフィックを中断することなくネットワーク トポロジの変化をシームレスに適用できます。

Cloud Router のない VPN の欠点

Cloud Router がない場合は、VPN を設定する際に静的ルートを使用する必要があります。 静的ルートには次のような短所があります。

  • VPN トンネルの一方の側でネットワーク構成が変更されたとき、その変更に合わせて手動で新しい静的ルートを作成し、既存の静的ルートを削除する必要があります。 また、静的ルートの変更はコンバージェンスに時間がかかります。
  • 静的ルートで VPN トンネルを作成する場合、トンネルが作成される前にトンネルの両側の IP 接頭辞リストが指定されている必要があります。そのため、ルートの変更が必要になるたびに VPN トンネルを新しいルートで更新(トンネルを削除して再作成)しなければならず、既存のトラフィックが中断します。
  • 静的ルートを設定する標準的な方法はありません。使用するコマンドはベンダーごとに異なります。
レガシー ネットワークの図(クリックすると拡大します)
Cloud Router のない VPN(クリックすると拡大します)

例: Google クラウド ネットワークとお客様側のピア ネットワークが VPN トンネルで接続されており、ピア ネットワークには 29 のサブネット(ラックごとに 1 つ)があります。 お客様の事業は好調で、毎週新しいサブネットを追加しなければならないほどの成長を見せています。今週、サブネット 10.0.30.0/24 を追加することになりました(上の図を参照)。

このシナリオでは、VPN が静的ルートに基づいている場合、VPN を次のように変更する必要があります。

  1. Google Cloud Platform が新しいピアサブネットに到達できるようにするため、静的ルートを Google Cloud Platform に追加する。
  2. 既存の VPN トンネルを削除し、新しいピアサブネットを含めて VPN トンネルを再作成する。

Cloud Router を導入すれば、このような静的ルートと VPN トンネルの構成変更は不要です。Cloud Router は BGP を使用してお客様の VPN ゲートウェイとピアリングし、トポロジ情報を交換します。一方のネットワークのトポロジ変更は BGP を介して他方のネットワークに自動的に伝播するため、Cloud VPN トンネル用に静的ルートを設定する必要はありません。

レガシー ネットワーク VPN の Cloud Router

Cloud Router を VPN に追加すると、Google Cloud Platform とお客様の自社運用ネットワークが BGP を介して互いを自動的に検出できます。

レガシー ネットワークの図(クリックすると拡大します)
レガシー ネットワーク VPN の Cloud Router(クリックすると拡大します)

例: 前の例で、ネットワーク変更のたびに静的ルートを再設定して VPN トンネルを再起動しなくて済むようにするには、VPN トンネルで動的ルーティングを有効にしてネットワーク構成の変更を自動的に伝播させます。動的ルーティング オプションを選択すると、ピア VPN ゲートウェイで BGP がサポートされている場合、Cloud Router とピア VPN ゲートウェイ間の BGP セッションが作成されます。

各ルーターは BGP セッションを使用してローカルの変更を相手に伝えます。BGP を設定するには、VPN トンネルの各側に追加の IP アドレスを割り当てる必要があります。どちらの IP アドレスも、IP アドレス範囲 169.254.0.0/16 に属するリンクローカル IP アドレスである必要があります。これらのアドレスはそれぞれの側の IP アドレス空間に含まれておらず、BGP ピア間の BGP セッションを作成するためだけに使用されます。

2 つのリンクローカル IP アドレスは、どちらも同じサブネットとネットマスクから作成する必要があります。トンネルの両側でこのような変更を加えた後、BGP セッションが確立されます。この時点で、構成は上の図のようになります。

VPC ネットワーク VPN の Cloud Router

VPC ネットワークを使用すると、ネットワーク IP 空間をリージョン別に接頭辞(サブネット)に分割し、どの接頭辞から VM インスタンスの内部 IP アドレスを割り当てるかを制御できます。VPN の関連する静的ルートの追加と削除の負担を含むこれらのサブネットの静的な管理を避けたい場合は、Cloud Router を使用して VPN の動的ルーティングを有効にします。 Cloud Router は特定のリージョンの VPC ネットワークに所属しており、すべてのリージョン サブネットをピア ゲートウェイに BGP で通知します。また、BGP を使用してピアルートを学習し、対応する接頭辞に到達する最適なルートを選択します。

Cloud Router をカスタムモードの VPC ネットワークで使用する例を次に示します。自動モードの VPC ネットワークでは、リージョンの /20 接頭辞が自動的に通知されます。

VPC ネットワーク VPN の Cloud Router(クリックすると拡大します)
VPC ネットワーク VPN の Cloud Router(クリックすると拡大します)

例: この例では、前のレガシー ネットワークの例と同様に、VPC ネットワーク トポロジに VPN 機能を使用する Cloud Router を示します。VPC ネットワークに 2 つのサブネット(Test、Prod)があり、VPN トンネルの反対側のデータセンターに 29 のサブネット(ラックごとに 1 つ)があります。VPC ネットワークとデータセンターは単一の VPN トンネルで接続されています。

ここで、設定に次の 2 つの変更を加えます。

  1. Google クラウドに Staging という新しいサブネットを作成する。
  2. 増大するトラフィックに対処するため、機器ラックを増設する。すなわち、データセンターに新しいサブネットを追加する。

サブネット変更のたびに VPN と静的ルートの設定を変更しなくて済むようにするには、VPN トンネルで動的ルーティングを有効にしてネットワーク設定の変更を自動的に伝播させます。動的ルーティングを有効にするには、Cloud Router を使用してピア VPN ゲートウェイとの間に BGP セッションを作成します(ピア ゲートウェイでも BGP がサポートされている必要があります)。Cloud Router を VPN に追加すると、BGP を介してサブネットが自動的に検出されます。

レガシー ネットワークと同様に、BGP を設定するには、VPN トンネルの各側に追加の IP アドレスを割り当てる必要があります。どちらの IP アドレスも、IP アドレス範囲 169.254.0.0/16 に属するリンクローカル IP アドレスである必要があります。これらのアドレスは IP アドレス空間に含まれておらず、BGP セッションを作成するためだけに使用されます。

個々の Cloud Router は単一のネットワークとリージョンに属しており、その VPC ネットワークとリージョンにある VPN トンネルで指定されたサブネットの BGP セッションのみを処理します。VPC ネットワークの VPN トンネルが複数のリージョンに存在する場合、動的ルーティングを使用する各リージョンで Cloud Router を作成する必要があります。複数の VPN ゲートウェイに対して単一の Cloud Router を使用でき、同じネットワーク / リージョンに接続されているトンネルであれば複数のトンネルに対して同じ Cloud Router を使用できます。

上記の VPC ネットワークの例では、Cloud Router で Cloud VPN ゲートウェイの動的ルーティングを有効にし、Staging 用 Google Cloud に新しいサブネット、データセンターに新しいラックを追加すると、これらの新しいサブネットが反対側にシームレスに通知され、これらのサブネット内のインスタンスはすぐにトラフィックの送受信を開始します。動的ルーティング方式の VPN、Cloud Router、サブネットの組み合わせは利便性が高く、多数のサブネットを持つ大規模な組織や企業には欠かせません。

グレースフル リスタートによるトラフィック中断の防止

市販されている VPN ゲートウェイのほとんどは、グレースフル リスタートと呼ばれる BGP の機能をサポートしています(デフォルトでは無効になっている場合があります)。VPN ゲートウェイが BGP をサポートしていない場合は、別のルーターでグレースフル リスタートを設定することもできます。グレースフル リスタートを有効にすると、ピア BGP デバイスがオフラインになった後も、グレースフル リスタート時間(Cloud Router の場合は 2 分)以内であればトラフィック フローを中断することなく復帰できます。そのため、BGP エージェントのソフトウェア アップグレードやメンテナンスが必要な場合、または一時的な障害が発生した場合にもネットワークが停止することはありません。BGP デバイスでグレースフル リスタートがサポートされている場合は、この機能を有効にしてください。Cloud Router では、グレースフル リスタートはデフォルトで有効になっています。

グレースフル リスタートと Cloud Router(クリックすると拡大します)
グレースフル リスタートと Cloud Router(クリックすると拡大します)

たとえば上記の例で、ピア VPN ゲートウェイでグレースフル リスタートが有効になっている場合、Cloud Router のメンテナンス アップデートが発生すると、アップデートの完了後 Cloud Router はグレースフル リスタート時間内にオンラインに復帰します。その間トラフィックが中断することはありません。

グレースフル リスタートをサポートしていない VPN ゲートウェイの冗長化

ピア ゲートウェイにグレースフル リスタート機能がない場合、BGP セッションの一方の側で障害が発生するとセッションが失敗し、トラフィック フローが中断します。BGP タイムアウト(Cloud Router の場合は 60 秒)が経過した後、両側からルートが除去されます。 動的にルーティングされた VPN トラフィックはそれ以降トンネルに入りません。トンネル用の静的ルートも併せて設定している場合、それらのルートは引き続き機能します。

ピア ゲートウェイがグレースフル リスタートをサポートしていない場合、2 台のピア ゲートウェイを配備してそれぞれにトンネルを 1 つずつ設定することで、冗長化とフェイルオーバーを提供できます。Cloud VPN ゲートウェイも 2 つ必要になります(各トンネルに 1 つずつ)。このような構成にすると、ソフトウェア アップグレードやメンテナンスのために一方のトンネルとデバイスをオフラインにすることができます。 また、どちらかのピア ゲートウェイで障害が発生した場合にもルートは維持され、トラフィック フローは他方のピア ゲートウェイ上のトンネルに迂回されます。

下記の図では Cloud Router は 1 つのボックスで表されていますが、IP アドレスを 2 つ持っています。これら 2 つのアドレスは、同じ Cloud Router タスク内の異なるイーサネット インターフェースを示します。各インターフェースは、異なるピアとの別々の BGP セッションに使用されます。この使用例では、VPN トンネルは冗長性確保の目的で作成されているため、両方の BGP セッションは正確に同じルート接頭辞のセットを交換しますが、ネクストホップは別々の VPN トンネルを指します。

グレースフル リスタートがない場合の冗長化(クリックすると拡大します)
グレースフル リスタートがない場合の冗長化(クリックすると拡大します)

Cloud Router による VPN の設定

この例のネットワークはカスタムモードの VPC ネットワークです。

VPC ネットワーク VPN の Cloud Router(クリックすると拡大します)
VPC ネットワーク VPN の Cloud Router(クリックすると拡大します)

VPN ゲートウェイ、VPN トンネル、Cloud Router の作成

コンソール


VPN 作成前に Cloud Router を作成し、VPN の作成時にその Cloud Router を使用する場合は、VPN の前に Cloud Router を作成するをご覧ください。 VPN ワークフローの一環として Cloud Router を作成する場合は、VPN ワークフローの一環として Cloud Router を作成する手順をご覧ください。

VPN の前に Cloud Router を作成する

この手順は、まず Cloud Router を作成してから VPN を作成する場合に実施します。

  1. Google Cloud Platform Console の [クラウド ルーターの作成] ページに移動します。
    ルーターページに移動
  2. VPN ゲートウェイとトンネルを配置する地域で Cloud Router を作成します。
    • [名前] - Cloud Router の名前。この名前はコンソールに表示され、gcloud コマンドライン ツールでルーターを参照するために使用されます。例: my-router
    • [VPC ネットワーク] - VPN ゲートウェイを利用するインスタンスを含むネットワーク。例: my-network
    • [地域] - Cloud Router と VPN ゲートウェイを配置する地域。これは通常、使用するインスタンスを含む地域です。例: asia-east1
    • [Google ASN] - 設定するルーターのプライベート ASN(64512~65534、4200000000~4294967294)。同じ地域およびネットワークでまだピア ASN として使用していない任意のプライベート ASN を指定できます。 例: 65001
  3. 新しいルーターが Cloud Router の一覧ページに表示されます。新しいルーターの [VPN ゲートウェイ] 列で [設定] をクリックします。
  4. VPN ゲートウェイの次のフィールドに入力します。
    • [名前] - VPN ゲートウェイの名前。この名前はコンソールに表示され、gcloud コマンドライン ツールでこのゲートウェイを参照するために使用されます。例: my-vpn
    • [VPC ネットワーク] - Cloud Router とこの VPN ゲートウェイが担当するインスタンスを含む VPC ネットワーク。例: my-network
    • [地域] - VPN ゲートウェイを作成する地域。Cloud Router と同じ地域にする必要があります。 これは使用するインスタンスを含む地域です。例: asia-east1
    • [IP アドレス] - 既存の静的外部 IP アドレスを選択します。 静的外部 IP アドレスを持っていない場合は作成できます。
  5. 少なくとも 1 つのトンネルについて、次のフィールドに入力します。
    • [ピア IP アドレス] - ピア ゲートウェイのパブリック IP アドレス。 これはピア VPN ゲートウェイのパブリック IP アドレスです。現在設定している VPN ゲートウェイの IP アドレスではありません。
    • [IKE バージョン] - IKEv2 が推奨されますが、ピア ゲートウェイがバージョン 1 のみに対応している場合は IKEv1 を使用します。
    • [共有シークレット] - このトンネルの暗号化の確立に使用される文字列。両方の VPN ゲートウェイに同じ共有シークレットを入力する必要があります。トンネルのピア側の VPN ゲートウェイ デバイスが共有シークレットを自動生成しない場合は、手動で作成できます。
    • [ルーティング オプション] - [動的(BGP)] を選択します。
    • [クラウド ルーター] - my-router を選択します。
    • [BGP セッション] - 鉛筆アイコンをクリックして次のフィールドに入力します。入力が済んだら [保存して次へ] をクリックします。
      • [名前] - bgp-peer1
      • [ピア ASN] - パブリック ASN を使用するか、まだピア ネットワークまたは VPC ネットワークで使用していない任意のプライベート ASN(64512~65534、4200000000~4294967294)を使用できます。例: 65002
      • [Google BGP IP アドレス] - 2 つの BGP インターフェース IP アドレスは、同じ /30 サブネットに属する 169.254.0.0/16 形式のリンクローカル IP アドレスである必要があります。例: 169.254.1.1
      • [Peer BGP IP アドレス] - Google BGP IP アドレスの説明をご覧ください。例: 169.254.1.2
  6. [作成] をクリックしてゲートウェイを作成し、すべてのトンネルを起動します。ただし、ピアルーターを同様に設定するまでトンネルは接続されません。
    この手順が完了すると、ゲートウェイとトンネルに必要な転送ルールが自動的に作成されます。

VPN ワークフローの一環として Cloud Router を作成する

この手順は、Cloud Router をまだ作成しておらず、VPN ワークフローの一環として Cloud Router を作成する場合に実施します。

  1. Google Cloud Platform Console の [VPN の作成] ページに移動します。
    VPN ページに移動
  2. VPN ゲートウェイの次のフィールドに入力します。
    • [名前] - VPN の名前。 この名前はコンソールに表示され、gcloud コマンドライン ツールで VPN を参照するために使用されます。例: my-vpn
    • VPC ネットワーク - VPN ゲートウェイを利用するインスタンスを含む VPC ネットワーク。例: my-network
    • [地域] - VPN ゲートウェイを作成する地域。Cloud Router と同じ地域にする必要があります。 これは使用するインスタンスを含む地域です。例: asia-east1
    • [IP アドレス] - 既存の静的外部 IP アドレスを選択します。 静的外部 IP アドレスを持っていない場合は、[新しい静的 IP アドレス] をクリックして IP アドレスを作成します。
  3. 少なくとも 1 つのトンネルについて、次のフィールドに入力します。
    • [ピア IP アドレス] - ピア ゲートウェイのパブリック IP アドレス。 これはピア VPN ゲートウェイのパブリック IP アドレスです。現在設定している VPN ゲートウェイの IP アドレスではありません。
    • [IKE バージョン] - IKEv2 が推奨されますが、ピア ゲートウェイがバージョン 1 のみに対応している場合は IKEv1 を使用します。
    • [Shared Secret] - このトンネルの暗号化の確立に使用される文字列。両方の VPN ゲートウェイに同じ共有シークレットを入力する必要があります。トンネルのピア側の VPN ゲートウェイ デバイスが共有シークレットを自動生成しない場合は、手動で作成できます。
    • [ルーティング オプション] - [動的(BGP)] を選択します。
    • [クラウド ルーター] - [クラウド ルーターを作成] をクリックしてから次のフィールドに入力します。入力が済んだら [保存して次へ] をクリックします。
      • [名前] - Cloud Router の名前。この名前はコンソールに表示され、gcloud コマンドライン ツールでルーターを参照するために使用されます。例: my-router
      • [Google ASN] - 設定するルーターのプライベート ASN(64512~65534、4200000000~4294967294)。まだ使用していない任意のプライベート ASN を指定できます。 例: 65001
    • [BGP セッション] - 鉛筆アイコンをクリックして次のフィールドに入力します。入力が済んだら [保存して次へ] をクリックします。
      • [名前] - bgp-peer1
      • [ピア ASN] - 設定するルーターのプライベート ASN(64512~65534、4200000000~4294967294)。まだ使用していない任意のプライベート ASN を指定できます。 例: 65002
      • [Google BGP IP アドレス] - 2 つの BGP インターフェース IP アドレスは、同じ /30 サブネットに属する 169.254.0.0/16 形式のリンクローカル 169.254.0.0/16 IP アドレスである必要があります。例: 169.254.1.1
      • [Peer BGP IP アドレス] - Google BGP IP アドレスの説明をご覧ください。例: 169.254.1.2
  4. [作成] をクリックしてゲートウェイ、Cloud Router、すべてのトンネルを作成します。ただし、ピアルーターを同様に設定するまでトンネルは接続されません。
    この手順が完了すると、ゲートウェイとトンネルに必要な転送ルールが自動的に作成されます。 Google Cloud Platform Console を使用して BGP ピアセッションを作成した場合、そのピア用の Cloud Router インターフェースが自動的に作成されます。

gcloud


  1. VPC ネットワークを選択または作成します。この例では、カスタムモードの VPC ネットワークを作成しています。

    gcloud compute networks create my-network \
      --mode custom
    
    NAME       MODE   IPV4_RANGE GATEWAY_IPV4
    my-network custom
    
  2. 最初のサブネットに対応するサブネット接頭辞を指定します。この例では 10.21.0.0/16 をリージョン asia-east1 に割り当てます。

    gcloud compute networks subnets create subnet-1 \
        --network my-network \
        --region asia-east1 \
        --range 10.21.0.0/16
    
    NAME     REGION      NETWORK    RANGE
    subnet-1 asia-east1  my-network 10.21.0.0/16
    
  3. 目的のリージョンに VPN ゲートウェイを作成します。これは通常、使用するインスタンスを含むリージョンです。ここでは、未設定の仮想 VPN ゲートウェイを my-vpn という名前で VPC ネットワークに作成します。

    gcloud compute target-vpn-gateways create my-vpn \
        --project [PROJECT_ID] \
        --region asia-east1 \
        --network my-network
    
    Created [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/targetVpnGateways/my-vpn].
    NAME   NETWORK    REGION
    my-vpn my-network asia-east1
    
  4. VPN ゲートウェイを作成した VPC ネットワークとリージョンの静的 IP アドレスを予約します。ここで作成したアドレスは後の手順で使用します。以降の手順では、この数値アドレスを IP-ADDRESS と記載します。

    gcloud compute addresses create vpn-static-ip \
        --project [PROJECT_ID] \
        --region asia-east1
    
    Created [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/addresses/address1].
    NAME          REGION       ADDRESS         STATUS
    vpn-static-ip asia-east1   IP-ADDRESS      RESERVED
    
  5. ESP、UDP:500、UDP:4500 のトラフィックを Cloud VPN ゲートウェイに転送する転送ルールを作成します。前の手順で予約した静的 IP アドレス IP-ADDRESS を使用します。fr-espfr-udp500fr-udp4500 という名前で 3 つの転送ルールを作成します。

    まず fr-esp ルールを作成します。

    gcloud compute forwarding-rules create fr-esp \
        --project [PROJECT_ID] \
        --region asia-east1 \
        --address IP-ADDRESS \
        --target-vpn-gateway my-vpn \
        --ip-protocol ESP
    
    Created [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/forwardingRules/fr-esp].
    NAME   REGION       IP-ADDRESS      IP_PROTOCOL TARGET
    fr-esp asia-east1   IP-ADDRESS      ESP         asia-east1/targetVpnGateways/my-vpn
    

    fr-udp500 を作成します。

    gcloud compute forwarding-rules create fr-udp500 \
        --project [PROJECT_ID] \
        --region asia-east1 \
        --address IP-ADDRESS \
        --target-vpn-gateway my-vpn \
        --ip-protocol UDP \
        --ports 500
    
    Created [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/forwardingRules/fr-udp500].
    NAME      REGION       IP-ADDRESS      IP_PROTOCOL TARGET
    fr-udp500 asia-east1   IP-ADDRESS      UDP         asia-east1/targetVpnGateways/my-vpn
    

    fr-udp4500 を作成します。

    gcloud compute forwarding-rules create fr-udp4500 \
         --project [PROJECT_ID] \
         --region asia-east1 \
         --address IP-ADDRESS \
         --target-vpn-gateway my-vpn \
         --ip-protocol UDP \
         --ports 4500
    
     Created [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/forwardingRules/fr-udp4500].
     NAME       REGION       IP-ADDRESS      IP_PROTOCOL TARGET
     fr-udp4500 asia-east1   IP-ADDRESS      UDP         asia-east1/targetVpnGateways/my-vpn
    
  6. VPN ゲートウェイを作成した地域で Cloud Router を作成します。この例では Cloud Router ASN として ASN 65001 を使用しますが、まだピア ネットワークで使用していない任意のプライベート ASN(64512~65534、4200000000~4294967294)を使用できます。

    gcloud compute --project [PROJECT_ID] routers create my-router \
      --region asia-east1 \
      --network my-network \
      --asn 65001
    
    Created [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router].
    NAME      REGION     NETWORK
    my-router asia-east1 my-network
    
  7. ピア VPN ゲートウェイの外部 IP アドレス PEER-GW-EXT-IP を指す VPN トンネルを Cloud VPN ゲートウェイに作成します。 VPN トンネルの共有シークレット、Cloud Router の名前、IKE バージョンも指定する必要があります。IKE バージョン 2 が推奨されますが、ピア ゲートウェイがバージョン 2 をサポートしていない場合はバージョン 1 を使用します。
    このコマンドを実行すると、作成した VPN トンネル用のリソースが割り当てられますが、まだトラフィックは通過できません。

    gcloud compute --project [PROJECT_ID] vpn-tunnels create tunnel1 \
      --region asia-east1 \
      --ike-version 2 \
      --target-vpn-gateway my-vpn \
      --peer-address PEER-GW-EXT-IP \
      --shared-secret SHAREDSECRET \
      --router my-router
    
    Created [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/vpnTunnels/tunnel1].
    NAME       REGION     GATEWAY      PEER_ADDRESS
    tunnel1    asia-east1 my-vpn       PEER-GW-EXT-IP
    
  8. Cloud Router の設定を更新して BGP ピアの仮想インターフェース(--interface-name)を追加します。BGP インターフェースの IP アドレスは、IP アドレス範囲 169.254.0.0/16 に属するリンクローカル IP アドレスである必要があります。また、ピアルーターのインターフェース アドレスと同じサブネットに属する必要があります。ネットマスク長は 30 にすることが推奨されます。各トンネルの IP のペアが重複しないようにしてください。 別の方法として、--ip-address--mask-length を空白のままにし、次の手順で --peer-ip-address を空白のままにすることもできます。そうすると、IP アドレスが自動的に生成されます。

    gcloud compute --project [PROJECT_ID] routers add-interface my-router \
      --interface-name if-1 \
      --ip-address 169.254.1.1 \
      --mask-length 30 \
      --vpn-tunnel tunnel1 \
      --region asia-east1
    
    Updated [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router].
    
  9. Cloud Router の設定を更新してインターフェースに BGP ピアを追加します。 この例ではピア ASN として ASN 65002 を使用します。パブリック ASN、またはまだピア ネットワークで使用していないプライベート ASN(64512~65534、4200000000~4294967294)を使用できます。BGP ピア インターフェースの IP アドレスは、IP アドレス範囲 169.254.0.0/16 に属するリンクローカル IP アドレスである必要があります。また、Google Cloud Platform 側のインターフェースと同じサブネットに属する必要があります。各トンネルの IP のペアが重複しないようにしてください。

    gcloud compute --project [PROJECT_ID] routers add-bgp-peer my-router \
      --peer-name bgp-peer1 \
      --interface-name if-1 \
      --peer-ip-address 169.254.1.2 \
      --peer-asn 65002 \
      --region asia-east1
    
    Updated [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router].
    
  10. Cloud Router の詳細を表示して設定を確認します。

    gcloud compute --project [PROJECT_ID] routers describe my-router \
      --region asia-east1
    
    bgp:
     asn: 65001
    bgpPeers:
    - interfaceName: if-bgp-peer1
      ipAddress: 169.254.1.1
      name: bgp-peer1
      peerAsn: 65002
      peerIpAddress: 169.254.1.2
    creationTimestamp: '2015-10-19T14:31:52.639-07:00'
    id: '4047683710114914215'
    interfaces:
    - ipRange: 169.254.1.1/30
      linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/vpnTunnels/tunnel1
      name: if-bgp-peer1
    kind: compute#router
    name: my-router
    network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/my-network
    region: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1
    selfLink: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router
    

ファイアウォール ルールの設定

Google Cloud Platform で、ピア ネットワークのサブネットからの受信トラフィックを許可するファイアウォール ルールを設定する必要があります。同様に、ピア ネットワークのファイアウォールで Compute Engine サブネットからの受信トラフィックを許可する必要があります。 Google Cloud Platform ファイアウォール ルールを設定するには、次のコマンドを実行します。将来の BGP の更新を考慮して広めの範囲を設定できます。

Google Cloud Platform ファイアウォール ルールの設定

コンソール


  1. [ファイアウォール ルール] ページに移動します。
  2. [ファイアウォール ルールの作成] をクリックします。
  3. 次のフィールドに入力します。
    • [名前]: vpnrule1
    • [VPC ネットワーク]: my-network
    • [ソースフィルタ]: IP ranges
    • [ソース IP 範囲]: 受信を許可するトラフィックの送信元ピア VPN ゲートウェイの IP 範囲。
    • [許可対象プロトコルとポート]: tcp;udp;icmp
  4. [作成] をクリックします。

ピア ネットワーク範囲が複数ある場合は、[ソース IP 範囲] フィールドにカンマ区切りで指定します(10.10.4.0/24,10.10.6.0/24)。

gcloud


gcloud compute --project [PROJECT_ID] firewall-rules create vpnrule1 \
    --network my-network \
    --allow tcp,udp,icmp \
    --source-ranges PEER-SOURCE-RANGE

ピア ネットワーク範囲が複数ある場合は、--source-ranges フィールドにカンマ区切りで指定します(--source-ranges 10.10.4.0/24,10.10.6.0/24)。

このルールは、トラフィックの送信元がピアソース範囲内にある限り、すべてのポートからの TCP、UDP、ICMP トラフィックが VPC ネットワーク上の全マシンに到達することを許可します。VPN トラフィックの宛先を制限する場合は、ファイアウォールの説明に従って限定的なルールを作成します。

ピア ファイアウォール ルールの設定

ピア ファイアウォールで、Cloud VPN ゲートウェイからの受信を許可する範囲を設定します。将来の BGP の更新を考慮して広めの範囲を設定できます。

また、送信元ポートまたは宛先ポートが 179 の受信 TCP トラフィックも許可する必要があります。これは BGP 通知に使用されるポートです。

ピア ゲートウェイでの BGP セッションの設定

Cloud-ピアルーター間接続の ASN と IP アドレスを調べてから、ピア ゲートウェイを設定します。

コンソール


  1. Cloud Router リストを開きます。
  2. Cloud Router の名前をクリックします。
  3. [Google ASN]、[ピア ASN]、[Google BGP IP アドレス]、[ピア BGP IP アドレス] の値をメモします。

gcloud


gcloud compute --project [PROJECT_ID] routers describe my-router --region asia-east1
bgp:
 asn: 65001
bgpPeers:
- interfaceName: if-bgp-peer1
  ipAddress: 169.254.1.1
  name: bgp-peer1
  peerAsn: 65002
  peerIpAddress: 169.254.1.2
creationTimestamp: '2015-10-19T14:31:52.639-07:00'
id: '4047683710114914215'
interfaces:
- ipRange: 169.254.1.1/30
  linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/vpnTunnels/tunnel1
  name: if-bgp-peer1
kind: compute#router
name: my-router
network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/my-network
region: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1
selfLink: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router

asnipAddresspeerAsnpeerIpAddress をメモします。

ピア ゲートウェイでのトンネルの設定

ピア VPN ゲートウェイの設定については、VPN ドキュメントのピア VPN ゲートウェイの設定をご覧ください。

トンネルのステータスの確認

コンソール


VPN リストを開き、チェックマーク付きの緑の円が表示されていることを確認します。これはトンネルが確立されていることを意味します。感嘆符付きの赤の円になっている場合は、トンネルがまだ起動中であるか、障害が発生しています。[ログ] をクリックしてトンネルの現在の情報を確認してください。

gcloud


gcloud compute --project [PROJECT_ID] vpn-tunnels describe tunnel1 \
    --region asia-east1
creationTimestamp: '2015-10-19T14:33:45.449-07:00'
description: ''
detailedStatus: 'Initial handshake. More info: https://console.developers.google.com/[PROJECT_ID]/507356250768/logs?service=compute.googleapis.com&key1=targetVpnGateway&key2=4189032514050383796'
id: '2196766647665614678'
ikeVersion: 2
kind: compute#vpnTunnel
name: tunnel1
peerIp: PEER-GW-EXT-IP
region: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1
router: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router
selfLink: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/vpnTunnels/tunnel1
sharedSecret: SHAREDSECRET
sharedSecretHash: AH6QHyVoninNYieomeYx95HBlKl8
status: FIRST_HANDSHAKE
targetVpnGateway: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/targetVpnGateways/my-vpn

StatusESTABLISHED になっている場合、トンネルは稼働しています。中間ステータスとエラー ステータスの一覧については、VPN ドキュメントのトンネルのステータスの確認をご覧ください。

Cloud Router と BGP セッションのステータスの取得

コンソール


  1. ルーターリストを開き、[BGP セッション] 列がチェックマーク付きの緑の円になっていることを確認します。これはセッションが確立されていることを意味します。感嘆符付きの赤の円になっている場合は、セッションがまだ起動中であるか、障害が発生しています。[ログ] をクリックして現在の情報を確認してください。感嘆符付きの赤の円が表示されている場合は、しばらく待ってからページを再度読み込みます。セッションが起動するまで少し時間がかかる場合があります。
  2. ルートリストを開きます。[動的] をクリックし、ネットワークの Cloud Router によって学習された動的ルートを確認します。

gcloud


gcloud compute --project [PROJECT_ID] routers get-status my-router \
   --region asia-east1
kind: compute#routerStatusResponse
Result:
  bestRoutes:
  - destRange: 10.0.1.0/24
    kind: compute#route
    nextHopIp: 169.254.1.1
    priority: 100
  - destRange: 10.0.2.0/24
    kind: compute#route
    nextHopIp: 169.254.1.1
    priority: 100
 bgpPeerStatus:
 - advertisedRoutes:
  - destRange: 10.21.0.0/16
    kind: compute#route
    nextHopIp: 169.254.1.2
    priority: 100
  - destRange: 192.168.1.0/24
    kind: compute#route
    nextHopIp: 169.254.1.2
    priority: 100
  ipAddress: 169.254.1.1
  name: bgp-peer1
  numLearnedRoutes: 0
  peerIpAddress: 169.254.1.2
  state: Established
  status: UP
  uptime: '10'
network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/my-network

その他の Cloud Router の操作

Cloud Router の一覧表示

プロジェクトに含まれるすべての Cloud Router を一覧表示するには、次のコマンドを実行します。

コンソール


Cloud Router リスト

gcloud


gcloud compute --project [PROJECT_ID] routers list
NAME      REGION     NETWORK
my-router asia-east1 my-network

特定の地域に属するものだけを表示する場合は、--region を指定します。

Cloud Router リソースの削除

以下に示すもの以外のリソースを削除する手順については、トンネルの削除ゲートウェイの削除をご覧ください。

BGP ピアの削除

コンソール


Google Cloud Platform Consoleトンネルを削除すると、BGP ピアとそのピアの Cloud Router インターフェースが自動的に削除されます。

gcloud


gcloud compute --project [PROJECT_ID] routers remove-bgp-peer my-router \
    --peer-name bgp-peer1 \
    --region asia-east1
Updated [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router].

BGP インターフェースの削除

コンソール


コンソールを使用する場合は、BGP ピアを削除するとインターフェースも削除されます。BGP ピアの削除をご覧ください。

gcloud


gcloud compute --project [PROJECT_ID] routers remove-interface my-router \
    --interface-name if-1 \
    --region asia-east1
Updated [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router].

Cloud Router の削除

VPN トンネルによって使用されているルーターを削除することはできません。まずトンネルを削除してから、ルーターを削除してください。トンネルによって使用されていないルーターは、BGP ピアの設定が残っていても削除できます。

コンソール


  1. Cloud Router リストに移動します。
  2. 削除する Cloud Router の横のチェックボックスをオンにします。
  3. [削除] をクリックします。

gcloud


gcloud compute --project [PROJECT_ID] routers delete my-router \
    --region asia-east1
Deleted [https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/asia-east1/routers/my-router].

ロギング

次のタイプのメッセージが Google Cloud Logging に記録されます。

Cloud Router のログを表示するには、Cloud Router リストを開き、[ログ] 列の [表示] をクリックします。

Cloud Router ログの形式は次のとおりです。

[Event Type]: [Log Text]

一部のログエントリは、ルーターの「BGP ルーター ID」を参照します。BGP ルーター ID は、いずれかのルーターのインターフェースの IP アドレスを基にしてルーターに自動的に割り当てられます。

ルーター イベント

ルーター イベントは、Google Cloud Router 自体に関するイベントです。

INFO ログエントリ

  • Router Event: Router task activated
  • Router Event: Router task de-activated

BGP イベント

BGP イベントは、BGP の設定とセッションに関するイベントです。

INFO ログエントリ

  • BGP Event: Successfully added configuration for peers: [LIST_OF_PEERS]
  • BGP Event: BGP peering with [PEER] came up X seconds ago
  • BGP Event: BGP peering with [PEER] went down
  • BGP Event: BGP Router ID set to: [BGP_ROUTER_ID]

ルートイベント

ルートイベントは、2 つの BGP ピア間のルート通知に関するイベントです。

INFO ログエントリ

  • Route Event: Advertising prefix to peers: [PREFIX]
  • Route Event: Withdrawing prefix from peers: [PREFIX]
  • Route Event: Prefix [PREFIX] Nexthops [LIST_OF_NEXTHOPS] received by cloud router
  • Route Event: Prefix [PREFIX] Nexthops [LIST_OF_NEXTHOPS] deleted from cloud router

ERROR ログエントリ

  • Route Event: Dropping Route: [PREFIX] Maximum allowed routes MAX_ROUTES already in Datapath
    このエラーが発生した場合は、ピアルーターから通知される接頭辞の数を [MAX_ROUTES] の値に減らしてください。

指標

Cloud Router の指標は Stackdriver Monitoring に送信されます。 送信される Cloud Router の指標の一覧については、指標の一覧をご覧ください。

API を使用した指標の表示

これらの指標を見るには API Explorer を使用します。

Stackdriver ダッシュボードを使用した指標の表示

これらの指標を使用して、Stackdriverカスタム ダッシュボードを作成することもできます。

Stackdriver でカスタム ダッシュボードを作成するには、次のようにします。

  1. Google Cloud Platform Console で、[ダッシュボードの作成] に移動します。
    [ダッシュボードの作成] ページに移動
  2. Untitled Dashboard を適切な名前に置き換えます。
  3. [グラフを追加] をクリックします。
  4. [リソースの種類] プルダウン メニューで Cloud Router を選択します。
  5. 必要な場合はグラフの [タイトル] を変更します。
  6. [指標の種類] プルダウン メニューから 1 つ以上の指標を選択します。
    すべての Cloud Router の指標のグラフが表示されます。
  7. [フィルタ] 設定を使用して、特定のルーターまたはセッションのみが表示されるように制限します。

Cloud Router に関する指標の他に、特定の Cloud Router 上の BGP セッションに関する指標もあります。Cloud Router の指標は router-name で表示されますが、BGP セッションの指標は router-name(bgp-name) として表示されます。

Cloud Router のアップグレード サイクル

Cloud Router は定期的にアップグレードされます。この処理にかかる時間は 60 秒以内で、アップグレード中は Cloud Router を使用できません。ピア BGP ルーターが使用できないときに学習済みルートが保持される時間は、BGP ホールド タイマーによって決まります。BGP ホールド タイマーは、両側のネゴシエーションによって低い方の値に設定されます。Cloud Router の BGP ホールド タイマーは 60 秒です。お客様側ではピア BGP ホールド タイマーを 60 秒以上に設定することをおすすめします(デフォルト値は 3 分)。そうすると、アップグレード中に両方のルーターがそれぞれのルートを保持するため、トラフィックは中断されません。

Cloud Router を使用している場合、単一の VPN ゲートウェイのメンテナンス サイクル中にトンネル復帰時間が約 20 秒長くなります。これは BGP セッションがリセットされてルートが再学習されるためです(VPN ゲートウェイの復帰時間は通常約 1 分)。VPN ゲートウェイが冗長化されている場合、一度に使用不可になる VPN ゲートウェイは 1 つだけなので、トラフィックは影響を受けません。

トラブルシューティング

必要な手順を完了してもトラフィックがトンネルを通過しない場合は、次のことを確認します。

割り当てと制限

  • プロジェクトごとの制限は次のとおりです。
    • Cloud Router の最大数は 10 です。
    • ネットワークあたりの 1 つのリージョンに対して作成できる Cloud Router の最大数は 5 です。
    • 特定の VPC ネットワーク内の 1 つのリージョンにあるルーター全体で、最大 64 のインターフェース、BGP ピア、VPN トンネルを設定できます。すべてを単一のルーター上に作成することも、複数のルーターに分散させることもできます。
    • Cloud Router あたりのルーターの最大数は 100 個です。
  • Cloud Router は配置リージョンの学習済みルートのみをプログラムします。
  • 学習対象のプレフィックスは、その VPC ネットワークのすべての Cloud Router で、ネットワークごとに、リージョンあたり 100 に制限されています。ルート指標に基づいて、各プレフィックスに最適なルートのみがプログラムされるため、複数のトンネルを介して同じプレフィックスが学習されても、そのプレフィックスに対して最適なルートのみがプログラムされます。

推奨事項

  • ピア BGP デバイスでグレースフル リスタートを有効にします。
  • グレースフル リスタートがデバイスでサポートされていない、または有効になっていない場合は、2 台のピアデバイスを設定してそれぞれにトンネルを 1 つずつ作成し、接続を冗長化します。
  • 信頼性を最大限に高めるには、ピアデバイスでグレースフル リスタートがサポートされている場合でも、グレースフル リスタートをサポートしていない VPN ゲートウェイの冗長化に示すように、冗長な Cloud VPN ゲートウェイとトンネルを設定します。

よくある質問

  • 1 つの Cloud Router を同じリージョンにある複数の Cloud VPN ゲートウェイに接続することはできますか?

    • はい、できます。これは Cloud Router と同じリージョンに VPN ゲートウェイのインスタンスが複数ある場合に推奨される最適な設定です。
  • ドキュメントには「Cloud Router は配置リージョンの学習済みルートのみをプログラムします」と記載されています。自社運用の VPN デバイスを複数のリージョンの Google Cloud Platform インスタンスに接続したい場合はどうすればよいですか?

    • ピア VPN デバイスを複数のリージョンのインスタンスに接続する必要がある場合は、Cloud Router と Google VPN ゲートウェイおよびトンネルを各リージョンに作成してください。
  • 自社運用 BGP デバイスでの BGP グレースフル リスタートの設定はどのようにすることが推奨されますか?

    • ご使用の BGP デバイスでグレースフル リスタートを有効にしてください。
    • Cloud Router では、グレースフル リスタートはデフォルトで有効になっています。
  • グレースフル リスタート時間はどれくらいですか?

    • Cloud Router BGP のグレースフル リスタート時間は約 2 分です。
  • ピアデバイスでグレースフル リスタートが有効になっている場合でも、ピアデバイスを冗長化してそれぞれにトンネルを作成することが推奨されますか?

    • 高レベルの可用性が求められる場合は、たとえグレースフル リスタートが有効になっている場合でも、ピアデバイスを冗長化してそれぞれにトンネルを作成してください。こうすれば、たとえばどちらかのピアデバイスまたはトンネルで障害が発生してすぐには復旧できないような場合にも安心です。
  • Cloud Router は VPC ネットワークで機能しますか?

    • はい、Cloud Router は VPC ネットワークとレガシー ネットワークのどちらでも機能します。
  • Cloud VPN / Cloud Router を他の VPN ゲートウェイと組み合わせて使用する場合の設定方法はどこで確認できますか?

  • ルーターの BGP ルーター ID はどこで確認できますか?

    • 一部のログ エントリはルーターの「BGP ルーター ID」を参照しています。ルーターの BGP ルーター ID は、いずれかのルーターのインターフェースを基にして自動的に割り当てられます。
  • Cloud Router によって学習された動的ルートと同じプレフィックスの静的ルートを構成できますか?

    • はい。Cloud Router によって学習された動的ルートと同じプレフィックスの静的ルートを構成できます。その場合、ルート指標を使用して最適なルートが選択されます。同じ指標がある場合、静的ルートが使用されます。

外出先でもリソースをモニタリング

Google Cloud Console アプリを入手して、プロジェクトの管理にお役立てください。

フィードバックを送信...

Compute Engine ドキュメント