特定の VPC サブネットをアドバタイズする
カスタム アドバタイズ ルートを作成して、Cloud Router がアドバタイズする Virtual Private Cloud(VPC)ネットワーク内のサブネットを制限できます。オンプレミスのクライアントが認識できるのは、アドバタイズされたサブネットだけです。すべてのサブネットをアドバタイズするように Cloud Router を構成しない限り、Cloud Router は新しいサブネットを動的にアドバタイズしません。特定のサブネットのみをアドバタイズし、新しいサブネットをアドバタイズする場合は、これらのサブネットをカスタム アドバタイズ ルートとして追加する必要があります。
IPv6 対応の BGP セッションでは、特定の内部(ULA)と外部(GUA)の IPv6 サブネット範囲にカスタム アドバタイズ ルートを構成できます。IPv6 サブネット タイプの詳細については、IPv6 サブネット範囲をご覧ください。
Cloud Router の作成時または BGP セッションの構成時にカスタム アドバタイズ ルートを指定する場合は、Cloud Router を作成するまたは BGP セッションを確立するをご覧ください。
始める前に
gcloud
このガイドのコマンドラインの例を使用する場合は、次の操作を行います。
- Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
API
このガイドの API の例を使用する場合は、API アクセスを設定します。
Cloud Router のカスタム アドバタイズ ルートを指定する
既存の Cloud Router でカスタム アドバタイズ ルートを指定するには、次の操作を行います。
コンソール
Google Cloud コンソールで [Cloud Router] ページに移動します。
更新する Cloud Router を選択します。
[ルーターの詳細] ページで、[
編集] をクリックします。[アドバタイズされたルート] セクションの [ルート] で、[カスタムルートの作成] を選択します。
[Cloud Router に表示されるすべてのサブネットにアドバタイズする] チェックボックスがオンになっている場合は、チェックボックスをクリアします。
[カスタムルートの追加] を選択して、カスタム アドバタイズ ルートを追加します。
カスタム アドバタイズ ルートを構成します。
- ソース: サブネットの事前定義リストを選択します。リストには、Cloud Router で使用可能なすべてのサブネットが含まれます。表示されるリストは、VPC ネットワークの動的ルーティング モードによって変わります。
IP アドレス範囲: アドバタイズされるサブネットの IP 範囲を変更できます。たとえば、Cloud Router がサブネットの一部をアドバタイズするように、より狭い範囲を指定できます。IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。
サブネット マスクのない IP アドレスのプレフィックスを指定すると、IPv4 の場合は
/32
サブネット マスク、IPv6 の場合は/128
サブネット マスクとして解釈されます。使用できるカスタム学習ルートの最大数については、上限をご覧ください。説明: このカスタム アドバタイズ ルートの目的がわかるような説明を追加し、[完了] をクリックします。
カスタム アドバタイズ ルートの追加が完了したら、[保存] をクリックします。
gcloud
開始する前に、アドバタイズするサブネットの IP 範囲を記録します。
update
コマンドを実行します。アドバタイズするサブネット IP 範囲を指定するには、--set-advertisement-ranges
フラグを使用します。IP 範囲を既存のアドバタイズに追加するには、--add-advertisement-ranges
フラグを使います。
--set-advertisement-ranges
フラグを使用します。既存のカスタム アドバタイズ ルートはすべて置き換えられます。gcloud compute routers update ROUTER_NAME \ --advertisement-mode custom \ --set-advertisement-ranges=ADVERTISED_IP_RANGES
次のように置き換えます。
ROUTER_NAME
: Cloud Router の名前ADVERTISED_IP_RANGES
: IP アドレス範囲の新しい配列の内容。IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。サブネット マスクのない IP アドレスのプレフィックスを指定すると、IPv4 の場合は
/32
サブネット マスク、IPv6 の場合は/128
サブネット マスクとして解釈されます。使用できるカスタム学習ルートの最大数については、上限をご覧ください。
次の例では、
192.0.2.0/24
サブネットと198.51.100.0/24
サブネットをアドバタイズするようにmy-router
Cloud Router を更新します。既存のカスタム アドバタイズ ルートは置き換えられます。gcloud compute routers update my-router \ --advertisement-mode=custom \ --set-advertisement-ranges='192.0.2.0/24,198.51.100.0/24'
次の例は、
192.0.2.0/24
と198.51.100.0/24
の IPv4 サブネットおよび2001:db8:abcd:12::/64
IPv6 サブネットをアドバタイズするようにmy-router
Cloud Router を更新します。gcloud compute routers update my-router \ --advertisement-mode=custom \ --set-advertisement-ranges='192.0.2.0/24,198.51.100.0/24,2001:db8:abcd:12::/64'
Cloud Router は、IPv6 が有効になっている BGP セッションでのみ IPv6 範囲をアドバタイズします。
次の例では、
--add-advertisement-ranges
フラグを使用して IP 範囲を既存のアドバタイズに追加します。gcloud compute routers update my-router \ --add-advertisement-ranges='203.0.113.0/24'
次の例は、
2001:db8:abcd:12::/64
カスタム IPv6 範囲を Cloud Router のアドバタイズに追加します。gcloud compute routers update my-router \ --add-advertisement-ranges='2001:db8:abcd:12::/64'
Cloud Router は、IPv6 が有効になっている BGP セッションでのみ IPv6 範囲をアドバタイズします。
Cloud Router のアドバタイズ グループにすべてのサブネットが含まれている場合、Cloud Router が追加のサブネットをアドバタイズしないように、このグループを削除します。アドバタイズ グループは、Cloud Router が動的にアドバタイズする Google 定義の IP 範囲です。すべてのアドバタイズ グループのリストについては、Google の SDK ドキュメントの set-advertisement-groups
フラグをご覧ください。
次の例では、
describe
コマンドを使用して、Cloud Router のアドバタイズ ルートを確認します。gcloud compute routers describe my-router
出力に
all_subnets
値のadvertisedGroups
フィールドが含まれている場合は、このフィールドを削除します。次の例では、--remove-advertisement-groups
フラグを指定したupdate
コマンドを使用しています。gcloud compute routers update my-router \ --remove-advertisement-groups all_subnets
API
routers.patch
メソッドを使用して bgp.advertisedIpRanges[]
フィールドを更新します。また、現在の値が ALL_SUBNETS
の場合は、bgp.advertisedGroups[]
フィールドの更新も必要になります。
bgp.advertisedGroups[]
フィールドと bgp.advertisedIpRanges[]
フィールドには、アドバタイズされたグループとアドバタイズされた IP アドレス範囲の配列が格納されます。これらのフィールドに PATCH
を実行すると、既存の配列がリクエスト内の新しい配列で上書きされます。
GET
リクエストを送信して、ルーターでアドバタイズされたグループと IP 範囲の現在の配列を取得します。詳細については、Cloud Router のステータスとルートの表示をご覧ください。アドバタイズされたグループと IP アドレス範囲の新しい配列を指定して、
PATCH
リクエストを送信します。- ルーターに必要なサブネット IP アドレス範囲を
bgp.advertisedIpRanges[]
フィールドに追加します。 advertisedGroups[]
フィールドの値が現在ALL_SUBNETS
に指定されている場合は、次の例のように空の配列を送信して削除します。これにより、Cloud Router は追加のサブネットをアドバタイズできなくなります。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgp": { "advertisedGroups": [], "advertisedIpRanges": [ ADVERTISED_IP_RANGES ] } }
次のように置き換えます。
PROJECT_ID
: Cloud Router が含まれるプロジェクトREGION
: Cloud Router が配置されているリージョンROUTER_NAME
: Cloud Router の名前ADVERTISED_IP_RANGES
: IP アドレス範囲の新しい配列の内容。IPv4 アドレス範囲に加えて、IPv6 カスタム IP アドレス範囲を指定できます。ただし、IPv6 範囲は、この BGP セッションで IPv6 交換を有効にした場合にのみアドバタイズされます。
サブネット マスクのない IP アドレスのプレフィックスを指定すると、IPv4 の場合は
/32
サブネット マスク、IPv6 の場合は/128
サブネット マスクとして解釈されます。使用できるカスタム学習ルートの最大数については、上限をご覧ください。次の例では、2 つのサブネットの IPv4 アドレス範囲と 1 つの IPv6 アドレス範囲が含まれています。
{ "range": "192.0.2.0/24", "description": "First example range" }, { "range": "198.51.100.0/24", "description": "Second example range" }, { "range": "2001:db8:abcd:12::/64", "description: "Third example range" }
- ルーターに必要なサブネット IP アドレス範囲を
BGP セッションのカスタム アドバタイズ ルートを指定する
既存の BGP セッションでカスタム アドバタイズ ルートを指定するには、次の操作を行います。
コンソール
Google Cloud コンソールで [Cloud Router] ページに移動します。
更新する BGP セッションを含む Cloud Router を選択します。
[ルーターの詳細] ページで、更新する BGP セッションを選択します。
[BGP セッションの詳細] ページで、
[編集] を選択します。[ルート] で、[カスタムルートの作成] を選択します。
[Cloud Router に表示されるすべてのサブネットにアドバタイズする] チェックボックスがオンになっている場合は、チェックボックスをクリアします。
[カスタムルートの追加] を選択して、アドバタイズされたルートを追加します。
カスタム アドバタイズ ルートを構成します。
ソース: サブネットの事前定義リストを選択します。リストには、Cloud Router で使用可能なすべてのサブネットが含まれます。表示されるリストは、VPC ネットワークの動的ルーティング モードによって変わります。
IP アドレス範囲: アドバタイズされるサブネットの IP 範囲を変更できます。たとえば、Cloud Router がサブネットの一部をアドバタイズするように、より狭い範囲を指定できます。IPv4 アドレス範囲に加えて、IPv6 カスタム IP アドレス範囲を指定できます。ただし、IPv6 範囲は、この BGP セッションで IPv6 交換を有効にした場合にのみアドバタイズされます。
サブネット マスクのない IP アドレスのプレフィックスを指定すると、IPv4 の場合は
/32
サブネット マスク、IPv6 の場合は/128
サブネット マスクとして解釈されます。使用できるカスタム学習ルートの最大数については、上限をご覧ください。説明: このカスタム アドバタイズ ルートの目的がわかるような説明を追加し、[完了] をクリックします。
カスタムルートの追加が完了したら、[保存] をクリックします。
gcloud
開始する前に、アドバタイズするサブネットの IP 範囲を記録します。
update-bgp-peer
コマンドを実行します。アドバタイズするサブネット IP 範囲を指定するには、--set-advertisement-ranges
フラグを使用します。IP 範囲を既存のアドバタイズに追加するには、--add-advertisement-ranges
フラグを使います。
--set-advertisement-ranges
フラグを使用します。既存のカスタム アドバタイズはすべて置換されます。gcloud compute routers update-bgp-peer ROUTER_NAME \ --peer-name=PEER_NAME \ --advertisement-mode=custom \ --set-advertisement-ranges=ADVERTISED_IP_RANGES
次のように置き換えます。
ROUTER_NAME
: Cloud Router の名前PEER_NAME
: BGP ピアの名前- カスタム IPv6 範囲を追加する場合は
--enable-ipv6
フラグを追加します。この操作は省略可能です。 ADVERTISED_IP_RANGES
: IP アドレス範囲の新しい配列の内容。IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。サブネット マスクのない IP アドレスのプレフィックスを指定すると、IPv4 の場合は
/32
サブネット マスク、IPv6 の場合は/128
サブネット マスクとして解釈されます。使用できるカスタム学習ルートの最大数については、上限をご覧ください。
次の例では、
192.0.2.0/24
、198.51.100.0/24
、2001:db8:abcd:12::/64
サブネットをアドバタイズするように、my-router
Cloud Router のmy-bgp-session
BGP セッションを更新します。既存のカスタム アドバタイズ ルートは置き換えられます。gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --enable-ipv6 \ --advertisement-mode=custom \ --set-advertisement-ranges='192.0.2.0/24,198.51.100.0/24,2001:db8:abcd:12::/64'
次の例では、
--add-advertisement-ranges
フラグを使用して IP 範囲を既存のアドバタイズに追加します。gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --add-advertisement-ranges='203.0.113.0/24'
次の例は、
2001:db8:abcd:12::/64
カスタム IPv6 アドレスを Cloud Router のアドバタイズ ルートに追加します。gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --enable-ipv6 \ --add-advertisement-ranges='2001:db8:abcd:12::/64'
BGP セッションのアドバタイズ グループにすべてのサブネットが含まれている場合、Cloud Router が追加のサブネットをアドバタイズしないように、このグループを削除します。アドバタイズ グループは、Cloud Router が動的にアドバタイズする Google 定義の IP 範囲です。すべてのアドバタイズ グループのリストについては、Google の SDK ドキュメントの set-advertisement-groups
フラグをご覧ください。
次の例では、
describe
コマンドを使用して、Cloud Router のアドバタイズ ルートを確認します。gcloud compute routers describe my-router
関連する BGP セッションに
all_subnets
値のadvertisedGroups
フィールドが含まれている場合は、このフィールドを削除します。次の例では、--remove-advertisement-groups
フラグを指定したupdate
コマンドを使用しています。gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --remove-advertisement-groups=all_subnets
API
routers.patch メソッドを使用して bgpPeers[]
フィールドを更新します。
bgpPeers[]
フィールドには、BGP ピアの配列を指定します。このフィールドに PATCH
を実行すると、BGP ピアの既存の配列がリクエストに含まれる新しい配列で上書きされます。
GET
リクエストを送信して、ルーターの BGP ピアの現在の配列を取得します。詳しくは、BGP セッション構成の表示をご覧ください。BGP ピアの新しい配列を指定して
PATCH
リクエストを送信します。カスタム アドバタイズ ルートを追加する BGP ピアごとに、次の操作を行います。bgpPeers[].advertisedIpRanges[]
フィールドにサブネット IP アドレス範囲のアドバタイズを追加します。サブネット マスクのない IP アドレスのプレフィックスを指定すると、IPv4 の場合は
/32
サブネット マスク、IPv6 の場合は/128
サブネット マスクとして解釈されます。使用できるカスタム学習ルートの最大数については、上限をご覧ください。bgpPeers[].advertisedGroups[]
フィールドに現在ALL_SUBNETS
値が指定されている場合は、この値を削除して、BGP セッションが追加のサブネットをアドバタイズしないようにします。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME { "bgpPeers": [ BGP_PEERS ] }
次のように置き換えます。
PROJECT_ID
: Cloud Router が含まれるプロジェクトREGION
: Cloud Router が配置されているリージョンROUTER_NAME
: Cloud Router の名前BGP_PEERS
: BGP ピアの新しい配列の内容
次の例では、カスタム アドバタイズ ルートを持つ 2 つの BGP ピアが含まれています。
{ "name": "peer-1", "interfaceName": "if-peer-1", "ipAddress": "169.254.10.1", "peerIpAddress": "169.254.10.2", "peerAsn": 64512, "enableIpv6": true, "advertisedRoutePriority": 100, "advertiseMode": "CUSTOM", "advertisedGroups": [], "advertisedIpRanges": [ { "range": "192.0.2.0/24", "description": "First example subnet" }, { "range": "198.51.100.0/24", "description": "Second example subnet" }, { "range": "2001:db8:abcd:12::/64", "description: "Third example subnet" } ] }, { "name": "peer-2", "interfaceName": "if-peer-2", "ipAddress": "169.254.20.1", "peerIpAddress": "169.254.20.2", "peerAsn": 64513, "advertisedRoutePriority": 100, "advertiseMode": "CUSTOM", "advertisedGroups": [], "advertisedIpRanges": [ { "range": "203.0.113.0/24", "description": "Fourth example subnet" } ] }
次のステップ
Cloud Router の構成、その BGP セッション、Cloud Router がアドバタイズしているルートを表示する。Cloud Router の詳細を表示するをご覧ください。
カスタム アドバタイズ ルートに関する問題を解決する。トラブルシューティングをご覧ください。