
Border Gateway Protocol (BGP) là giao thức định tuyến duy nhất được dùng để kết nối các mạng độc lập trên Internet. Nếu không có BGP, trình duyệt của bạn sẽ không bao giờ tìm thấy địa chỉ của một máy chủ ở quốc gia khác. Bài viết này giải thích cơ chế BGP hoạt động, vì sao Internet phụ thuộc vào nó, và những điểm yếu khiến giao thức này trở thành mối lo ngại bảo mật thường trực.
BGP là gì và tại sao Internet cần đến nó
Internet không phải là một mạng lớn duy nhất mà là hàng trăm nghìn mạng độc lập, mỗi mạng do một tổ chức sở hữu và vận hành. Mỗi mạng đó được gọi là một hệ thống tự trị (Autonomous System, viết tắt AS). Ví dụ, Viettel có một hoặc vài AS, FPT có AS của riêng mình, Cloudflare có AS của họ, và mỗi ISP quốc tế lại có một hoặc nhiều AS nữa.
Giao thức BGP là cơ chế để các AS này trao đổi thông tin về việc đi qua mạng của ai để tới được một dải địa chỉ IP cụ thể. Về mặt kỹ thuật, BGP là một giao thức path-vector: mỗi router giữ toàn bộ danh sách các đường đi có thể tới một mạng đích, kèm dãy số AS của các chặng trên đường đi đó.

Điểm khác biệt cốt lõi so với hầu hết giao thức định tuyến khác nằm ở chỗ BGP không tìm đường ngắn nhất. Nó tìm đường khả dụng theo chính sách. Một ISP có thể ưu tiên đi qua đối tác transit mà họ ký hợp đồng, tránh một đối tác có lịch sử chập chờn, hoặc giữ một lưu lượng dự phòng cho khách hàng quan trọng.
Quá trình ra đời: từ hai chiếc khăn giấy
BGP có từ tháng 1 năm 1989, khi Yakov Rekhter, Len Bosack và Kirk Lougheed ngồi quanh một chiếc bàn tại hội nghị IETF lần thứ 12 ở Austin, Texas để thiết kế giao thức. Bản thiết kế ban đầu được ghi trên hai chiếc khăn giấy, nên người ta hay gọi đùa đây là “Two-Napkin Protocol”.
| Mốc thời gian | Tài liệu | Ý nghĩa |
|---|---|---|
| 1989 | RFC 1105 | Phiên bản BGP đầu tiên |
| 1990 | RFC 1136 | Sửa lỗi định nghĩa |
| 1991 | RFC 1267 | BGP version 3 |
| 1994 | RFC 1654 | BGP4, chạy trên Internet từ đây |
| 2006 | RFC 4271 | Bản định nghĩa BGP4 hiện hành |
Đến RFC 4271, BGP4 hỗ trợ CIDR và route aggregation, cho phép gom nhiều mạng nhỏ thành một thông báo duy nhất. Đây là thay đổi quan trọng vì nó giữ cho bảng định tuyến toàn cầu không phình to không kiểm soát được.
iBGP và eBGP: hai vai trò khác nhau
Khi BGP chạy giữa hai router thuộc cùng một AS, đó là iBGP. Khi nó chạy giữa hai AS khác nhau, đó là eBGP. Sự khác biệt quan trọng nhất nằm ở quy tắc lan tỏa:
- Route học từ peer eBGP được quảng bá lại cho tất cả peer iBGP và eBGP khác.
- Route học từ peer iBGP chỉ được quảng bá lại cho peer eBGP.
Quy tắc thứ hai buộc toàn bộ router iBGP trong một AS phải kết nối full mesh với nhau, tức mọi cặp router đều có một phiên BGP riêng. Với một AS lớn có 50 router, điều đó đồng nghĩa 1225 phiên, và chính vì vậy các thiết bị như route reflector ra đời để giảm tải.
BGP còn rất đặc biệt ở chỗ nó là giao thức định tuyến duy nhất chạy trên nền TCP, cổng 179. Mọi giao thức khác như OSPF, IS-IS hay RIP thường chạy trực tiếp trên IP với giao thức riêng. Do đã có lớp TCP bảo đảm nên BGP không cần cơ chế bảo đảm thứ tự tin cậy, nhưng lại phải chịu độ trễ tích lũy và trạng thái chết đuối khi kết nối TCP bị đứt.

Các thuộc tính của một thông báo BGP
- Path attribute: quyết định ưu tiên, ví dụ AS_PATH chứa danh sách AS đã đi qua, LOCAL_PREF ưu tiên nội bộ, MED để so sánh giữa các đường vào cùng một AS.
- Communities: nhãn 32 bit để gắn thuộc tính như “không quảng bá sang AS này” hay “giảm ưu tiên khi rời khỏi AS”.
- Route reflector: cơ chế thay thế cho full mesh iBGP.
- BFD và gia hạn định tuyến: giám sát tối thiểu hai bản ghi BGP trước khi rút route.

BGP hijack: điểm yếu thiết kế cố hữu
BGP tin tưởng tuyệt đối vào những gì đồng nghiệp thông báo. Nếu một router quảng bá một dải địa chỉ thuộc về người khác, các AS khác sẽ tin và chuyển lưu lượng. Chính vì vậy, đánh cắp đường đi chỉ cần một cấu hình sai, một khóa API bị lộ, hoặc một nhân viên bị giả mạo thông tin đăng nhập.
Những sự cố lớn đã xảy ra trong quá khứ, chẳng hạn vụ việc dải địa chỉ của một nhà cung cấp dịch vụ DNS bị chuyển hướng vào năm 2018, cho thấy thiệt hại có thể lan ra toàn cầu trong vài phút.
Các lớp phòng thủ hiện đại gồm có xác thực thông điệp bằng khóa công khai với tiêu chuẩn RPKI và ROA, phát hiện lệch đường bằng monitoring, và lọc danh sách truy cập ở mức biên.
Kiến thức cần nhớ
Hiểu BGP giúp bạn đọc được kết quả tra cứu định tuyến hiểu vì sao một website chậm, vì sao Cloudflare phải có mạng riêng, hay vì sao việc thay đổi ASN của một đội ngũ vận hành là quyết định cấp sự sống của doanh nghiệp. Đây là tầng lớp mà hầu hết người dùng Internet không bao giờ phải nghĩ tới, nhưng mọi gói tin đều phải đi qua nó.
Tài liệu tham khảo
- Bài viết chuyên sâu về BGP trên Wikipedia, bao gồm lịch sử các phiên bản RFC và quy tắc lan tỏa route tại wikipedia.org.
- Đặc tả giao thức BGP4 chính thức RFC 4271 do IETF ban hành tại rfc-editor.org.
- Tài liệu giải thích về hệ thống tự trị (Autonomous System) và cách các AS liên kết với nhau tại wikipedia.org.
- Bài tổng quan về Resource Public Key Infrastructure và Origin Authentication, cơ chế phòng chống BGP hijack tại wikipedia.org.
