Configure the BGP identifier range for a Cloud Router

Sometimes referred to as a router ID, a Border Gateway Protocol (BGP) identifier is used to uniquely identify a Cloud Router in a network.

By convention, in Google Cloud, a Cloud Router uses the IPv4 peering address of one its IPv4 BGP sessions as the BGP identifier. However, for IPv6 BGP peering, a Cloud Router requires an explicit 32-bit BGP identifier in order to host IPv6 BGP sessions.

When you create a Cloud Router, you have the option to specify a range of allowed BGP identifiers for the Cloud Router.

Typically, you don't need to assign or modify the BGP identifier range. Google Cloud automatically assigns a BGP identifier range to a Cloud Router the first time that you create an interface on Cloud Router for an IPv6 BGP session.

However, for example, you might want to specify a special BGP identifier range if you want tighter control over the values used for your BGP identifiers. Alternatively, you might need to change the range if the automatically assigned range overlaps with values you want to use for an IPv4 BGP session.

Before you begin

gcloud

If you want to use the command-line examples in this guide, do the following:

  1. Install or update to the latest version of the Google Cloud CLI.
  2. Set a default region and zone.

API

If you want to use the API examples in this guide, set up API access.

Assign a BGP identifier range to Cloud Router

The procedures in this section describe how to assign a BGP identifier range manually to a Cloud Router.

Console

  1. In the Google Cloud console, go to the Create a Cloud Router page.

    Go to Create a Cloud Router

  2. Specify the Cloud Router's details:

    • Name: The name of the Cloud Router. This name is displayed in the Google Cloud console and is used by the Google Cloud CLI to reference the Cloud Router—for example, my-router.
    • Optional: Description A description of the Cloud Router.
    • Network: The VPC network that contains the instances that you want to reach—for example, my-network.
    • Region: The region where you want to locate the Cloud Router—for example, asia-east1.
    • Google ASN: Any private ASN (64512-65534, 4200000000-4294967294) that you aren't already using in the on-premises network. Cloud Router requires that you use a private ASN, but your on-premises ASN can be public or private.

    • BGP peer keepalive interval: The interval between two successive BGP keepalive messages that are sent to the peer router. This value must be an integer between 20 and 60 that specifies the number of seconds for the interval. The default is 20 seconds. For more information, see Manage BGP timers.
    • BGP identifier: Optional. The BGP identifier, sometimes called a router ID, that uniquely identifies a Cloud Router in a network. If omitted, Cloud Routers with IPv4 BGP sessions use one of the IPv4 BGP addresses as the BGP identifier, and adding the first IPv6 interface to this Cloud Router populates the field automatically.

      For more information, see Configure the BGP identifier range for a Cloud Router.

  3. Optional: To specify custom advertised routes, go to the Advertised routes section. For more information about the following steps, see Custom advertisement mode.
    1. To specify custom Routes, select Create custom routes.
    2. Choose whether to advertise the subnets visible to the Cloud Router. Enabling this option mimics the Cloud Router's default behavior.
    3. To add an advertised route, select Add a custom route, and then configure it.
  4. To save your settings and create a Cloud Router, click Create. Your new Cloud Router appears on the Cloud Router listing page. To view its details and to configure a BGP session, select it.

gcloud

To assign a BGP identifier range when you create the Cloud Router, use the --bgp-identifier-range option.

gcloud compute routers create ROUTER_NAME \
    --bgp-identifier-range=BGP_IDENTIFIER_RANGE

Replace BGP_IDENTIFIER_RANGE with a link-local IPv4 range from 169.254.0.0/16 with a subnet mask prefix length of at most /30. The range must not overlap with any existing IPv4 Cloud Router interface on or BGP identifier ranges of Cloud Routers in the same region.

API

Use the routers.insert method:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgp": {
         "asn": "ASN_NUMBER",
         "keepaliveInterval": KEEPALIVE_INTERVAL,
         "identifierRange": BGP_IDENTIFIER_RANGE
      },
      "name": "ROUTER_NAME",
      "network": "NETWORK"
     }

Replace BGP_IDENTIFIER_RANGE with a link-local IPv4 range from 169.254.0.0/16 with a subnet mask prefix length of at most /30. The range must not overlap with any existing IPv4 Cloud Router interface or a BGP identifier range of a Cloud Router in the same region.

Modify the BGP identifier range

The procedures in this section describe how to modify an existing BGP identifier range on a Cloud Router.

gcloud

To change the BGP identifier range, run the following command.

gcloud compute routers update ROUTER_NAME \
    --bgp-identifier-range=BGP_IDENTIFIER_RANGE

Replace BGP_IDENTIFIER_RANGE with a link-local IPv4 range from 169.254.0.0/16 with a subnet mask prefix length of at most /30. The range must not overlap with any existing IPv4 BGP session or a BGP identifier range of a Cloud Router in the same region.

API

Use the routers.patch method to update the bgp.identifierRange field:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgp": {
        "identifierRange": BGP_IDENTIFIER_RANGE
     }
   }

Replace BGP_IDENTIFIER_RANGE with a link-local IPv4 range from 169.254.0.0/16 with a subnet mask prefix length of at most /30. The range must not overlap with any existing IPv4 BGP session or a BGP identifier range of a Cloud Router in the same region.

What's next