Network Connectivity Center を使用すると、サードパーティのネットワーク仮想アプライアンスを使用して、外部サイトと Virtual Private Cloud(VPC)ネットワーク リソース間の接続を確立できます。この方法で接続を確立するには、ルーター アプライアンス機能を使用します。
ルーター アプライアンスは、Network Connectivity Center で複数サポートされているスポークタイプの 1 つです。Network Connectivity Center の詳細については、Network Connectivity Center の概要をご覧ください。ルーター アプライアンスの詳細については、ルーター アプライアンスの概要をご覧ください。
構成の例:
次のトポロジでは、1 つの外部サイトがルーター アプライアンス スポークを使用して 2 つの VPC ネットワークに接続しています。
ルーター アプライアンス インスタンスをホストする VM には、各 VPC ネットワーク内のインターフェースがあります。ルーター アプライアンス インスタンスは、この両方のネットワークで Cloud Router との Border Gateway Protocol(BGP)セッションを維持します。
各 Cloud Router には 2 つのインターフェースがあります。各ネットワークのルーター アプライアンス インターフェースは、適切な Cloud Router の両方のインターフェースとピアリングし、合計で 4 つのピアリング セッションが確立します。
必要なタスク
サンプル構成を設定するには、この手順の前提条件を満たしていることを確認してから、必要なタスクを完了します。
ルーター アプライアンス インスタンスとして機能する Compute Engine 仮想マシン(VM)を作成します。VM は、サポートされているパートナー ソリューションまたは独自のカスタム イメージを使用して作成できます。
ルーター アプライアンス インスタンスが TCP ポート 179 で BGP トラフィックにアクセスできるようにします。アクセスできるようにするために、ファイアウォール ルールの作成が必要になる場合があります。
2 つのスポークを作成します(各 VPC ネットワークに 1 つずつ)。各スポークは、そのバッキング リソースと同じルーター アプライアンス インスタンスを使用します。
2 つの Cloud Router を設定します(各 VPC ネットワークで 1 つずつ)。このタスクでは、Cloud Router ごとに次のサブタスクを行います。
ルーター アプライアンス インスタンスと同じリージョンに Cloud Router を作成する。
各 Cloud Router に 2 つのインターフェースを作成する。
各 Cloud Router に BGP ピアリングを構成する。
ルーター アプライアンス インスタンスで BGP ピアリングを構成する。
これらのタスクの完了方法は、選択肢によって大きく異なる場合があります。たとえば、パートナー ソリューションを使用してルーター アプライアンス インスタンスを作成する場合、後のタスクの一部が自動的に行われることがあります。
始める前に
始める前に、次のセクションを確認してください。
プロジェクトを作成または選択する
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 つのリソースをピアリングすることはできません。また、両方の IP アドレスは同じリージョン内に存在しなければなりません。
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 ネットワークとサブネットの作成方法について説明します。
2 つの VPC ネットワークを作成する
2 つの VPC ネットワークをまだ作成していない場合は、作成します。各ネットワークの動的ルーティング モードを global
に設定します。
VPC ネットワークの作成の詳細については、ネットワークの作成をご覧ください。
コンソール
Google Cloud コンソールでカスタム VPC ネットワークを作成するには、カスタムモード ネットワークの作成をご覧ください。動的ルーティング モードがグローバルに設定されていることを確認します。サンプル構成で使用されている命名規則に従う場合は、ネットワークを network-a
、network-b
とします。
gcloud
カスタム VPC ネットワークを作成するには、gcloud compute networks create
コマンドを使用します。
gcloud compute networks create NAME \ --subnet-mode custom \ --bgp-routing-mode global
NAME
は、VPC ネットワークの名前(network-a
、network-b
など)に置き換えます。
API
Compute Engine API を使用してカスタム VPC ネットワークを作成するには、VPC ネットワークの使用をご覧ください。
サブネットを作成する
サブネットを network-a
に 1 つ、network-b
に 1 つ作成します。
コンソール
Google Cloud コンソールを使用してサブネットを追加するには、サブネットの追加をご覧ください。
サンプル構成で使用されている命名規則に従う場合は、network-a
のサブネットに次の値を使用します。
- 名前:
subnet-a
- リージョン:
us-central1
- 範囲:
10.1.3.0/24
network-b
のサブネットに次の値を使用します。
- 名前:
subnet-b
- リージョン:
us-central1
- 範囲:
192.168.10.0/24
gcloud
VPC サブネットを作成するには、gcloud compute networks subnets create
コマンドを使用します。
gcloud compute networks subnets create NAME \ --network=NETWORK \ --region=REGION \ --range=RANGE
次のように置き換えます。
NAME
: ルーター アプライアンス VM を含むサブネットの名前(subnet-a
、subnet-b
など)NETWORK
: サブネットを含むネットワーク(network-a
、network-b
など)REGION
: サブネットを含むリージョン(例:us-central1
)RANGE
: CIDR 表記のサブネットの IP 範囲(例:10.1.3.0/24
または192.168.10.0/24
)
API
Compute Engine API を使用して VPC サブネットを作成するには、VPC ネットワークの使用をご覧ください。
ルーター アプライアンス VM を作成する
ルーター アプライアンス インスタンスとして機能する Compute Engine VM を作成します。VM はサンプル トポロジで router-app-a
として表されます。network-a
と network-b
に 1 つずつ、2 つのインターフェースがあります。
VM を作成する際には、ネットワーク仮想アプライアンス イメージを選択する必要があります。このイメージは次のいずれかです。
サポート対象の Network Connectivity Center パートナーから提供されるソリューション
カスタム イメージ(作成したイメージなど)
イメージの指定の詳細については、次のリソースをご覧ください。
VM の作成についての詳細は、VM インスタンスの作成と起動をご覧ください。
このセクションの例では、Router アプライアンス インスタンス用に予約済みの IP アドレスがあることを前提としています。詳細については、Router アプライアンスの IP アドレスをご覧ください。
コンソール
構成例で使用する VM を作成するには、VM インスタンスの作成と起動をご覧ください。VM を作成するときに、次の選択を行います。
このサンプル構成で使用されている命名規則に従って記述する場合は、次の値を使用します。
- 名前:
router-app-a
- リージョン:
us-central1
- ゾーン:
us-central1-a
- 名前:
イメージを選択するには、ページの [ブートディスク] 領域に移動し、[変更] をクリックして、VM に適切なイメージに移動します。
[詳細オプション] を開き、[ネットワーキング] を開きます。次の値を使用します。
- [IP 転送] で [有効にする] を選択します。
- [ネットワーク インターフェース] で、2 つのインターフェース(
network-a
とnetwork-b
)を作成します。各インターフェースを作成するには、適切なネットワークを選択して [ネットワーク インターフェースを追加] をクリックします。次のフィールドに値を入力します。- ルーター アプライアンス インスタンスを配置するサブネットを選択します(例:
subnet-a
またはsubnet-b
)。 - [プライマリ内部 IP] で、使用する予約済み RFC 1918 内部 IP アドレスを選択します(例:
10.1.3.8
または192.168.10.3
)。 - [ネットワーク サービス ティア] で [プレミアム] を選択します。この選択により、トラフィックが Google のネットワークを使用する範囲が最大になります。
- ルーター アプライアンス インスタンスを配置するサブネットを選択します(例:
gcloud
サンプル構成で使用されている 2 台のルーター アプライアンス VM を作成するには、gcloud compute instances create
コマンドを使用します。
このコマンドを 2 回実行します(ルーター アプライアンス インスタンスごとに 1 回ずつ)。INSTANCE_NAME は、ルーター アプライアンス インスタンスとして機能する VM の名前に置き換えます。
次の例では、あらかじめ予約済みの静的内部 IP アドレスと静的外部 IP アドレスを VM に割り当てています。また、ベンダーから提供された 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
メソッドを使用します。
他の作成方法については、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 を許可するファイアウォール ルールを作成する
2 つのファイアウォール ルール(network-a
と network-b
に 1 つずつ)を作成します。各ルールでは、TCP ポート 179
に BGP トラフィックを許可する必要があります。
ファイアウォール コマンドの詳細については、ファイアウォール ルールの使用をご覧ください。
コンソール
Google Cloud コンソールを使用して VPC ファイアウォール ルールを作成するには、ファイアウォール ルールの作成をご覧ください。
gcloud
Google Cloud CLI を使用して VPC ファイアウォール ルールを作成するには、ファイアウォール ルールの作成をご覧ください。
API
Compute Engine API を使用して VPC ファイアウォール ルールを作成するには、ファイアウォール ルールの作成をご覧ください。
Network Connectivity Center のリソースを作成する
ルーター アプライアンス VM を使用する前に、必要な 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 つ作成する
ルーター アプライアンス スポークを 2 つ作成します。両方のスポークは同じバッキング リソース(先ほど作成したルーター アプライアンス インスタンス)を使用します。1 つのスポークは network-a
のインターフェースを使用し、もう 1 つのスポークは network-
b
のインターフェースを使用します。
ルーター アプライアンス インスタンスと Cloud Router の間の BGP ピアリングを有効にするためには、スポークを作成する必要があります(次のステップで作成します)。
スポークの作成方法の詳細については、ハブとスポークの操作をご覧ください。
コンソール
スポークの基本情報を入力する
Google Cloud コンソールで [Network Connectivity Center] ページに移動します。
プロジェクト メニューで、プロジェクトを選択します。
[スポーク] タブをクリックします。
[スポークを追加する] をクリックします。
[新しいスポーク] フォームで、[スポークタイプ] を [Router アプライアンス] に設定します。
スポーク名を入力します(例:
spoke-a
、spoke-b
)。必要に応じて、説明を入力します。
新しいスポークの [リージョン] フィールドを選択します。
[サイト間データ転送] で [無効] を選択します。
[VPC ネットワーク] プルダウン リストで、ネットワークを選択します。
ルーター アプライアンスの詳細を入力する
- [Attach instance(s) to the spoke] で、プルダウン リストを使用してルーター アプライアンス(
router-app-a
など)を選択します。 - このスポークにルーター アプライアンス インスタンスをさらに追加するには、[インスタンスを追加] をクリックして前の手順を繰り返します。
- 終了したら、[完了] をクリックして「スポークを保存する」に進みます。
スポークを保存する
- 2 番目のスポークを追加するには、[スポークを追加] をクリックし、スポーク名の入力からプロセスを再度開始します。
- スポークの追加が完了したら、[作成] をクリックします。[Network Connectivity Center] のページが更新され、作成したスポークの詳細が表示されます。
gcloud
ルーター アプライアンスのスポークを作成するには、gcloud network-connectivity spokes linked-router-appliances create
コマンドを使用します。コマンドを 2 回実行します(スポークごとに 1 回ずつ)。
gcloud network-connectivity spokes linked-router-appliances create NAME \ --hub="HUB_URI" \ --description="DESCRIPTION" \ --router-appliance=instance="ROUTER_APPLIANCE_URI",ip=IP_ADDRESS \ --region=REGION \ --labels="KEY"="VALUE"
次の値を置き換えます。
NAME
: スポークの名前(spoke-a
など)HUB_URI
: スポークを接続するハブ URIDESCRIPTION
: スポークを説明する省略可能なテキストROUTER_APPLIANCE_URI
: ルーター アプライアンス インスタンスの URI。以下に例を示します。https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
IP_ADDRESS
: 適切な VPC ネットワーク内にあるルーター アプライアンス インスタンスの内部 IP アドレス(10.1.3.8
、192.168.10.3
など)REGION
: スポークを配置する Google Cloud リージョン(us-central1
など)KEY
: ラベルテキストの Key-Value ペアのキー(省略可)VALUE
: ラベルテキストの Key-Value ペアの値(省略可)たとえば、次のコマンドは、基盤となるリソースとして
router-app-a
を使用するルーター アプライアンス スポークを作成します。このコマンドは、network-a
インターフェースを使用して Router アプライアンス インスタンスを参照します。gcloud network-connectivity spokes linked-router-appliances create spoke-a \ --hub=my-hub \ --description="Test spoke 1" \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=10.1.3.8 \ --region=us-central1 \
たとえば、次のコマンドは、基盤となるリソースとして
router-app-a
を使用するルーター アプライアンス スポークを作成します。このコマンドは、network-b
インターフェースを使用して Router アプライアンス インスタンスを参照します。gcloud network-connectivity spokes linked-router-appliances create spoke-b \ --hub=my-hub \ --description="Test spoke 1" \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=192.168.10.3\ --region=us-central1 \
API
ルーター アプライアンス スポークを作成するには、networkconnectivity.spokes.create
メソッドを使用します。スポークに関連付けるルーター アプライアンス インスタンスごとに、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, }, ], "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
: 適切な VPC ネットワークのルーター アプライアンス インスタンスの内部 IP アドレス(10.1.3.8
、192.168.10.3
など)BOOLEAN
: このスポークでサイト間データ転送を有効にするかどうかを決める値。このユースケースでは、false
に設定します。たとえば、
network-a
のインターフェースにrouter-app-a
を使用するスポークを作成するには、リクエストの本文を次のように構成する必要があります。{ "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-central1-a/instances/router-app-a", "ipAddress": "10.1.3.8", }, ], "siteToSiteDataTransfer": false } }
network-b
のインターフェースにrouter-app-a
を使用するスポークを作成するには、リクエストの本文を次のように構成する必要があります。{ "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-central1-a/instances/router-app-a", "ipAddress": "192.168.10.3", }, ], "siteToSiteDataTransfer": false } }
Cloud Router を設定する
ルーター アプライアンスは、Cloud Router を使用して VPC ネットワークとルートを交換します。このため、各 VPC ネットワークに Cloud Router を作成し、残りの設定タスクを実行する必要があります。
Cloud Router を作成する
サンプル トポロジと同じ値を使用している場合は、2 つの Cloud Router を作成します(network-a
と network-b
に 1 つずつ)。両方の Cloud Router を us-central1
に配置します。
詳細については、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
、cloud-router-b
)REGION
: Cloud Router を含むリージョン(例:us-central1
)NETWORK
: Cloud Router を含む VPC ネットワーク(例:network-a
、network-b
)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-central1
)NAME
: Cloud Router の名前(例:cloud-router-a
、cloud-router-b
)NETWORK
: Cloud Router を含む VPC ネットワークの URI(例:/global/networks/network-a
、/global/networks/network-b
)ASN
: Cloud Router の自律システム番号(ASN)。この AS 番号は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート AS 番号である必要があります(例:65000
)
各 Cloud Router に 2 つのインターフェースを作成する
冗長性を確保するには、各 Cloud Router に 2 つのインターフェースを作成します。各 Cloud Router で、2 つのインターフェースを、対応するルーター アプライアンス インターフェースと同じサブネットに関連付ける必要があります。サンプル トポロジの値を使用している場合は、次のようにします。
cloud-router-a
には、subnet-a
に 2 つのインターフェースを作成します。cloud-router-b
には、subnet-b
に 2 つのインターフェースを作成します。
各 Cloud Router インターフェースには、リージョンの内部 IP アドレスを使用します。インターフェースの内部 IP アドレスを明示的に指定する場合、その IP アドレスはサブネットのプライマリ IP アドレス範囲内にある必要があります。別のリソース(VM や別の Cloud Router インターフェースなど)ですでに使用されているものにはできません。
このステップには、Google Cloud コンソールで行う操作はありません。Google Cloud コンソールを使用している場合は、次のタスク(各 Cloud Router での BGP ピアリングの作成)を完了すると、インターフェースが自動的に作成されます。
gcloud
Cloud Router に冗長インターフェースを作成するには、gcloud compute routers add-interface
コマンドを使用します。
次の手順を 2 回行います(cloud-router-a
用に 1 回、cloud-router-b
用に 1 回)。
各 Cloud Router に対して、最初のインターフェースを作成します。
gcloud compute routers add-interface ROUTER_NAME \ --interface-name=FIRST_INTERFACE_NAME \ --ip-address=FIRST_INTERFACE_IP_ADDRESS \ --subnetwork=SUBNET \ --region=REGION \ --project=PROJECT_ID
次のように置き換えます。
ROUTER_NAME
: 更新する Cloud Router の名前(例:cloud-router-a
、cloud-router-b
)。FIRST_INTERFACE_NAME
: インターフェースの名前(例:interface-1
)FIRST_INTERFACE_IP_ADDRESS
: 最初のインターフェースに使用する RFC 1918 内部 IP アドレス。値を指定しない場合、Google はサブネットのプライマリ IP アドレス範囲内で空いているアドレスを探します。SUBNET
: Cloud Router インターフェースと、対応するルーター アプライアンス インスタンス インターフェースを含むサブネットREGION
: Cloud Router が存在する Google Cloud リージョン(例:us-central1
)PROJECT_ID
: Cloud Router のプロジェクト ID(例:my-project
)
各 Cloud Router に 2 番目のインターフェースを作成します。
gcloud compute routers add-interface ROUTER_NAME \ --interface-name=SECOND_INTERFACE_NAME \ --ip-address=SECOND_INTERFACE_IP_ADDRESS \ --subnetwork=SUBNET \ --redundant-interface=FIRST_INTERFACE_NAME \ --region=REGION \ --project=PROJECT_ID
次のように置き換えます。
ROUTER_NAME
: 更新する Cloud Router の名前(例:cloud-router-a
、cloud-router-b
)。SECOND_INTERFACE_NAME
: インターフェースの名前(例:interface-2
)SECOND_INTERFACE_IP_ADDRESS
: 2 番目のインターフェースに使用する RFC 1918 内部 IP アドレス。値を指定しない場合、Google はサブネットのプライマリ IP アドレス範囲内で空いているアドレスを探します。SUBNET
: 2 つの Cloud Router インターフェースと、対応するルーター アプライアンス インスタンス インターフェースを含むサブネットFIRST_INTERFACE_NAME
: 手順 1 で作成したインターフェースの名前REGION
: Cloud Router が存在する Google Cloud リージョン(例:us-central1
)PROJECT_ID
: Cloud Router のプロジェクト ID(例:my-project
)
cloud-router-a
のサンプル コマンド次のコマンドは、
cloud-router-a
に最初のインターフェースを作成します。gcloud compute routers add-interface cloud-router-a \ --interface-name=interface-1 \ --ip-address=10.1.3.14 \ --subnetwork=subnet-a \ --region=us-central1 \ --project=my-project
次のコマンドは、
cloud-router-a
に 2 番目のインターフェースを作成します。gcloud compute routers add-interface cloud-router-a \ --interface-name=interface-2 \ --ip-address=10.1.3.15 \ --subnetwork=subnet-a \ --redundant-interface=interface-1 \ --region=us-central1 \ --project=my-project
cloud-router-b
のサンプル コマンド次のコマンドは、
cloud-router-b
に最初のインターフェースを作成します。gcloud compute routers add-interface cloud-router-b \ --interface-name=interface-1 \ --ip-address=192.168.10.14 \ --subnetwork=subnet-b \ --region=us-central1 \ --project=my-project
次のコマンドは、
cloud-router-b
に 2 番目のインターフェースを作成します。gcloud compute routers add-interface cloud-router-b \ --interface-name=interface-2 \ --ip-address=192.168.10.15 \ --subnetwork=subnet-b \ --redundant-interface=interface-1 \ --region=us-central1 \ --project=my-project
API
Cloud Router に冗長インターフェースを作成するには、compute.routers.patch
メソッドを使用します。
次のリクエストを 2 回使用します(cloud-router-a
で 1 回、cloud-router-b
で 1 回)。
"PATCH https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME { "region":"REGION", "interfaces":[ { "name":"FIRST_INTERFACE_NAME", "privateIpAddress:"FIRST_INTERFACE_IP_ADDRESS", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" }, { "name":"SECOND_INTERFACE_NAME", "privateIpAddress:"SECOND_INTERFACE_IP_ADDRESS", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET", "redundantInterface": "FIRST_INTERFACE_NAME" } ] }
次のように置き換えます。
PROJECT_ID
: Cloud Router のプロジェクト ID(例:my-project
)REGION
: Cloud Router が存在する Google Cloud リージョン(例:us-central1
)NAME
: 更新する Cloud Router の名前(例:cloud-router-a
、cloud-router-b
)。NETWORK
: Cloud Router を含む VPC ネットワーク(例:network-a
)FIRST_INTERFACE_NAME
: 最初のインターフェースの名前(例:interface-1
)FIRST_INTERFACE_IP_ADDRESS
: 最初のインターフェースに使用する RFC 1918 内部 IP アドレス。値を指定しない場合、Google はサブネットのプライマリ IP アドレス範囲内で空いているアドレスを探します。SUBNET
: 2 つの Cloud Router インターフェースと、対応するルーター アプライアンス インスタンス インターフェースを含むサブネットSECOND_INTERFACE_NAME
: 2 番目のインターフェースの名前(例:interface-2
)SECOND_INTERFACE_IP_ADDRESS
: 2 番目のインターフェースに使用する RFC 1918 内部 IP アドレス。値を指定しない場合、Google はサブネットのプライマリ IP アドレス範囲内で空いているアドレスを探します。cloud-router-a
のサンプル コマンド次のコマンドは、
cloud-router-a
に 2 つのインターフェースを作成します。"PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/routers/cloud-router-a { "region":"us-central1", "interfaces":[ { "name":"router-appliance-interface-0", "privateIpAddress:"10.1.3.14", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a" }, { "name":"router-appliance-interface-1", "privateIpAddress:"10.1.3.15", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a", "redundantInterface": "router-appliance-interface-0" } ] }
cloud-router-b
のサンプル コマンド次のコマンドは、
cloud-router-b
に 2 つのインターフェースを作成します。"PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/routers/cloud-router-b { "region":"us-central1", "interfaces":[ { "name":"router-appliance-interface-0", "privateIpAddress:"192.168.10.14", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-b" }, { "name":"router-appliance-interface-1", "privateIpAddress:"192.168.10.15", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-b", "redundantInterface": "router-appliance-interface-0" } ] }
各 Cloud Router で BGP ピアリングを構成する
ルーター アプライアンス インスタンスのインターフェースごとに、2 つの BGP ピアリング セッションを作成する必要があります(Cloud Router インターフェースごとに 1 つずつ)。サンプル トポロジの値を使用している場合は、次のようにします。
cloud-router-a
とrouter-app-a
のnetwork-a
インターフェースとの間に 2 つのピアリング セッションを作成します。cloud-router-b
とrouter-app-a
のnetwork-b
インターフェースとの間に 2 つのピアリング セッションを作成します。
コンソール
次の手順を 2 回行います(spoke-a
用に 1 回、spoke-b
用に 1 回)。
- [Network Connectivity Center] ページに移動します。 Network Connectivity Center に移動
- プロジェクト メニューで、プロジェクトを選択します。
- [スポーク] タブをクリックします。
- [スポーク名] 列でスポークを選択して、[スポークの詳細] ページを表示します。たとえば、
spoke-a
やspoke-b
を選択します。
[名前] 列で、
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 に BGP ピアを作成するには、gcloud compute routers add-bgp-peer
コマンドを使用します。
次の手順を 2 回行います(cloud-router-a
用に 1 回、cloud-router-b
用に 1 回)。
最初の 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 の名前(例:cloud-router-a
、cloud-router-b
)。PEER_NAME
: ルーター アプライアンス インスタンスとの間に確立する BGP ピアリング セッションの名前INTERFACE
: この BGP ピアのインターフェースの名前PEER_IP_ADDRESS
: ピアルーター(ルーター アプライアンス インスタンス)の内部 IP アドレス(例:10.1.3.8
、192.168.10.3
)PEER_ASN
: この BGP ピアの BGP 自律システム番号(ASN)。この ASN は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート ASN でなければなりません。ROUTER_APPLIANCE
: ルーター アプライアンス インスタンスとして機能する VM の名前(例:router-app-a
)ROUTER_APPLIANCE_ZONE
: ルーター アプライアンス インスタンスとして機能する VM が存在するゾーン(例:us-central1-a
)REGION
: ルーター アプライアンス インスタンスとして機能する VM が配置されているリージョン(例:us-central1
)
cloud-router-a
のサンプル コマンド次のコマンドを使用して、
cloud-router-a
の BGP ピアを作成します。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.1.3.8 \ --peer-asn=65001 \ --instance=router-app-a \ --instance-zone=us-central1-a \ --region=us-central1
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.1.3.8 \ --peer-asn=65001 \ --instance=router-app-a \ --instance-zone=us-central1-a \ --region=us-central1
cloud-router-b
のサンプル コマンド次のコマンドを使用して、
cloud-router-b
の BGP ピアを作成します。gcloud compute routers add-bgp-peer cloud-router-b \ --peer-name=router-appliance-bgp-peer-router-app-a-0 \ --interface=router-appliance-interface-0 \ --peer-ip-address=192.168.10.3 \ --peer-asn=65001 \ --instance=router-app-a \ --instance-zone=us-central1-a \ --region=us-central1
gcloud compute routers add-bgp-peer cloud-router-b \ --peer-name=router-appliance-bgp-peer-router-app-a-1 \ --interface=router-appliance-interface-1 \ --peer-ip-address=192.168.10.3 \ --peer-asn=65001 \ --instance=router-app-a \ --instance-zone=us-central1-a \ --region=us-central1
API
Cloud Router に BGP ピアを作成するには、compute.routers.patch
メソッドを使用します。このメソッドを 2 回使用します(cloud-router-a
で 1 回、cloud-router-b
で 1 回)。
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
: ルーター アプライアンス インスタンスとして機能する VM の内部 IP アドレス(例:10.1.3.8
、192.168.10.3
)。ROUTER_APPLIANCE_INSTANCE
: ルーター アプライアンス インスタンスとして機能する VM の URL 形式の名前ROUTER_APPLIANCE_ZONE
: Router アプライアンス インスタンスとして機能する VM が配置されるゾーンPEER_ASN
: この BGP ピアの BGP 自律システム番号(ASN)。この ASN は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート ASN でなければなりません。cloud-router-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.1.3.14", "peerIpAddress": "10.1.3.8", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a", "peerAsn": 65001, } { "name": "router-appliance-bgp-peer-router-app-a-1", "interfaceName": "router-appliance-interface-1", "ipAddress": "10.1.3.15", "peerIpAddress": "10.1.3.8", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a", "peerAsn": 65001 } ] }
cloud-router-b
のサンプル コマンドPATCH https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-b { "bgpPeers": [ { "name": "router-appliance-bgp-peer-router-app-a-0", "interfaceName": "router-appliance-interface-0", "ipAddress": "192.168.10.14", "peerIpAddress": "192.168.10.3", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a", "peerAsn": 65001, } { "name": "router-appliance-bgp-peer-router-app-a-1", "interfaceName": "router-appliance-interface-1", "ipAddress": "192.168.10.15, "peerIpAddress": "192.168.10.3", "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a", "peerAsn": 65001 } ] }
ルーター アプライアンス インスタンスで BGP を構成する
2 つの Cloud Router への BGP 接続を行うようにルーター アプライアンス インスタンスを構成します。方法については、ルーター アプライアンス イメージのベンダー ドキュメントをご覧ください。
次のステップ
- ルーター アプライアンス インスタンスを削除するには、Router アプライアンス インスタンスの削除をご覧ください。
- ソリューションが Network Connectivity Center と統合されているパートナーのリストを確認するには、Network Connectivity Center パートナーをご覧ください。
- スポークに追加できるリソースについては、スポークをご覧ください。
- ルーター アプライアンスのモニタリングとロギングの情報を表示するには、ログと指標の表示をご覧ください。
- ルーター アプライアンスの問題の解決方法については、トラブルシューティングをご覧ください。
- API または gcloud CLI を使用して Network Connectivity Center を操作する方法については、API とリファレンスをご覧ください。