特定の 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

このガイドのコマンドラインの例を使用する場合は、次の操作を行います。

  1. Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
  2. デフォルトのリージョンとゾーンを設定します。

API

このガイドの API の例を使用する場合は、API アクセスを設定します。

Cloud Router のカスタム アドバタイズ ルートを指定する

既存の Cloud Router でカスタム アドバタイズ ルートを指定するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで [Cloud Router] ページに移動します。

    [Cloud Router] に移動

  2. 更新する Cloud Router を選択します。

  3. [ルーターの詳細] ページで、[ 編集] をクリックします。

  4. [アドバタイズされたルート] セクションの [ルート] で、[カスタムルートの作成] を選択します。

  5. [Cloud Router に表示されるすべてのサブネットにアドバタイズする] チェックボックスがオンになっている場合は、チェックボックスをクリアします。

  6. [カスタムルートの追加] を選択して、カスタム アドバタイズ ルートを追加します。

  7. カスタム アドバタイズ ルートを構成します。

    • ソース: サブネットの事前定義リストを選択します。Cloud Router は、使用可能なすべてのサブネットを表示します。表示されるリストは、VPC ネットワークの動的ルーティング モードによって変わります。
    • IP アドレス範囲: アドバタイズされるサブネットの IP 範囲を変更できます。たとえば、Cloud Router がサブネットの一部をアドバタイズするように、より狭い範囲を指定できます。IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。
    • 説明: このカスタム アドバタイズ ルートの目的がわかるような説明を追加し、[完了] をクリックします。
  8. カスタム アドバタイズ ルートの追加が完了したら、[保存] をクリックします。

gcloud

開始する前に、アドバタイズするサブネットの IP 範囲を記録します。

update コマンドを実行します。アドバタイズするサブネット IP 範囲を指定するには、--set-advertisement-ranges フラグを使用します。IP 範囲を既存のアドバタイズに追加するには、--add-advertisement-ranges フラグを使います。

  1. --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 セッションでのみアドバタイズされます。

    次の例では、10.0.0.0/24 サブネットと 10.0.10.0/24 サブネットをアドバタイズするように my-router Cloud Router を更新します。既存のカスタム アドバタイズ ルートは置き換えられます。

    gcloud compute routers update my-router \
       --advertisement-mode custom \
       --set-advertisement-ranges 10.0.0.0/24,10.0.10.0/24
    

    次の例は、10.0.0.0/2410.0.10.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 10.0.0.0/24,10.0.10.0/24,2001:db8:abcd:12::/64
    

    Cloud Router は、IPv6 が有効になっている BGP セッションでのみ IPv6 範囲をアドバタイズします。

  2. 次の例では、--add-advertisement-ranges フラグを使用して IP 範囲を既存のアドバタイズに追加します。

    gcloud compute routers update my-router \
       --add-advertisement-ranges 10.0.20.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 フラグをご覧ください。

  1. 次の例では、describe コマンドを使用して、Cloud Router のアドバタイズ ルートを確認します。

    gcloud compute routers describe my-router
    
  2. 出力に 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 を実行すると、既存の配列がリクエスト内の新しい配列で上書きされます。

  1. GET リクエストを送信して、ルーターでアドバタイズされたグループと IP 範囲の現在の配列を取得します。詳細については、Cloud Router のステータスとルートの表示をご覧ください。

  2. アドバタイズされたグループと 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 交換を有効にした場合にのみ、アドバタイズされます。

    次の例では、2 つのサブネットの IPv4 アドレス範囲と 1 つの IPv6 アドレス範囲が含まれています。

        {
          "range": "10.0.0.0/24",
          "description": "First example range"
        },
        {
          "range": "10.0.10.0/24",
          "description": "Second example range"
        },
        {
          "range": "2001:db8:abcd:12::/64",
          "description: "Third example range"
        }
    

BGP セッションのカスタム アドバタイズ ルートを指定する

既存の BGP セッションでカスタム アドバタイズ ルートを指定するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで [Cloud Router] ページに移動します。

    [Cloud Router] に移動

  2. 更新する BGP セッションを含む Cloud Router を選択します。

  3. [ルーターの詳細] ページで、更新する BGP セッションを選択します。

  4. [BGP セッションの詳細] ページで、 [編集] を選択します。

  5. [ルート] で、[カスタムルートの作成] を選択します。

  6. [Cloud Router に表示されるすべてのサブネットにアドバタイズする] チェックボックスがオンになっている場合は、チェックボックスをクリアします。

  7. [カスタムルートの追加] を選択して、アドバタイズされたルートを追加します。

  8. カスタム アドバタイズ ルートを構成します。

    • ソース: サブネットの事前定義リストを選択します。Cloud Router は、使用可能なすべてのサブネットを表示します。表示されるリストは、VPC ネットワークの動的ルーティング モードによって変わります。
    • IP アドレス範囲: アドバタイズされるサブネットの IP 範囲を変更できます。たとえば、Cloud Router がサブネットの一部をアドバタイズするように、より狭い範囲を指定できます。IPv4 アドレス範囲に加えて、IPv6 カスタム IP アドレス範囲を指定できます。ただし、IPv6 範囲は、この BGP セッションで IPv6 交換を有効にした場合にのみ、アドバタイズされます。
    • 説明: このカスタム アドバタイズ ルートの目的がわかるような説明を追加し、[完了] をクリックします。
  9. カスタムルートの追加が完了したら、[保存] をクリックします。

gcloud

開始する前に、アドバタイズするサブネットの IP 範囲を記録します。

update-bgp-peer コマンドを実行します。アドバタイズするサブネット IP 範囲を指定するには、--set-advertisement-ranges フラグを使用します。IP 範囲を既存のアドバタイズに追加するには、--add-advertisement-ranges フラグを使います。

  1. --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 セッションでのみアドバタイズされます。

    次の例では、10.0.0.0/2410.0.10.0/242001: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 10.0.0.0/24,10.0.10.0/24
    
  2. 次の例では、--add-advertisement-ranges フラグを使用して IP 範囲を既存のアドバタイズに追加します。

    gcloud compute routers update-bgp-peer my-router \
       --peer-name my-bgp-session \
       --add-advertisement-ranges 10.0.20.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 フラグをご覧ください。

  1. 次の例では、describe コマンドを使用して、Cloud Router のアドバタイズ ルートを確認します。

    gcloud compute routers describe my-router
    
  2. 関連する 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 ピアの既存の配列がリクエストに含まれる新しい配列で上書きされます。

  1. GET リクエストを送信して、ルーターの BGP ピアの現在の配列を取得します。詳しくは、BGP セッション構成の表示をご覧ください。

  2. BGP ピアの新しい配列を指定して PATCH リクエストを送信します。カスタム アドバタイズ ルートを追加する BGP ピアごとに、次の操作を行います。

    • bgpPeers[].advertisedIpRanges[] フィールドにサブネット IP アドレス範囲のアドバタイズを追加します。
    • 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": "10.0.0.0/24",
              "description": "First example subnet"
            },
            {
              "range": "10.0.10.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": "10.0.20.0/24",
              "description": "Fourth example subnet"
            }
          ]
        }
    

次のステップ