google_compute_router_peer

BGP information that must be configured into the routing stack to establish BGP peering. This information must specify the peer ASN and either the interface name, IP address, or peer IP address. Please refer to RFC4273.

To get more information about RouterBgpPeer, see:

Example Usage - Router Peer Basic

resource "google_compute_router_peer" "peer" {
  name                      = "my-router-peer"
  router                    = "my-router"
  region                    = "us-central1"
  peer_asn                  = 65513
  advertised_route_priority = 100
  interface                 = "interface-1"
}
## Example Usage - Router Peer Disabled
resource "google_compute_router_peer" "peer" {
  name                      = "my-router-peer"
  router                    = "my-router"
  region                    = "us-central1"
  peer_ip_address           = "169.254.1.2"
  peer_asn                  = 65513
  advertised_route_priority = 100
  interface                 = "interface-1"
  enable                    = false
}
## Example Usage - Router Peer Bfd
resource "google_compute_router_peer" "peer" {
  name                      = "my-router-peer"
  router                    = "my-router"
  region                    = "us-central1"
  peer_ip_address           = "169.254.1.2"
  peer_asn                  = 65513
  advertised_route_priority = 100
  interface                 = "interface-1"

  bfd {
    min_receive_interval        = 1000
    min_transmit_interval       = 1000
    multiplier                  = 5
    session_initialization_mode = "ACTIVE"
  }
}
Open in Cloud Shell

Example Usage - Router Peer Router Appliance

resource "google_compute_network" "network" {
  name                    = "my-router-net"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "subnetwork" {
  name          = "my-router-sub"
  network       = google_compute_network.network.self_link
  ip_cidr_range = "10.0.0.0/16"
  region        = "us-central1"
}

resource "google_compute_address" "addr_intf" {
  name         = "my-router-addr-intf"
  region       = google_compute_subnetwork.subnetwork.region
  subnetwork   = google_compute_subnetwork.subnetwork.id
  address_type = "INTERNAL"
}

resource "google_compute_address" "addr_intf_redundant" {
  name         = "my-router-addr-intf-red"
  region       = google_compute_subnetwork.subnetwork.region
  subnetwork   = google_compute_subnetwork.subnetwork.id
  address_type = "INTERNAL"
}

resource "google_compute_address" "addr_peer" {
  name         = "my-router-addr-peer"
  region       = google_compute_subnetwork.subnetwork.region
  subnetwork   = google_compute_subnetwork.subnetwork.id
  address_type = "INTERNAL"
}

resource "google_compute_instance" "instance" {
  name           = "router-appliance"
  zone           = "us-central1-a"
  machine_type   = "e2-medium"
  can_ip_forward = true

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network_ip = google_compute_address.addr_peer.address
    subnetwork = google_compute_subnetwork.subnetwork.self_link
  }
}

resource "google_network_connectivity_hub" "hub" {
  name = "my-router-hub"
}

resource "google_network_connectivity_spoke" "spoke" {
  name     = "my-router-spoke"
  location = google_compute_subnetwork.subnetwork.region
  hub      = google_network_connectivity_hub.hub.id

  linked_router_appliance_instances {
    instances {
      virtual_machine = google_compute_instance.instance.self_link
      ip_address      = google_compute_address.addr_peer.address
    }
    site_to_site_data_transfer = false
  }
}

resource "google_compute_router" "router" {
  name    = "my-router-router"
  region  = google_compute_subnetwork.subnetwork.region
  network = google_compute_network.network.self_link
  bgp {
    asn = 64514
  }
}

resource "google_compute_router_interface" "interface_redundant" {
  name               = "my-router-intf-red"
  region             = google_compute_router.router.region
  router             = google_compute_router.router.name
  subnetwork         = google_compute_subnetwork.subnetwork.self_link
  private_ip_address = google_compute_address.addr_intf_redundant.address
}

resource "google_compute_router_interface" "interface" {
  name                = "my-router-intf"
  region              = google_compute_router.router.region
  router              = google_compute_router.router.name
  subnetwork          = google_compute_subnetwork.subnetwork.self_link
  private_ip_address  = google_compute_address.addr_intf.address
  redundant_interface = google_compute_router_interface.interface_redundant.name
}

resource "google_compute_router_peer" "peer" {
  name                      = "my-router-peer"
  router                    = google_compute_router.router.name
  region                    = google_compute_router.router.region
  interface                 = google_compute_router_interface.interface.name
  router_appliance_instance = google_compute_instance.instance.self_link
  peer_asn                  = 65513
  peer_ip_address           = google_compute_address.addr_peer.address
}

Example Usage - Router Peer md5 authentication key

resource "google_compute_router_peer" "foobar" {
    name                      = "%s-peer"
    router                    = google_compute_router.foobar.name
    region                    = google_compute_router.foobar.region
    peer_asn                  = 65515
    advertised_route_priority = 100
    interface                 = google_compute_router_interface.foobar.name
    peer_ip_address           = "169.254.3.2"
    md5_authentication_key {
      name = "%s-peer-key"
      key = "%s-peer-key-value"
    }
  }
  

Argument Reference

The following arguments are supported:


The advertised_ip_ranges block supports:

The bfd block supports:

The md5_authentication_key block supports:

Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

Timeouts

This resource provides the following Timeouts configuration options:

Import

RouterBgpPeer can be imported using any of these accepted formats:

In Terraform v1.5.0 and later, use an import block to import RouterBgpPeer using one of the formats above. For example:

import {
  id = "projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}}"
  to = google_compute_router_peer.default
}

When using the terraform import command, RouterBgpPeer can be imported using one of the formats above. For example:

$ terraform import google_compute_router_peer.default projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}}
$ terraform import google_compute_router_peer.default {{project}}/{{region}}/{{router}}/{{name}}
$ terraform import google_compute_router_peer.default {{region}}/{{router}}/{{name}}
$ terraform import google_compute_router_peer.default {{router}}/{{name}}

User Project Overrides

This resource supports User Project Overrides.