カスタム IP 範囲のアドバタイズ

Cloud Router でカスタム アドバタイズ モードを使用するか、Cloud Router の Border Gateway Protocol(BGP)セッションでカスタム アドバタイズ モードを使用すると、Virtual Private Cloud(VPC)ネットワークのサブネット IP アドレス範囲以外の IP アドレス範囲をアドバタイズできます。たとえば、VPC ネットワークに接続している他の VPC ネットワークの IP アドレス範囲の外部 IP アドレス範囲、任意の内部 IP アドレス範囲、内部 IP アドレスをアドバタイズできます。VPC ネットワークは、VPC ネットワーク ピアリングまたは Network Connectivity Center の VPC スポークを介して接続される場合があります。

Cloud Router がデフォルトのアドバタイズ モードを使用するように構成されている場合、Cloud Router と同じ VPC ネットワークの一部であるサブネットのルートのみをアドバタイズします。このモードでは、Cloud Router は、VPC ネットワーク ピアリングや Network Connectivity Center の VPC スポークによって学習されたルートなど、他の VPC ネットワークから動的に学習されたルートと静的ルートを除外します。

Cloud Router の作成時または BGP セッションの構成時にカスタム アドバタイズ ルートを指定する場合は、Cloud Router を作成するまたは BGP セッションを確立するをご覧ください。

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

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

コンソール

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

    [Cloud Router] に移動

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

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

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

  5. [Cloud Router に表示されるすべてのサブネットにアドバタイズする] チェックボックスを選択して、Cloud Router に表示されるサブネットのアドバタイズを継続します。このオプションを有効にすると、デフォルトのアドバタイズ モードでの Cloud Router の動作が模倣されます。

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

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

    • ソース: [カスタム IP 範囲] を選択します。
    • IP アドレス範囲: CIDR 表記でカスタム IP 範囲を指定します。IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。
    • 説明: このカスタム アドバタイズ ルートの目的がわかるような説明を追加し、[完了] をクリックします。
  8. カスタム アドバタイズ ルートの追加が完了したら、[保存] をクリックします。

gcloud

update コマンドを実行します。カスタム IP 範囲を指定するには、--set-advertisement-ranges フラグまたは --add-advertisement-ranges フラグを使用します。

  1. --set-advertisement-ranges フラグを使用します。既存のカスタム アドバタイズはすべて置換されます。

    gcloud compute routers update ROUTER_NAME \
       --project=PROJECT_ID \
       --advertisement-mode custom \
       --set-advertisement-groups=ADVERTISED_GROUPS \
       --set-advertisement-ranges=ADVERTISED_IP_RANGES
    

    次のように置き換えます。

    • ROUTER_NAME: Cloud Router の名前
    • PROJECT_ID: Cloud Router が含まれるプロジェクト
    • ADVERTISED_GROUPS: Cloud Router が動的にアドバタイズする Google 定義のグループ

      有効な値は all_subnets です。VPC ネットワークの動的ルーティング モードに基づいてサブネットをアドバタイズします(デフォルトのアドバタイズ モードに類似しています)。

    • ADVERTISED_IP_RANGES: IP アドレス範囲の新しい配列の内容

      IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。

    次の例では、my-router Cloud Router を更新して、すべてのサブネットとカスタム IP 範囲(1.2.3.46.7.0.0/16)をアドバタイズします。

    gcloud compute routers update my-router \
       --advertisement-mode custom \
       --set-advertisement-groups all_subnets \
       --set-advertisement-ranges 1.2.3.4,6.7.0.0/16
    

    次の例では、my-router Cloud Router を更新して、すべてのサブネットとデフォルトの IPv6 範囲をアドバタイズします。

    gcloud compute routers update my-router \
       --advertisement-mode custom \
       --set-advertisement-groups all_subnets \
       --set-advertisement-ranges ::/0
    

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

    --set-advertisement-groups フラグには、Cloud Router が動的にアドバタイズする Google 定義のグループを指定できます。--set-advertisement-groups フラグを削除して、サブネット アドバタイズを除外できます。すべてのアドバタイズ グループのリストについては、Google の SDK ドキュメントの set-advertisement-groups フラグをご覧ください。

  2. --add-advertisement-ranges フラグを使用します。Cloud Router のアドバタイズ モードがすでに custom に設定されている必要があります。

    gcloud compute routers update ROUTER_NAME \
       --add-advertisement-ranges=ADVERTISED_IP_RANGES
    

    次のように置き換えます。

    • ROUTER_NAME: Cloud Router の名前
    • ADVERTISED_IP_RANGES: IP アドレス範囲の新しい配列の内容

    次の例は、1.2.3.5 カスタム IP アドレスを Cloud Router のアドバタイズに追加します。

    gcloud compute routers update my-router \
       --add-advertisement-ranges 1.2.3.5
    

    次の例は、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 範囲をアドバタイズします。

API

routers.patch メソッドを使用して、bgp.advertisedGroups[] フィールドと bgp.advertisedIpRanges[] フィールドを更新します。

bgp.advertisedGroups[] フィールドと bgp.advertisedIpRanges[] フィールドには、アドバタイズされたグループと IP アドレス範囲の配列が格納されます。これらのフィールドに PATCH を実行すると、既存の配列がリクエスト内の新しい配列で上書きされます。

  1. GET リクエストを送信して、ルーターでアドバタイズされたグループと IP アドレス範囲の現在の配列を取得します。詳しくは、BGP セッション構成の表示をご覧ください。

  2. アドバタイズされたグループと IP アドレス範囲の新しい配列を指定して、PATCH リクエストを送信します。前の手順の GET リクエストで取得した配列を使用して、ルーターに必要なグループまたは IP アドレス範囲を追加します。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgp": {
        "advertisedGroups": [
        "ADVERTISED_GROUPS"
       ],
        "advertisedIpRanges": [
        ADVERTISED_IP_RANGES
       ]
     }
    }
    

    次のように置き換えます。

    • PROJECT_ID: Cloud Router が含まれるプロジェクト
    • REGION: Cloud Router が配置されているリージョン
    • ROUTER_NAME: Cloud Router の名前
    • ADVERTISED_GROUPS: Cloud Router が動的にアドバタイズする Google 定義のグループ

      有効な値は ALL_SUBNETS です。VPC ネットワークの動的ルーティング モードに基づいてサブネットをアドバタイズします(デフォルトのアドバタイズに類似しています)。

    • ADVERTISED_IP_RANGES: IP アドレス範囲の新しい配列の内容

      IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。

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

        {
          "range": "1.2.3.4",
          "description": "First example range"
        },
        {
          "range": "6.7.0.0/16",
          "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 に表示されるすべてのサブネットにアドバタイズする] チェックボックスを選択して、Cloud Router に表示されるサブネットのアドバタイズを継続します。このオプションを有効にすると、Cloud Router のデフォルトの動作と同じ結果になります。

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

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

    • ソース: [カスタム IP 範囲] を選択します。
    • IP アドレス範囲: CIDR 表記でカスタム IP 範囲を指定します。IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。
    • 説明: このルート アドバタイズの目的がわかるような説明を追加し、[完了] をクリックします。
  9. カスタムルートの追加が完了したら、[保存] をクリックします。

gcloud

update-bgp-peer コマンドを実行します。カスタム IP 範囲を指定するには、--set-advertisement-ranges フラグまたは --add-advertisement-ranges フラグを使用します。

  1. --set-advertisement-ranges フラグを使用します。既存のカスタム アドバタイズはすべて置換されます。

    gcloud compute routers update-bgp-peer ROUTER_NAME \
        --peer-name=PEER_NAME \
        --advertisement-mode custom \
        --set-advertisement-groups=ADVERTISED_GROUPS \
        --set-advertisement-ranges=ADVERTISED_IP_RANGES
    

    次のように置き換えます。

    • ROUTER_NAME: Cloud Router の名前
    • PEER_NAME: BGP ピアの名前
    • カスタム IPv6 範囲を追加する場合は --enable-ipv6 フラグを追加します。この操作は省略可能です。
    • ADVERTISED_GROUPS: Cloud Router が動的にアドバタイズする Google 定義のグループ

      有効な値は all_subnets です。VPC ネットワークの動的ルーティング モードに基づいてサブネットをアドバタイズします(デフォルトのアドバタイズに類似しています)。

    • ADVERTISED_IP_RANGES: IP アドレス範囲の新しい配列の内容

      IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。

    次の例では、my-router Cloud Router の my-bgp-session BGP セッションを更新して、すべてのサブネットとカスタム IP 範囲(1.2.3.46.7.0.0/162001:db8:abcd:12::/64)をアドバタイズします。

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --enable-ipv6 \
        --advertisement-mode custom \
        --set-advertisement-groups all_subnets \
        --set-advertisement-ranges 1.2.3.4,6.7.0.0/16,2001:db8:abcd:12::/64
    

    --set-advertisement-groups フラグには、BGP セッションが動的にアドバタイズする Google 定義のグループを指定できます。--add-advertisement-groups フラグを削除して、サブネット アドバタイズを除外できます。すべてのアドバタイズ グループのリストについては、Google の SDK ドキュメントの set-advertisement-groups フラグをご覧ください。

  2. --add-advertisement-ranges フラグを使用します。Cloud Router のアドバタイズ モードがすでに custom に設定されている必要があります。

    gcloud compute routers update-bgp-peer ROUTER_NAME \
        --peer-name=PEER_NAME \
        --add-advertisement-ranges=ADVERTISED_IP_RANGES
    

    次のように置き換えます。

    • ROUTER_NAME: Cloud Router の名前
    • PEER_NAME: BGP ピアの名前
    • ADVERTISED_IP_RANGES: IP アドレス範囲の新しい配列の内容

      IPv4 と IPv6 の両方のカスタム IP 範囲を指定できます。ただし、IPv6 カスタム範囲は、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。

    次の例は、1.2.3.5 カスタム IP アドレスを Cloud Router のアドバタイズに追加します。

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --add-advertisement-ranges 1.2.3.5
    

    次の例は、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
    

API

routers.patch メソッドを使用して bgpPeers[] フィールドを更新します。

bgpPeers[] フィールドには、BGP ピアの配列を指定します。このフィールドに PATCH を実行すると、BGP ピアの既存の配列がリクエストに含まれる新しい配列で上書きされます。

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

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

    • 必要な IP アドレス範囲のアドバタイズを bgpPeers[].advertisedIpRanges[] フィールドに追加します。
    • 必要なグループのアドバタイズを bgpPeers[].advertisedGroups[] フィールドに追加します。

      有効な値は ALL_SUBNETS です。VPC ネットワークの動的ルーティング モードに基づいてサブネットをアドバタイズします(デフォルトのアドバタイズ モードに類似しています)。

      これらの値の詳細については、API ドキュメントの routers.patch をご覧ください。

    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": ["ALL_SUBNETS"],
          "advertisedIpRanges": [
            {
              "range": "1.2.3.4",
              "description": "First example range"
            },
            {
              "range": "6.7.0.0/16",
              "description": "Second example range"
            },
            {
              "range": "2001:db8:abcd:12::/64",
              "description: "Third example range"
            }
          ]
        },
        {
          "name": "peer-2",
          "interfaceName": "if-peer-2",
          "ipAddress": "169.254.20.1",
          "peerIpAddress": "169.254.20.2",
          "peerAsn": 64513,
          "advertisedRoutePriority": 100,
          "advertiseMode": "CUSTOM",
          "advertisedIpRanges": [
            {
              "range": "192.168.10.0/24",
              "description": "Fourth example range"
            }
          ]
        }
    

次のステップ