There are two important routing entities to understand in GCP
- VPC native routing service
- GCP Cloud Router
VPC Native Routing Service
When VPC is created, GCP automatically deploys a routing service inside the VPC. This routing service or daemon is similar to what you see in any other public cloud such as AWS and Azure. It is a hidden service that performs the L3 routing between different subnets inside the same VPC.
GCP Cloud Router (GCR)
GCP Cloud Router is another service that is instantiated when GCP needs to connect to on-premise data centers or branches. GCP Cloud Router (CR) runs as a managed service.
CR is similar to a traditional router but it only provides control plane functionality. It learns routes from on-prem and supports eBGP. Notice OSPF is pretty much dead in the Cloud so no cloud provider supports OSPF.
The actual data plane is inside the GCP VM. That means every VM is doing host routing and all the route table lives inside the VM itself.
CR is google managed process. GCP will re-spin the cloud router. It is like a distributed router. GCP will bring that backup.
CR Routing Modes
Two routing mode are available
- Regional Routing
Only learns in the specific region. For example, CR West only learns routes from the West region - Global Routing
Global routing allows picking all subnets in all regions. For example, subnets in the west and east. You deploy CR in a specific region and then it learns globally
Global vs Regional CR
In GCP LB is a regional construct. So if you are using LB, then it means use would use regional CR instead of Global CR.
Route Priority
Router Priority is controller via BGP attribute called MED. Standard MED is 1000. Local CR will have MED of 1000. Routes from other regions have a metric based on RTT added to the default MED value.