Skip to content

Chương 25: Cloud Router & BGP Internals — Control Plane của Dynamic Routing

Tại Sao Chương Này Quan Trọng

Mọi hệ thống hybrid connectivity trên GCP — dù là HA VPN, Dedicated Interconnect, Partner Interconnect, hay Router Appliance — đều cần Cloud Router để hoạt động. Cloud Router không phải là một router theo nghĩa truyền thống; nó không forward packet. Nó là BGP control plane — nơi các quyết định về route được đưa ra, và sau đó các route đó được lập trình vào Andromeda SDN để Andromeda thực hiện forwarding.

Điều này có nghĩa là: khi BGP session bị drop, packet forwarding không dừng ngay lập tức vì Andromeda vẫn còn route cũ trong bảng. Nhưng khi BGP không converge đúng — do ASN conflict, advertisement mode sai, hoặc BFD misconfiguration — routes sai sẽ propagate âm thầm, traffic sẽ đi đường vòng hoặc blackhole mà không có error log rõ ràng. Đây là lý do Cloud Router failures thường là "silent" và khó debug nếu không có mental model chính xác.

Chương này đi sâu vào bên trong Cloud Router: cách BGP sessions được thiết lập và duy trì, cách routes được advertise và nhận, cơ chế BFD để detect failures trong vài giây, và cách routing modes quyết định routes đi đến đâu trong multi-region architecture.


Mô Hình Tư Duy Cốt Lõi

Trước khi đọc chi tiết, hãy nắm ba điểm bản chất:

  1. Cloud Router là control plane, không phải datapath. Packet không đi qua Cloud Router. Cloud Router chỉ chạy BGP để học và advertise routes, sau đó "lập trình" các routes đó vào dynamic route table của VPC. Andromeda thực hiện forwarding dựa trên bảng route này.

  2. Mỗi Cloud Router là regional và gắn với một VPC. Không có global Cloud Router. Mỗi router hoạt động trong một region, quản lý BGP sessions với các peer trong region đó (hoặc region liền kề qua Interconnect). Tuy nhiên, routing mode của VPC quyết định liệu các routes học được có được propagate ra các regions khác hay không.

  3. BGP trên GCP là eBGP (external BGP), không phải iBGP. Cloud Router không chạy iBGP với các Cloud Router khác trong cùng VPC. Mỗi Cloud Router duy trì BGP sessions độc lập với các peer bên ngoài (on-prem routers, VPN gateways, Router Appliances). Routes giữa các Cloud Routers trong cùng VPC được propagate qua VPC control plane, không qua BGP.


Cấu Trúc Chương

chapter-25-cloud-router-bgp-internals/
├── index.md                                       ← file này
├── 01.cloud-router-architecture.md                ← Kiến trúc phân tán, control plane model, regional scope
├── 02.bgp-session-internals.md                    ← BGP FSM, OPEN/KEEPALIVE/UPDATE, eBGP vs iBGP, ASN, timers
├── 03.route-advertisement-import.md               ← Advertisement modes, subnet routes, custom routes, MED, best path
├── 04.bgp-route-policies.md                       ← BGP route policies CEL, import/export, BGP communities
├── 05.bfd-fast-failover.md                        ← BFD protocol mechanics, timers, dampening, BGP integration
├── 06.cloud-router-hybrid-connectivity.md         ← Cloud Router với Cloud VPN và Cloud Interconnect
├── 07.routing-modes.md                            ← Regional vs global routing modes, best path selection
└── 08.monitoring-troubleshooting.md               ← Monitoring BGP sessions, route debugging

Các Subtopic

1. Kiến Trúc Cloud Router — Distributed Control Plane

File nền tảng. Giải thích Cloud Router là gì ở tầng kiến trúc: không phải router vật lý, không phải VM — mà là một distributed BGP speaker chạy trong infrastructure của Google, tách biệt hoàn toàn khỏi data plane (Andromeda). File này xây dựng mental model đúng trước khi đi sâu vào BGP mechanics.

Nội dung chính:

  • Cloud Router là BGP speaker/responder — không forward packet
  • Kiến trúc phân tán: nhiều BGP task chạy trong cùng region, redundancy nội tại
  • Quan hệ giữa Cloud Router và Andromeda: BGP học route → Cloud Router lập trình vào VPC route table → Andromeda forward
  • Giới hạn thật: prefix quota, peer quota, session quota
  • Tại sao Cloud Router fail không lập tức gây mất traffic

2. BGP Session Internals — Cơ Chế Bên Trong

Deep dive vào BGP protocol layer: cách sessions được thiết lập từ IDLE đến ESTABLISHED, nội dung của OPEN/KEEPALIVE/UPDATE messages, tại sao GCP dùng link-local 169.254.x.x làm BGP peering address, eBGP vs iBGP trong bối cảnh GCP, ASN configuration và các conflict patterns.

Nội dung chính:

  • BGP FSM (Finite State Machine): 6 state từ IDLE đến ESTABLISHED
  • OPEN message: BGP version, ASN, hold time, BGP identifier
  • KEEPALIVE và hold timer: default 60/180s, tại sao tùy chỉnh quan trọng
  • UPDATE message: NLRI, path attributes, withdrawn routes
  • Link-local 169.254.x.x: tại sao GCP dùng, không cần allocate routable IP
  • eBGP (external BGP) — cơ chế duy nhất giữa Cloud Router và on-prem
  • Tại sao iBGP giữa Cloud Routers không được hỗ trợ
  • ASN: private range 64512-65534, 4-byte ASN, conflict scenarios
  • MD5 authentication: bảo vệ BGP session

3. Route Advertisement & Import — Điều Khiển Routes Đi Đâu Về Đâu

Phần trung tâm của chương: Cloud Router advertise những gì ra bên ngoài và nhận những gì từ bên ngoài. Giải thích advertisement modes (default vs custom), cách routes được import từ on-prem, custom learned routes, và cơ chế MED/best-path selection.

Nội dung chính:

  • Advertisement mode: router-level vs session-level, priority và override
  • Default mode: tự động advertise tất cả subnets, auto-update khi subnet thay đổi
  • Custom mode: full control, trade-off giữa flexibility và operational overhead
  • Route import từ on-prem: BGP-received routes → dynamic routes trong VPC
  • Custom learned routes: thay thế cho BGP khi không thể configure peer
  • MED (Multi-Exit Discriminator): cách Cloud Router dùng MED để chọn best path
  • Best path selection: legacy mode vs standard mode
  • Tại sao routes không được re-advertise mặc định

4. BGP Route Policies — Filtering & Modification với CEL

BGP route policies là cơ chế mới (và mạnh hơn) để kiểm soát routes: filter, modify attributes, set communities. Sử dụng Common Expression Language (CEL). File này giải thích cơ chế, giới hạn, và cách BGP communities hoạt động trong Cloud Router (với nhiều điểm khác biệt so với standard BGP).

Nội dung chính:

  • BGP route policies: import (inbound) vs export (outbound)
  • Common Expression Language (CEL): syntax, match conditions, actions
  • Named sets: tập hợp prefixes/ASNs để match
  • Fail-open model: route pass nếu không có policy nào explicitly drop
  • BGP communities: thêm/xóa, không re-advertise, well-known community limitations
  • Extended communities: không được hỗ trợ
  • Giới hạn: 5000 prefix limit áp dụng trước khi policies evaluate
  • Ứng dụng thực tế: chặn routes từ on-prem không nên vào VPC

5. BFD — Fast Failure Detection

BFD (Bidirectional Forwarding Detection) là cơ chế phát hiện failure trong vài giây, thay vì chờ BGP hold timer hết (60-180 giây). File này giải thích cơ chế BFD, cách nó tích hợp với BGP để kích hoạt convergence nhanh, và cơ chế dampening để tránh flapping.

Nội dung chính:

  • BFD protocol: UDP-based, asynchronous mode, không dùng echo mode
  • Timer mechanics: transmit interval, receive interval, multiplier
  • Detection time = agreed transmit interval × multiplier (default: 5 giây)
  • BGP integration: BFD notify BGP → BGP tear down → convergence
  • Dampening: penalty system, suppression khi flapping, decay 10 phút
  • Graceful restart với BFD: AdminDown signal cho software maintenance
  • So sánh: BFD 5s vs BGP hold timer 60-180s — tại sao quan trọng cho SLA

6. Cloud Router với Hybrid Connectivity — VPN và Interconnect

Cloud Router là thành phần bắt buộc cho HA VPN và Cloud Interconnect. File này giải thích cách tích hợp hoạt động: BGP sessions được thiết lập qua đường nào, VLAN attachments trong Interconnect là gì, và tại sao topology của phần cứng phía dưới quyết định SLA của connection.

Nội dung chính:

  • Cloud Router với HA VPN: BGP session per tunnel, 2 tunnels = 2 BGP sessions
  • Vì sao "2 tunnels 1 gateway" không đạt 99.99% SLA — HA VPN gateway topology
  • Cloud Router với Dedicated Interconnect: VLAN attachment là logical connection
  • BGP session over Interconnect: link-local peering addresses
  • Partner Interconnect: Layer 2/3 partner, BGP over L3 vs không BGP với L2
  • MED trong Interconnect: không hỗ trợ qua Layer 3 Partner
  • Active-active vs active-passive failover: cách cấu hình với MED và route priorities

7. Routing Modes — Regional vs Global

Routing mode của VPC quyết định phạm vi mà các dynamic routes được áp dụng. File này giải thích sự khác biệt cốt lõi giữa regional mode (mặc định) và global mode, tại sao chọn sai mode dẫn đến asymmetric routing, và khi nào nên dùng mỗi mode.

Nội dung chính:

  • Regional mode: routes chỉ áp dụng trong region của Cloud Router
  • Global mode: best-path routes được propagate đến tất cả regions trong VPC
  • Control plane mechanics: dynamic route control plane xử lý routes thế nào
  • Inter-region cost: Cloud Router thêm cost penalty khi propagate cross-region
  • Asymmetric routing: khi nào xảy ra và tại sao nó là vấn đề
  • VPC peering với routing modes: mode của exporting VPC quyết định gì được export
  • Best path selection mode: legacy vs standard — difference và production guidance

8. Monitoring BGP Sessions

Phần operational: làm thế nào để quan sát trạng thái BGP sessions, list routes đang được learned và advertised, và debug các failure scenarios phổ biến.

Nội dung chính:

  • BGP session status: các trạng thái và ý nghĩa
  • List BGP routes: learned routes từ peers, advertised routes ra peers
  • Cloud Router metrics: BGP session status, route counts
  • Troubleshooting: session stuck, routes không xuất hiện, wrong routes
  • Logs: Cloud Router logs cho BGP events
  • Connectivity Tests: trace BGP-learned routes

Điều Kiện Tiên Quyết


References