ハイブリッド サブネットを作成する
ハイブリッド サブネットを使用すると、IP アドレスを変更することなく、オンプレミス サブネットから Virtual Private Cloud(VPC)サブネットにワークロードを移行できます。このドキュメントでは、ハイブリッド サブネットを作成し、ハイブリッド サブネットの Google Cloud 部分にワークロードを移行して、ハイブリッド サブネットで接続をテストする手順について説明します。
始める前に
- ハイブリッド サブネット接続を準備するの手順が完了していることを確認します。
- このガイドのコマンドラインの例を使用するには、Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新してください。
- Google Cloud プロジェクトで Compute Engine API を有効にします。詳細については、Compute Engine API をご覧ください。
- Google Cloud プロジェクトで Network Connectivity API を有効にします。詳細については、Network Connectivity API をご覧ください。
必要なロール
ハイブリッド サブネットの作成に必要な権限を取得するには、プロジェクトに対する Compute ネットワーク管理者(roles/compute.networkAdmin
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ハイブリッド サブネット ルーティングを構成する
ハイブリッド サブネット ルーティングを構成するには、次のいずれかを行います。
- ハイブリッド サブネット ルーティングが有効になっている新しいサブネットを作成する。
- 既存のサブネットでハイブリッド サブネット ルーティングを有効にする。
ハイブリッド サブネット ルーティングが有効なサブネットを新規に作成する
コンソール
Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
ハイブリッド サブネットを作成する VPC ネットワークの名前をクリックします。
[サブネット] タブをクリックします。
[サブネットを追加] をクリックします。表示されるパネルで、次の手順を実施します。
- 名前を入力します。
- リージョンを選択します。
- [目的] セクションで、[なし] を選択します。
- [スタックタイプ] セクションで、[IPv4(シングルスタック)] を選択します。
- [IPv4 範囲] フィールドに、ハイブリッド サブネットに使用するオンプレミス ネットワークのセグメントの IPv4 アドレス範囲を入力します。
- [限定公開の Google アクセス] セクションで、[オフ] を選択します。
- [ハイブリッド サブネット] セクションで、[オン] を選択します。
- [追加] をクリックします。
既存のサブネットでハイブリッド サブネット ルーティングを有効にする
ハイブリッド サブネットに使用するオンプレミス ネットワークのセグメントの範囲とプライマリ IPv4 アドレス範囲が一致する既存のサブネットに対して、ハイブリッド サブネット ルーティングを有効にできます。
既存のサブネットでハイブリッド サブネット ルーティングを有効にするには、そのサブネットで CIDR ルートの重複を有効にします。これにより、VPC ネットワーク ルーティングの動作が変更され、サブネットの IP アドレス範囲とカスタム動的ルートのアドレス範囲の重複が可能になります。
CIDR ルートの重複の詳細については、Compute Engine API リファレンスの allowSubnetCidrRoutesOverlap
フィールドをご覧ください。
コンソール
Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
更新するサブネットを含む VPC ネットワークの名前をクリックします。
[サブネット] タブをクリックします。
更新するサブネットをクリックします。
[編集] をクリックします。
[ハイブリッド サブネット] セクションで、[オン] を選択します。
[保存] をクリックします。
gcloud
gcloud beta compute networks subnets update
コマンドを使用します。
gcloud beta compute networks subnets update SUBNET \ --region=REGION \ --allow-cidr-routes-overlap
次のように置き換えます。
SUBNET
: サブネットの名前。REGION
: サブネットのリージョン。
API
サブネットの
fingerprint
ID を見つけます。リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: オブジェクトの ID
- REGION: サブネットのリージョン
- SUBNET_NAME: サブネットの名前
HTTP メソッドと URL:
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "compute#subnetwork", "id": "5514771331600183201", "creationTimestamp": "2022-09-16T12:41:02.010-07:00", "name": "subnet-name", "network": "https://www.googleapis.com/compute/v1/projects/project-name/global/networks/network-name", "ipCidrRange": "10.6.0.0/16", "gatewayAddress": "10.6.0.1", "region": "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1", "selfLink": "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1/subnetworks/subnet-name", "privateIpGoogleAccess": true, "fingerprint": "YiItidAFRsA5", "allowSubnetCidrRoutesOverlap": false, "enableFlowLogs": true, "privateIpv6GoogleAccess": "DISABLE_GOOGLE_ACCESS", "purpose": "PRIVATE", "stackType": "IPV4_ONLY" }
ハイブリッド サブネット ルーティングを有効にします。
リクエスト データのいずれかを使用する前に、SUBNET_FINGERPRINT を前のリクエストで確認したサブネットのフィンガープリント ID(
YiItidAFRsA5
など)に置き換えます。HTTP メソッドと URL:
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
リクエストの本文(JSON):
{ "allowSubnetCidrRoutesOverlap": true, "fingerprint": "SUBNET_FINGERPRINT" }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "compute#operation", "id": "5973660558170953708", "name": "operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6", "operationType": "compute.subnetworks.patch", "targetLink": "https://www.googleapis.com/compute/beta/projects/test-project/regions/us-central1/subnetworks/subnet-name", "targetId": "5514771331600183201", "status": "RUNNING", "user": "user@gmail.com", "progress": 0, "insertTime": "2023-03-31T11:40:03.882-07:00", "startTime": "2023-03-31T11:40:03.893-07:00", "selfLink": "https://www.googleapis.com/compute/beta/projects/test-project/regions/us-central1/operations/operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6", "region": "https://www.googleapis.com/compute/beta/projects/test-project/regions/us-central1" }
allowSubnetCidrRoutesOverlap
がサブネットで有効になっていることを確認するには、別のGET
リクエストを作成し、レスポンスに以下が含まれていることを確認します。"allowSubnetCidrRoutesOverlap": true
ルート アドバタイズを構成する
カスタム IPv4 と IPv6 のみをアドバタイズするように、ハイブリッド接続プロダクト(VPN トンネル、VLAN アタッチメント、ルーター アプライアンス仮想マシン(VM)インスタンス)の Border Gateway Protocol(BGP)セッションを構成します。
VPC ネットワークからオンプレミスへの接続をテストする
ハイブリッド サブネットとオンプレミス ネットワークで重複する IP アドレス範囲の接続をテストするには、次の操作を行います。
- VPC ネットワークのハイブリッド サブネットにテスト VM を作成します。
- テスト VM のプライマリ内部 IPv4 アドレスをメモします。
- テスト VM のプライマリ内部 IPv4 アドレスが
/32
カスタムルート アドバタイズに含まれるように、Cloud Router の BGP セッションのカスタムルート アドバタイズを更新します。 - SSH で VM に接続します。
- オペレーティング システムのプロンプトで、ICMP を使用してハイブリッド サブネット内のオンプレミス システムの IP アドレスに
ping
を実行します。
ping テストに失敗した場合は、Google Cloud ファイアウォール ルールとオンプレミス ファイアウォールで、ハイブリッド サブネットの IP アドレス範囲内の ICMP が許可されていることを確認します。
ワークロードの移動とルーティングの更新
ワークロードまたはワークロードのグループを移行するたびに、次の手順を完了します。
ワークロードを移行する
任意の方法で、オンプレミス ネットワークから VPC ネットワークにワークロードと VM を移行します。VM を Compute Engine に移行するには、Migrate to Virtual Machines を使用することをおすすめします。
移行オプションの詳細については、ハイブリッド サブネットと Migrate to Virtual Machines をご覧ください。
カスタム ルート アドバタイズを更新する
VM を Google Cloud に移行する際は、移行した各 VM のプライマリ内部 IPv4 アドレスが含まれるように、Cloud Router の BGP セッションのカスタムルート アドバタイズを更新します。/32
カスタムルート アドバタイズを使用して、個々の IP アドレスを追加します。
連続する IP アドレス ブロックの場合、アドレスを可能な限り少ないカスタム アドバタイズに統合します。アドバタイズは、ハイブリッド サブネットの IP アドレス範囲よりも限定的である(サブネット マスクを長くする)必要があります。
オンプレミス ネットワークから移行後の VM への接続をテストする
Google Cloud に移行した VM への接続をテストするには、次の操作を行います。
- ハイブリッド接続を管理する BGP セッションのカスタムルート アドバタイズが更新されていることを確認します。移行した VM のプライマリ内部 IPv4 アドレスがルート アドバタイズに含まれている必要があります。
- オンプレミス システムから移行後の VM の IP アドレスに ICMP
ping
を送信します。