ルーター アプライアンスは、Network Connectivity Center で複数サポートされているスポークタイプの一つです。このページでは、ルーター アプライアンス インスタンスを作成および設定する方法について説明します。選択したアプローチによっては、プロセスの一部を自動化できます。ただし、ルーター アプライアンス スポークを使用して接続を確立するには、必要なタスクすべてを完了する必要があります。
必要なタスクは次のとおりです。
ルーター アプライアンス インスタンスとして使用する VM を作成する。VM は、サポートされているパートナー ソリューションまたは独自のカスタム イメージを使用して作成できます。
ルーター アプライアンス インスタンスが TCP ポート 179 で BGP トラフィックにアクセスできるようにします。このアクセシビリティを確保するため、ファイアウォール ルールの作成が必要になることがあります。
ルーター アプライアンス インスタンスを使用するスポークを作成する。
Cloud Router を設定する。このタスクには、次のサブタスクが含まれます。
ルーター アプライアンス インスタンスと同じリージョンに Cloud Router を作成する。
Cloud Router に 2 つのインターフェースを作成する。
Cloud Router で BGP ピアリングを構成する。
ルーター アプライアンス インスタンスで BGP ピアリングを構成する。
これらのタスクの完了方法は、選択肢によって大きく異なる場合があります。たとえば、パートナー ソリューションを使用してルーター アプライアンス インスタンスを作成する場合、後のタスクの一部が自動的に行われることがあります。
Network Connectivity Center を使用すると、Google Cloud でネットワーク接続の管理を目的とするハブ アンド スポーク アーキテクチャを実装できます。詳細については、Network Connectivity Center の概要をご覧ください。
構成の例:
このページでは、サンプルのサイトツークラウド構成を設定する方法について説明します。この設定では、2 つのルーター アプライアンス インスタンスで Virtual Private Cloud(VPC)ネットワークとオンプレミス ネットワーク間の接続を提供します。Network Connectivity Center では、等価コスト マルチパス(ECMP)ルーティングを使用して、ルーター アプライアンス インスタンス間でトラフィックをロード バランシングします。ネットワーク間でのルートの分散には、Border Gateway Protocol(BGP)を使用します。
このサンプル構成では、ルーター アプライアンス インスタンスが同じサブネットワーク(サブネット)に配置されています。ただし、各ルーター アプライアンス インスタンスは異なるゾーンにあります。
各ルーター アプライアンス インスタンスは、同じ Cloud Router を使用して BGP セッションを維持します。この Cloud Router には 2 つのインターフェースがあります。各ルーター アプライアンス インスタンスはそれぞれのインターフェースとピアリングされるため、ピアリング セッションは合計で 4 つになります。
このトポロジでは、サイト間のデータ転送は実証されていません。ただし、このトポロジの設定手順は、サイト間データ転送トポロジの半分に適用する場合とほぼ同じで、異なる点は手順の中に示します。サイト間データ転送の詳細については、Router アプライアンスの概要をご覧ください。
始める前に
始める前に、次のセクションを確認してください。
プロジェクトを作成または選択する
Network Connectivity Center を簡単に構成できるように、まず、有効なプロジェクトを特定します。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Google Cloud CLI を使用している場合は、
gcloud config set
コマンドを使用してプロジェクト ID を設定します。gcloud config set project PROJECT_ID
PROJECT_ID
は、一意のプロジェクト ID に置き換えます。このページの gcloud CLI の手順では、プロジェクト ID がすでに設定されていることを前提としています。
プロジェクト ID が正しく設定されていることを確認するには、
gcloud config list
コマンドを使用します。gcloud config list --format='text(core.project)'
Network Connectivity API を有効にする
Network Connectivity Center を使用して任意のタスクを行う前に、Network Connectivity API を有効にする必要があります。
コンソール
Network Connectivity API を有効にするには:
Google Cloud コンソールで [Network Connectivity Center] ページに移動します。
[有効にする] をクリックします。
また、API の有効化で説明されているように、Google Cloud コンソール API ライブラリを使用して API を有効にすることもできます。
アクセスの取得
Network Connectivity Center を使用するには、ロールと権限で説明されている権限が必要です。
Network Connectivity Center の構成時に、VPC ネットワーク、サブネット、ファイアウォール ルールなどの Google Cloud リソースも操作します。これらのリソースの操作に必要な権限については、Compute Engine アクセス制御のドキュメントをご覧ください。
IP アドレスとルーター アプライアンス インスタンス
ルーター アプライアンス インスタンスを設定するには、インスタンスと Cloud Router の間にピアリングを確立する必要があります。ピアリングを設定するには、VM が RFC 1918 の内部 IP アドレスを使用する必要があります。VM が異なるタイプのアドレスを使用している場合、この 2 つのリソースをピアリングすることはできません。
VM の IP アドレスを確認する方法については、次のドキュメントをご覧ください。
IP アドレスタイプの定義と詳細については、IP アドレスをご覧ください。
静的内部 IP アドレスの予約(推奨)
再起動時にアドレスが変更されないように、ルーター アプライアンス インスタンスに静的内部 IP アドレスを割り振ることをおすすめします。アドレスが変更されると、BGP ピアリングは失敗します。
予約済みの IP アドレスを割り振るには、いくつかの方法があります。IP アドレスを事前に予約できます。また、VM の作成時に IP アドレスを予約することもできます。VM にエフェメラル アドレスを誤って割り振った場合は、後で静的アドレスに変換できます。静的 IP アドレスの詳細については、静的内部 IP アドレスの予約をご覧ください。
BGP ピアリングの IP アドレス
ルーター アプライアンス インスタンスは、内部 IP アドレスを使用して Cloud Router とピアリングします。このインスタンスは、BGP ピアリングにリンクローカル アドレス(169.254.x.x
など)を使用しません。
同様に、Cloud Router は、ルーター アプライアンス インスタンスとピアリングするため、インターフェースごとに 1 つずつ、合わせて 2 つの RFC 1918 内部 IP アドレスを使用します。これらの IP アドレスは、ルーター アプライアンス インスタンス インターフェースと Cloud Router インターフェースの両方を含むサブネットから、手動または自動で割り振られます。
VPC リソースを作成する
以降のセクションでは、VPC ネットワークとサブネットの作成方法を説明します。
VPC ネットワークの作成
VPC ネットワークがない場合は、作成してください。ネットワークの動的ルーティング モードを global
に設定します。
VPC ネットワークの作成の詳細については、ネットワークを作成するをご覧ください。
コンソール
Google Cloud コンソールでカスタム VPC ネットワークを作成するには、カスタムモード ネットワークの作成をご覧ください。動的ルーティング モードがグローバルに設定されていることを確認します。このサンプル構成で使用されている命名規則に従う場合は、network-a
という名前のネットワークを作成します。
gcloud
カスタム VPC ネットワークを作成するには、gcloud compute networks create
コマンドを使用します。
gcloud compute networks create NETWORK \ --subnet-mode custom \ --bgp-routing-mode global
NETWORK
は、VPC ネットワークの名前に置き換えます(network-a
など)。
API
Compute Engine API を使用してカスタム VPC ネットワークを作成するには、VPC ネットワークの作成と管理をご覧ください。
サブネットを作成する
network-a
にサブネットを 1 つ作成し、Router アプライアンス インスタンスとして使用する VM インスタンスを含めます。
コンソール
Google Cloud コンソールを使用してサブネットを追加するには、サブネットの追加をご覧ください。
このサンプル構成で使用されている命名規則に従って記述する場合は、次の値を使用します。
- 名前:
subnet-a-1
- リージョン:
us-west1
- 範囲:
10.0.1.0/24
gcloud
VPC サブネットを作成するには、gcloud compute networks subnets create
コマンドを使用します。
gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --region=REGION \ --range=RANGE
次のように置き換えます。
SUBNET
: Router アプライアンス VM を含むサブネットの名前(例:subnet-a-1
)NETWORK
: サブネットを含むネットワーク(例:network-a
)REGION
: サブネットを含むリージョン(例:us-west1
)RANGE
: CIDR 表記のサブネットの IP 範囲(例:10.0.1.0/24
)
API
Compute Engine API を使用して VPC サブネットを作成するには、VPC ネットワークの作成と管理をご覧ください。
ルーター アプライアンス VM を作成する
ルーター アプライアンス インスタンスとして機能する Compute Engine VM を作成します。サンプル構成では、router-app-a
と router-app-b
の 2 つの VM を使用しています。
大まかに言うと、ルーター アプライアンス イメージは、ネットワーク仮想アプライアンス イメージを使用する VM を作成して作成します。このイメージは次のいずれかです。
サポート対象の Network Connectivity Center パートナーから提供されるソリューション
カスタム イメージ(作成したイメージなど)
イメージの指定の詳細については、次のリソースをご覧ください。
VM の作成の詳細については、VM インスタンスの作成と起動をご覧ください。
このセクションの例では、ルーター アプライアンス インスタンス用に予約済みの IP アドレスがあることを前提としています。詳細については、IP アドレスとルーター アプライアンス インスタンスをご覧ください。
コンソール
構成例で示された 2 つの VM を作成するには、VM インスタンスの作成と起動をご覧ください。VM を作成するときに、次の選択を行います。
このサンプル構成で使用されている命名規則に従って記述する場合は、次の値を使用します。
- 名前:
router-app-a
またはrouter-app-b
- リージョン:
us-west1
- ゾーン:
us-west1-a
またはus-west1-b
- 名前:
イメージを選択するには、ページの [ブートディスク] 領域に移動し、[変更] をクリックして、VM に適切なイメージに移動します。
[詳細オプション] を開き、[ネットワーキング] を開きます。次の値を使用します。
- [IP 転送] で [有効にする] を選択します。
- [ネットワーク インターフェース] で [ネットワーク インターフェースを追加] を選択し、次のフィールドに入力します。
- ルーター アプライアンス インスタンスを配置するサブネットを選択します(例:
subnet-a-1
)。 - [プライマリ内部 IP] で、使用する予約済み RFC 1918 内部 IP アドレスを選択します(例:
10.0.1.10
)。 - [ネットワーク サービス ティア] で [プレミアム] を選択します。この選択により、トラフィックが Google のネットワークを使用する範囲が最大になります。
- ルーター アプライアンス インスタンスを配置するサブネットを選択します(例:
gcloud
サンプル構成で示された 2 つのルーター アプライアンス VM を作成するには、gcloud compute instances create
コマンドを使用します。このコマンドを 2 回使用します(1 回は router-app-a
を作成、もう 1 回は router-app-b
を作成)。
次のサンプル スニペットでは、VM に静的内部 IP アドレスと静的外部 IP アドレスを割り当てています。また、VM に使用するベンダー提供のイメージも指定しています。
gcloud compute instances create INSTANCE_NAME \ --project=PROJECT \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --network-tier=NETWORK_TIER \ --network-interface=[subnet=SUBNET,private-network-ip=INTERNAL_IP_ADDRESS] \ --can-ip-forward \ --image-project=IMAGE_PROJECT \ --image=IMAGE
次のように置き換えます。
INSTANCE_NAME
: ルーター アプライアンス インスタンスとして機能する VM の名前(例:router-app-a
、router-app-b
)。PROJECT
: ルーター アプライアンス VM を含むプロジェクトの名前(例:my-project
)ZONE
: VM が配置されている Google Cloud ゾーン(例:us-west1-a
)MACHINE_TYPE
: VM に使用するマシンタイプ リソース(例:n1-standard-2
)NETWORK_TIER
: Router アプライアンス VM を作成する際は、ネットワーク階層をpremium
に設定します。こうすることで、トラフィックが使用する Google ネットワークの範囲が最大化されます。SUBNET
: VM のプライマリ ネットワーク インターフェースに割り当てられるサブネット(例:subnet-a-1
)INTERNAL_IP_ADDRESS
: Cloud Router に接続する VM インターフェースに割り当てられる RFC 1918 内部 IP アドレス(例:10.0.1.10
)IMAGE_PROJECT
:image
フィールドで指定されたイメージを含むプロジェクトの名前(例:debian-cloud
)IMAGE
: インストールするイメージの名前(例:debian-10-buster-v20210217
)
API
サンプル構成で示された 2 つのルーター アプライアンス VM を作成するには、compute.instances.insert
メソッドを使用します。このメソッドを 2 回使用します(1 回は router-app-a
を作成、もう 1 回は router-app-b
を作成)。
次のサンプル スニペットでは、VM に静的内部 IP アドレスと静的外部 IP アドレスを割り当てています。また、VM に使用するベンダー提供のイメージも指定しています。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "canIpForward": "true", "networkInterfaces": [{ "subnetwork": "regions/REGION/subnetworks/SUBNET", "networkIP": "INTERNAL_IP_ADDRESS", "accessConfigs": [{ "networkTier": "NETWORK_TIER, }] }], "disks": [{ "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true }] }
次のように置き換えます。
PROJECT
: ルーター アプライアンス VM を含むプロジェクトの名前(例:my-project
)ZONE
: VM が配置されている Google Cloud ゾーン(例:us-west1-a
)MACHINE_TYPE
: VM に使用するマシンタイプ リソース(例:zones/us-west1-a/machineTypes/n1-standard-2
)INSTANCE_NAME
: VM の名前(例:router-app-a
、router-app-b
)REGION
: VM を含むリージョン(例:us-west1
)SUBNET
: VM のプライマリ ネットワーク インターフェースに割り当てられるサブネット(例:regions/us-west1/subnetworks/subnet-a-1
)INTERNAL_IP_ADDRESS
: VM に割り当てられ、Cloud Router に接続する VM インターフェースのアドレスを構成する RFC 1918 内部 IP アドレス(例:10.0.1.10
)NETWORK_TIER
: Router アプライアンス VM を作成する際は、ネットワーク階層をpremium
に設定します。こうすることで、トラフィックが使用する Google ネットワークの範囲が最大化されます。IMAGE_PROJECT
: VM の作成に指定するイメージを含むプロジェクトの名前(例:debian-cloud
)IMAGE
: VM の作成に使用するイメージの名前(例:debian-10-buster-v20210217
)
BGP を許可するファイアウォール ルールを作成する
TCP ポート 179
で network-a
への BGP トラフィックを許可するファイアウォール ルールを作成します。
また、トラフィックがネットワーク仮想アプライアンス(NVA)に転送されるように、特定のファイアウォール ルールを作成してください。
ファイアウォール コマンドの詳細については、VPC ファイアウォール ルールを使用するをご覧ください。
コンソール
Google Cloud コンソールを使用して VPC ファイアウォール ルールを作成するには、VPC ファイアウォール ルールを使用するをご覧ください。
gcloud
Google Cloud CLI を使用して VPC ファイアウォール ルールを作成する場合は、VPC ファイアウォール ルールを使用するをご覧ください。
API
Compute Engine API を使用して VPC ファイアウォール ルールを作成するには、VPC ファイアウォール ルールを使用するをご覧ください。
Network Connectivity Center のリソースを作成する
ルーター アプライアンス VM を使用するには、Router アプライアンス スポークを含む必要な Network Connectivity Center のリソースを作成する必要があります。
ハブの作成
Network Connectivity Center のスポークを作成する前に、ハブを作成する必要があります。
コンソール
Google Cloud コンソールで [Network Connectivity Center] ページに移動します。
プロジェクト メニューで、プロジェクトを選択します。
ハブ名を入力します。
必要に応じて説明を入力します。
プロジェクト ID を確認します。プロジェクト ID が誤っている場合は、画面上部のメニューから別のプロジェクトを選択します。
[続行] をクリックします。
コンソールにスポークの作成フォームが表示されます。入力方法については、ルーター アプライアンス スポークの作成をご覧ください。
[完了] をクリックします。
gcloud
ハブを作成するには、gcloud network-connectivity hubs create
コマンドを使用します。
gcloud network-connectivity hubs create HUB_NAME \ --description="DESCRIPTION" \ --labels="KEY"="VALUE"
次の値を置き換えます。
HUB_NAME
: 新しいハブの名前DESCRIPTION
: ハブを説明するテキスト(省略可)KEY
: ラベルテキストの Key-Value ペアのキー(省略可)VALUE
: ラベルテキストの Key-Value ペアの値(省略可)
API
ハブを作成するには、networkconnectivity.hubs.create
メソッドを使用します。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/hubs { "name":"HUB_NAME", "description":"DESCRIPTION", "labels": { "KEY": "VALUE" } }
次の値を置き換えます。
PROJECT_ID
: 新しいハブを含むプロジェクトのプロジェクト IDHUB_NAME
: 新しいハブの名前DESCRIPTION
: ハブを説明するテキスト(省略可)KEY
: ラベルテキストの Key-Value ペアのキー(省略可)VALUE
: ラベルテキストの Key-Value ペアの値(省略可)
ルーター アプライアンス スポークの作成
先ほど作成した 2 つのルーター アプライアンス インスタンスを使用する Router アプライアンス スポークを作成します。ルーター アプライアンス インスタンスと Cloud Router の間の BGP ピアリングを有効にするためには、スポークを作成する必要があります(次のステップで作成します)。
スポークの作成方法の詳細については、ハブとスポークの操作をご覧ください。
コンソール
スポークの基本情報を入力する
- Google Cloud コンソールで [Network Connectivity Center] ページに移動します。 Network Connectivity Center に移動
- プロジェクト メニューで、Google Cloud プロジェクトを選択します。
- [スポーク] タブをクリックします。
- [スポークを追加する] をクリックします。
- [新しいスポーク] フォームで、[スポークタイプ] を設定します。
- スポーク名を入力します。必要に応じて説明も入力します。
- 新しいスポークの [リージョン] フィールドを選択します。
- [サイト間のデータ転送] で [オン] または [オフ] を選択します。選択したリージョンがデータ転送をサポートしていない場合、このフィールドは無効になります。このユースケースに関するより詳しい内容については、サイト間データ転送の概要をご覧ください。
- [VPC ネットワーク] リストで、ネットワークを選択します。データ転送機能を使用する複数のスポークがある場合、これらのスポークはすべて同じ VPC ネットワークに存在する必要があります。このため、データ転送を使用するスポークをすでに作成している場合、[VPC ネットワーク] の値は事前入力されており、変更できません。
ルーター アプライアンスの詳細を入力する
- [スポークタイプ] を [ルーター アプライアンス] に設定します。
- スポークのリージョンを選択します。
- ルーター アプライアンス インスタンスを選択します。
- [インスタンスを追加] をクリックします。
- [インスタンス] メニューから、既存のルーター アプライアンス インスタンスを選択します。
- このスポークにルーター アプライアンス インスタンスを追加するには、上記の手順を繰り返します。終了したら、[完了] をクリックして「スポークを保存する」に進みます。
スポークの保存
- さらにスポークを追加する場合は、[スポークを追加する] をクリックして手順をもう一度開始し、スポークの名前を入力します。
- スポークの追加が完了したら、[作成] をクリックします。Network Connectivity Center のページが更新され、作成したスポークの詳細が表示されます。
gcloud
ルーター アプライアンス スポークを作成するには、gcloud network-connectivity spokes linked-router-appliances create
コマンドを使用します。
次のサンプル スニペットでは、2 つのルーター アプライアンス インスタンスを含むスポークを作成します。このサンプルでは、スポークはサイト間データ転送機能を使用しません(データ転送を有効にするには、--site-to-site-data-transfer
フラグを追加します)。
gcloud network-connectivity spokes linked-router-appliances create NAME \ --hub="HUB_NAME" \ --description="DESCRIPTION" \ --router-appliance=instance="ROUTER_APPLIANCE_URI",ip=IP_ADDRESS \ --router-appliance=instance="ROUTER_APPLIANCE_URI_2",ip=IP_ADDRESS_2 \ --region=REGION \ --labels="KEY"="VALUE"
次の値を置き換えます。
NAME
: スポークの名前HUB_NAME
: スポークを接続するハブの名前DESCRIPTION
: スポークを説明するテキスト(省略可)。例:us-vpn-spoke
ROUTER_APPLIANCE_URI
: 最初のルーター アプライアンス インスタンスの URI。例:https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
IP_ADDRESS
: 最初のルーター アプライアンス インスタンスの内部 IP アドレスROUTER_APPLIANCE_URI_2
: 2 番目のルーター アプライアンス インスタンスの URIIP_ADDRESS_2
: 2 番目のルーター アプライアンス インスタンスの内部 IP アドレスREGION
: スポークを配置する Google Cloud リージョン(us-west1
など)KEY
: ラベルテキストの Key-Value ペアのキー(省略可)VALUE
: ラベルテキストの Key-Value ペアの値(省略可)たとえば、次のコマンドは、基盤となるリソースとして
router-app-a
とrouter-app-b
を使用するルーター アプライアンス スポークを作成します。gcloud network-connectivity spokes linked-router-appliances create my-spoke \ --hub=my-hub \ --description="Test spoke 1" \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-a/instances/router-app-a",ip=10.0.1.10 \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b",ip=10.0.1.11 \ --region=us-west1 \ --labels="environment"="test"
同じスポークを作成してデータ転送を有効にするには、次のコマンドを使用します。
gcloud network-connectivity spokes linked-router-appliances create my-spoke \ --hub=my-hub \ --description="Test spoke 1" \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-a/instances/router-app-a",ip=10.0.1.10 \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b",ip=10.0.1.11 \ --region=us-west1 \ --labels="environment"="test" --site-to-site-data-transfer
API
ルーター アプライアンス スポークを作成するには、networkconnectivity.spokes.create
メソッドを使用します。
次のサンプル スニペットでは、2 つのルーター アプライアンス インスタンスを含むスポークを作成します。各インスタンスは linkedRouterApplianceInstances.instances
配列に含まれます。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/spokes/SPOKE_NAME { "hub": "HUB_URI", "labels": {"KEY": "VALUE"}, "linkedRouterApplianceInstances": { "instances": [ { "virtualMachine": "ROUTER_APPLIANCE_URI", "ipAddress": INTERNAL_IP_ADDRESS, }, { "virtualMachine": "ROUTER_APPLIANCE_URI_2, "ipAddress": INTERNAL_IP_ADDRESS_2, } ], "siteToSiteDataTransfer": BOOLEAN } }
次の値を置き換えます。
PROJECT_ID
: プロジェクトのプロジェクト IDREGION
: スポークを配置する Google Cloud リージョン(us-west1
など)SPOKE_NAME
: スポークに付ける名前。HUB_URI
: スポークを接続するハブの URI。以下に例を示します。http://networkconnectivity.googleapis.com/v1/projects/PROJECT_NAME/locations/global/hubs/HUB_NAME
KEY
: ラベルテキストの Key-Value ペアのキー(省略可)VALUE
: ラベルテキストの Key-Value ペアの値(省略可)ROUTER_APPLIANCE_URI
: 最初のルーター アプライアンス インスタンスの URI。例:https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
IP_ADDRESS
: 最初のルーター アプライアンス インスタンスの内部 IP アドレスROUTER_APPLIANCE_URI_2
: 2 番目のルーター アプライアンス インスタンスの URIIP_ADDRESS_2
: 2 番目のルーター アプライアンス インスタンスの内部 IP アドレスBOOLEAN
: このスポークでサイト間データ転送を有効にするかどうかを決定する値たとえば、
router-app-a
とrouter-app-b
を基盤となるリソースとして使用するスポークを作成するには、リクエストの本文を次のように構成する必要があります。{ "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub", "labels": { "environment" : "test" }, "linkedRouterApplianceInstances": { "instances": [ { "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-a/instances/router-app-a", "ipAddress": "10.0.1.10", }, { "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b", "ipAddress": "10.0.1.11", } ], "siteToSiteDataTransfer": true } }
Cloud Router を設定する
ルーター アプライアンスは、Cloud Router を使用して VPC ネットワークとルートを交換します。このため、Cloud Router を作成していくつかの設定タスクを完了する必要があります。
Cloud Router の作成
ルーター VM と同じネットワークとリージョンにリソースを作成します。構成例では、これらのリソースは network-a
と us-west1
です。
詳細については、Cloud Router を作成するをご覧ください。
コンソール
Google Cloud コンソールで Cloud Router を作成するには、次のいずれかの方法を使用します。
[Cloud Router の作成] ページの説明に従って、[Cloud Router] ページを使用します。
[Network Connectivity Center] ページを使用します。この方法の利点は、ルーター、インターフェース、BGP セッションを同時に作成できることです。これらの手順をすべて完了する方法については、Cloud Router で BGP ピアリングを構成するをご覧ください。
gcloud
Cloud Router を作成するには、gcloud compute routers create
コマンドを使用します。
gcloud compute routers create NAME \ --region=REGION \ --network=NETWORK \ --asn=ASN \ --project=PROJECT_ID
次のように置き換えます。
NAME
: Cloud Router の名前(例:cloud-router-a
)REGION
: Cloud Router を含むリージョン(例:us-west1
)NETWORK
: Cloud Router を含む VPC ネットワーク(例:network-a
)ASN
: Cloud Router の自律システム番号(ASN)。この AS 番号は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート AS 番号である必要があります(例:65000
)PROJECT_ID
: Cloud Router のプロジェクト ID(例:my-project
)
API
Cloud Router を作成するには、compute.routers.insert
メソッドを使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers { "name": "NAME", "network": "NETWORK", "bgp": { "asn": ASN } }
次のように置き換えます。
PROJECT_ID
: Cloud Router のプロジェクト ID(例:my-project
)REGION
: Cloud Router を含むリージョン(例:us-west1
)NAME
: Cloud Router の名前(例:cloud-router-a
)NETWORK
: Cloud Router を含む VPC ネットワークの URI(例:/global/networks/network-a
)ASN
: Cloud Router の自律システム番号(ASN)。この AS 番号は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート AS 番号である必要があります(例:65000
)
Cloud Router に 2 つの冗長インターフェースを作成する
サンプル構成では、2 つの冗長な Cloud Router インターフェースを作成し、subnet-a-1
に関連付けます。
Cloud Router インターフェースには、リージョンの内部 IP アドレスを使用します。
インターフェース用に内部 IP アドレスを明示的に指定する場合、その IP アドレスはサブネットのプライマリ IP アドレス範囲の中にある必要があります。VM や別の Cloud Router インターフェースなど、別のリソースですでに使用されている IP アドレスは指定できません。事前にサブネットから IP アドレスを予約するには、アドレス リソースを作成し、Cloud Router インターフェースにこの予約済みの IP アドレスを使用します。
このステップに Google Cloud コンソールの手順はありません。Google Cloud コンソールを使用して BGP ピアを作成すると、インターフェースが自動的に作成されるためです。
gcloud
サンプル構成で示された 2 つの冗長な Cloud Router インターフェースを作成するには、gcloud compute routers add-interface
コマンドを使用します。このコマンドを 2 回使用します(1 回は router-appliance-interface-0
を作成、もう 1 回は router-appliance-interface-1
を作成)。
--ip-address
オプションを指定しない場合、Google はサブネットのプライマリ IP 範囲から空いている IP アドレスを見つけてインターフェースに割り当てます。
最初の Cloud Router インターフェースを作成します。
gcloud compute routers add-interface NAME \ --interface-name=INTERFACE_NAME \ --ip-address=IP_ADDRESS \ --subnetwork=SUBNET \ --region=REGION \ --project=PROJECT_ID
冗長な Cloud Router インターフェースを作成します。
gcloud compute routers add-interface NAME \ --interface-name=INTERFACE_2_NAME \ --ip-address=IP_ADDRESS \ --subnetwork=SUBNET \ --redundant-interface=INTERFACE_NAME \ --region=REGION \ --project=PROJECT_ID
次のように置き換えます。
NAME
: 更新する Cloud Router の名前(例:cloud-router-a
)INTERFACE_NAME
: インターフェースの名前(例:router-appliance-interface-0
)IP_ADDRESS
: インターフェースに使用する RFC 1918 内部 IP アドレス(例:10.0.1.5
、10.0.1.6
)SUBNET
: 内部 IP アドレスを含むサブネット(例:subnet-a-1
)INTERFACE_2_NAME
: プライマリ インターフェースと同じ Router アプライアンス インスタンスとピアリングした冗長な Cloud Router インターフェース(例:router-appliance-interface-1
)REGION
: Cloud Router が存在する Google Cloud リージョン(例:us-west1
)PROJECT_ID
: Cloud Router のプロジェクト ID(例:my-project
)
次のコマンドは、サンプル構成に記載されているように、Cloud Router に最初のインターフェースを作成します。
gcloud compute routers add-interface cloud-router-a \ --interface-name=router-appliance-interface-0 \ --ip-address=10.0.1.5 \ --subnetwork=subnet-a-1 \ --region=us-west1 \ --project=my-project
次のコマンドは、サンプル構成に記載されているように、Cloud Router に冗長なインターフェースを作成します。
gcloud compute routers add-interface cloud-router-a \ --interface-name=router-appliance-interface-1 \ --ip-address=10.0.1.6 \ --subnetwork=subnet-a-1 \ --redundant-interface=router-appliance-interface-0 \ --region=us-west1 \ --project=my-project
API
サンプル構成に示された 2 つの冗長な Cloud Router インターフェースを作成するには、compute.routers.patch
メソッドを使用します。このメソッドを 2 回使用します(1 回は router-appliance-interface-0
を作成、もう 1 回は router-appliance-interface-1
を作成)。
privateIpAddress
オプションを指定しない場合、Google はサブネットのプライマリ IP 範囲から空いている IP アドレスを見つけてインターフェースに割り当てます。
最初の Cloud Router インターフェースを作成します。
"PATCH https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME { "region":"REGION", "interfaces":[ { "name":"INTERFACE_NAME", "privateIpAddress:"IP_ADDRESS", "subnetwork": "https":"//www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" } ] }
冗長な Cloud Router インターフェースを作成します。
"PATCH https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME { "region":"REGION", "interfaces":[ { "name":"INTERFACE_NAME_1", "privateIpAddress:"IP_ADDRESS", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" }, { "name":"INTERFACE_NAME_2", "privateIpAddress:"IP_ADDRESS", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET", "redundantInterface": "INTERFACE_NAME_1" } ] }
次のように置き換えます。
PROJECT_ID
: Cloud Router のプロジェクト ID(例:my-project
)REGION
: Cloud Router が存在する Google Cloud リージョン(例:us-west1
)NAME
: 更新する Cloud Router の名前(例:cloud-router-a
)NETWORK
: Cloud Router を含む VPC ネットワーク(例:network-a
)INTERFACE_NAME_1
: プライマリ インターフェースの名前(例:router-appliance-interface-0
)SUBNET
: RFC 1918 内部 IP アドレスを含むサブネットの URLIP_ADDRESS
: インターフェースに使用する内部 IP アドレス(例:10.0.1.5
、10.0.1.6
)INTERFACE_NAME_2
: 冗長な Cloud Router インターフェースの名前(例:router-appliance-interface-1
)
次のコマンドは、サンプル構成に記載されているように、
cloud-router-a
に最初のインターフェースを作成します。"PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a { "region":"us-west1", "interfaces":[ { "name":"router-appliance-interface-0", "privateIpAddress:"10.0.1.5", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/>" } ] }
次のコマンドを実行すると、サンプル構成のように、
cloud-router-a
に冗長なインターフェースが作成されます。"PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a { "region":"us-west1", "interfaces":[ { "name":"router-appliance-interface-0", "privateIpAddress:"10.0.1.5", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a-1" }, { "name":"router-appliance-interface-0", "privateIpAddress:"10.0.1.6", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a-1", "redundantInterface": "router-appliance-interface-0" } ] }
Cloud Router での BGP ピアリングの構成
ルーター アプライアンス インスタンスごとに、Cloud Router に 2 つの BGP ピアを作成する必要があります(Cloud Router インターフェースごとに 1 つずつ)。BGP ピア IP アドレスは、ルーター アプライアンス インスタンスとして構成された VM のプライマリ内部 IP アドレスである必要があります。
router-app-a
に BGP ピアを作成する
このセクションでは、サンプル構成の router-app-a
という名前のルーター アプライアンス インスタンスに 2 つの BGP ピアを作成する方法について説明します。次のセクションでは、router-app-b
に 2 つの BGP ピアを作成する方法について説明します。
次の例は、Cloud Router cloud-router-a
の両方のインターフェースで router-app-a
を BGP ピアとして構成する方法を示しています。
コンソール
- [Network Connectivity Center] ページに移動します。 [Network Connectivity Center] に移動
- プロジェクトのプルダウン メニューでプロジェクトを選択します。
- [スポーク] タブをクリックします。
- [スポーク名] 列でスポークを選択して、[スポークの詳細] ページを表示します。
[名前] 列で、
router-app-a
を見つけます。展開アイコンをクリックして [BGP セッションを構成] リンクを表示します。いずれかのリンクをクリックします。この操作に応じて、[Cloud Router と BGP セッションの構成] パネルが表示されます。
-
[Cloud Router] セクションで、次のいずれかを行います。
- 既存の Cloud Router を選択するには、[既存のものを使用] をクリックします。[Cloud Router] フィールドに適切なリソースを指定し、[Select and continue] をクリックします。
- [Network Connectivity Center] ページで Cloud Router を作成するには、[新規作成] をクリックし、プロンプトに従って Cloud Router を作成します。次に、[作成して続行] をクリックします。
- [BGP セッション] で、2 つの BGP セッションを設定します。次の手順をセッションごとに 1 回、計 2 回行います。
- [BGP セッションの編集] をクリックします。
- 名前、ピア ASN、アドバタイズされたルートの優先度(MED)を入力して、フォームに入力します。[保存して次へ] をクリックします。
- [作成] をクリックします。
gcloud
Cloud Router に router-app-a
に対する BGP ピアを作成するには、gcloud compute routers add-bgp-peer
コマンドを使用します。このコマンドを 2 回使用します(1 回は最初の BGP ピアを作成、もう 1 回は 2 番目の BGP ピアを作成)。
最初の BGP ピアを作成します。
gcloud compute routers add-bgp-peer NAME \ --peer-name=PEER_NAME \ --interface=INTERFACE \ --peer-ip-address=PEER_IP_ADDRESS \ --peer-asn=PEER_ASN \ --instance=ROUTER_APPLIANCE \ --instance-zone=ROUTER_APPLIANCE_ZONE \ --region=REGION
2 つ目の BGP ピアを作成します。
gcloud compute routers add-bgp-peer NAME \ --peer-name=PEER_NAME \ --interface=INTERFACE \ --peer-ip-address=PEER_IP_ADDRESS \ --peer-asn=PEER_ASN \ --instance=ROUTER_APPLIANCE \ --instance-zone=ROUTER_APPLIANCE_ZONE \ --region=REGION
次のように置き換えます。
NAME
: 更新する Cloud Router の名前PEER_NAME
: Router アプライアンス インスタンスとの間に確立する BGP ピアリング セッションの名前INTERFACE
: この BGP ピアのインターフェースの名前PEER_IP_ADDRESS
: ピアルーター(Router アプライアンス インスタンス)の内部 IP アドレス。このアドレスは、VM のプライマリ ネットワーク インターフェース(nic0
)のプライマリ内部 IP アドレスと一致する必要があります。PEER_ASN
: この BGP ピアの BGP 自律システム番号(ASN)。この ASN は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート ASN でなければなりません。ROUTER_APPLIANCE
: Router アプライアンス インスタンスとして機能する VM の名前ROUTER_APPLIANCE_ZONE
: Router アプライアンス インスタンスとして機能する VM が配置されるゾーンREGION
: ルーター アプライアンス インスタンスとして機能する VM が配置されるリージョン
次のサンプル スニペットは、router-app-a
用に両方のピアを作成する方法を示しています。
gcloud compute routers add-bgp-peer cloud-router-a \ --peer-name=router-appliance-bgp-peer-router-app-a-0 \ --interface=router-appliance-interface-0 \ --peer-ip-address=10.0.1.10 \ --peer-asn=65001 \ --instance=router-app-a \ --instance-zone=us-west1-a \ --region=us-west1
gcloud compute routers add-bgp-peer cloud-router-a \ --peer-name=router-appliance-bgp-peer-router-app-a-1 \ --interface=router-appliance-interface-1 \ --peer-ip-address=10.0.1.10 \ --peer-asn=65001 \ --instance=router-app-a \ --instance-zone=us-west1-a \ --region=us-west1
API
Cloud Router に router-app-a
に対する BGP ピアを作成するには、compute.routers.patch
メソッドを使用します。このメソッドを 2 回使用します(1 回は最初の BGP ピアを作成、もう 1 回は 2 番目の BGP ピアを作成)。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME { "bgpPeers": [ { "name": "PEER_NAME", "interfaceName": "INTERFACE_NAME", "ipAddress": "IP_ADDRESS", "peerIpAddress": "PEER_IP_ADDRESS", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE", "peerAsn": PEER_ASN, } { "name": "PEER_NAME", "interfaceName": "INTERFACE_NAME", "ipAddress": "IP_ADDRESS", "peerIpAddress": "PEER_IP_ADDRESS", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE", "peerAsn": PEER_ASN } ] }
次のように置き換えます。
PROJECT_ID
: Cloud Router のプロジェクト IDREGION
: ルーター アプライアンス インスタンスとして機能する VM が配置されるリージョンNAME
: 更新する Cloud Router の名前PEER_NAME
: ルーター アプライアンス インスタンスとの間に確立する BGP ピアリング セッションの名前INTERFACE_NAME
: ピアを追加する Cloud Router インターフェースの名前IP_ADDRESS
: Cloud Router インターフェースに使用する RFC 1918 内部 IP アドレスPEER_IP_ADDRESS
: Router アプライアンス インスタンスとして機能する VM の内部 IP アドレスROUTER_APPLIANCE_INSTANCE
: Router アプライアンス インスタンスとして機能する VM の URL 形式の名前ROUTER_APPLIANCE_ZONE
: Router アプライアンス インスタンスとして機能する VM が配置されるゾーンPEER_ASN
: この BGP ピアの BGP 自律システム番号(ASN)。この ASN は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート ASN でなければなりません。
次のサンプル スニペットは、router-app-a
用に両方のピアを作成する方法を示しています。
PATCH https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a { "bgpPeers": [ { "name": "router-appliance-bgp-peer-router-app-a-0", "interfaceName": "router-appliance-interface-0", "ipAddress": "10.0.1.5", "peerIpAddress": "10.0.1.10", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-a", "peerAsn": 65001, } { "name": "router-appliance-bgp-peer-router-app-a-1", "interfaceName": "router-appliance-interface-1", "ipAddress": "10.0.1.6", "peerIpAddress": "10.0.1.10", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-a", "peerAsn": 65001 } ] }
router-app-b
に BGP ピアを作成する
前述のように、Cloud Router はルーター アプライアンス インスタンスとして構成された複数の VM に BGP セッションを確立できます。これらの VM は、すべて同じリージョン内に存在する必要があります。この構成を作成するには、同じ Cloud Router インターフェースに追加の BGP ピアリング セッションを作成します。
前のセクションでは、router-app-a
に対する BGP ピアリングを設定する方法について説明しました。このセクションでは、Cloud Router cloud-router-a
の両方のインターフェースの BGP ピアとして router-app-b
を追加構成する方法について説明します。
コンソール
- [Network Connectivity Center] ページに移動します。 [Network Connectivity Center] に移動
- プロジェクトのプルダウン メニューでプロジェクトを選択します。
- [スポーク] タブをクリックします。
- [スポーク名] 列でスポークを選択して、[スポークの詳細] ページを表示します。
- [名前] 列で、
router-app-b
を見つけます。展開アイコンをクリックして [BGP セッションを構成] リンクを表示します。いずれかのリンクをクリックします。この操作に応じて、[Cloud Router と BGP セッションの構成] パネルが表示されます。
-
[Cloud Router] セクションで、次のいずれかを行います。
- 既存の Cloud Router を選択するには、[既存のものを使用] をクリックします。[Cloud Router] フィールドに適切なリソースを指定し、[Select and continue] をクリックします。
- [Network Connectivity Center] ページで Cloud Router を作成するには、[新規作成] をクリックし、プロンプトに従って Cloud Router を作成します。次に、[作成して続行] をクリックします。
- [BGP セッション] で、2 つの BGP セッションを設定します。次の手順をセッションごとに 1 回、計 2 回行います。
- [BGP セッションの編集] をクリックします。
- 名前、ピア ASN、アドバタイズされたルートの優先度(MED)を入力して、フォームに入力します。[保存して次へ] をクリックします。
- [作成] をクリックします。
gcloud
Cloud Router に router-app-b
に対する 2 つの BGP ピアを作成するには、gcloud compute routers add-bgp-peer
コマンドを使用します。このコマンドを 2 回使用します(1 回は最初の BGP ピアを作成、もう 1 回は 2 番目の BGP ピアを作成)。
最初の BGP ピアのサンプル構成
gcloud compute routers add-bgp-peer cloud-router-a \ --peer-name=router-appliance-bgp-peer-router-app-b-0 \ --interface=router-appliance-interface-0 \ --peer-ip-address=10.0.1.11 \ --peer-asn=65002 \ --instance=router-app-b \ --instance-zone=us-west1-b \ --region=us-west1
2 つ目の BGP ピアのサンプル構成
gcloud compute routers add-bgp-peer cloud-router-a \ --peer-name=router-appliance-bgp-peer-router-app-b-1 \ --interface=router-appliance-interface-1 \ --peer-ip-address=10.0.1.11 \ --peer-asn=65002 \ --instance=router-app-b \ --instance-zone=us-west1-b \ --region=us-west1
API
Cloud Router に router-app-b
に対する 2 つの BGP ピアを作成するには、compute.routers.patch
メソッドを使用します。このメソッドを 2 回使用します(1 回は最初の BGP ピアを作成、もう 1 回は 2 番目の BGP ピアを作成)。
PATCH https://compute.googleaps.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a { "bgpPeers": [ { "name": "router-appliance-bgp-peer-router-app-b-0", "interfaceName": "router-appliance-interface-0", "ipAddress": "10.0.1.5", "peerIpAddress": "10.0.1.11", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-b/instances/router-app-b", "peerAsn": 65002, } { "name": "router-appliance-bgp-peer-router-app-b-1", "interfaceName": "router-appliance-interface-1", "ipAddress": "10.0.1.6", "peerIpAddress": "10.0.1.11", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-b/instances/router-app-b", "peerAsn": 65002 } ] }
ルーター アプライアンス インスタンスで BGP を構成する
Cloud Router への BGP 接続用にルーター アプライアンス インスタンスを構成するには、ルーター アプライアンス イメージ向けのベンダー ドキュメントをご覧ください。
カスタム学習ルートを使用する
必要に応じて、カスタム学習ルートを使用するようにルーター アプライアンス インスタンスを構成できます。カスタム学習ルートを構成すると、Cloud Router は BGP ピア(ルーター アプライアンス インスタンス)からルートを学習したかのように動作します。
カスタム学習ルートを使用するには、次の手順を完了します。
アプライアンスにログインします。指定するカスタム学習ルートごとに、ネクストホップを外部ネットワークに設定した IP プレフィックスの静的ルートを構成します。ルーター アプライアンス インスタンスは、カスタム学習ルートを使用するトラフィックの転送方法を認識する必要があるため、この手順が必要になります。
カスタム学習ルートを使用するように Cloud Router の BGP セッションを更新します。カスタム学習ルートを使用するように既存のセッションを更新するの手順に沿って操作します。
MD5 認証を使用する
使用しているルーター アプライアンス イメージが MD5 認証をサポートしている場合は、BGP ピアリング セッションに認証を追加することもできます。Cloud Router での MD5 認証の使用の詳細については、MD5 認証の使用をご覧ください。
次のステップ
- ルーター アプライアンス インスタンスを削除するには、Router アプライアンス インスタンスの削除をご覧ください。
- ソリューションが Network Connectivity Center と統合されているパートナーのリストを確認するには、Network Connectivity Center パートナーをご覧ください。
- ルーター アプライアンスのモニタリングとロギングの情報を表示するには、ログと指標の表示をご覧ください。
- ルーター アプライアンスの問題の解決方法については、トラブルシューティングをご覧ください。
- API と gcloud CLI の詳細については、API とリファレンスをご覧ください。