Border Gateway Protocol (BGP) là gì? Giao thức định tuyến của Internet

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 đó.

Sơ đồ các hệ thống tự trị (Autonomous System) liên kết qua BGP

Đ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.

Máy trạng thái BGP FSM trong quá trình thiết lập phiên peering

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.
Biểu đồ số lượng mục trong bảng định tuyến BGP tăng theo thời gian

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.
Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

WireGuard là gì: VPN tối giản, nhanh và hiện đại cho Linux

WireGuard là một giao thức và triển khai VPN tầng 3 được thiết kế lại từ đầu, nổi tiếng nhờ mã nguồn mở, tốc độ cao và cấu hình cực…

Xem thêm

NVMe là gì? Chuẩn SSD tốc độ cao và cách chọn ổ cho đúng nhu cầu

NVMe SSD là chuẩn lưu trữ dùng giao thức PCIe, xóa sổ mọi giới hạn của SATA mà ổ cứng truyền thống vẫn vướng phải. Nếu bạn đang tìm một…

Xem thêm

Wi-Fi 7 là gì: Chuẩn không dây IEEE 802.11be với Multi-Link

Wi-Fi 7 là gì: Chuẩn không dây IEEE 802.11be với Multi-Link Operation Wi-Fi 7 là gì? Đây là thế hệ mới nhất của chuẩn không dây IEEE 802.11, được Wi-Fi…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất