BGP là gì? Giải thích về giao thức Border Gateway Protocol
Internet là tập hợp các mạng (hoặc hệ thống tự trị) kết nối và giao tiếp với nhau. Các mạng cần một phương pháp để truyền nhận thông tin với nhau.
Một phương thức phổ biến để các mạng tương tác với nhau là BGP – Giao thức định tuyến của Internet.
BGP quản lý cách các gói dữ liệu được phân phối giữa các mạng và tìm tất cả các tuyến đường mà Internet có trên khắp thế giới. Tóm lại, BGP là giao thức định tuyến giúp Internet hoạt động hiệu quả như chúng ta biết.
BGP là gì?
Định nghĩa Giao thức Border Gateway Protocol
BGP, còn được gọi là Border Gateway Protocol, là giao thức định tuyến được sử dụng cho mạng Internet toàn cầu. BGP xác định các điều kiện mạng mới nhất để tìm ra đường đi tối ưu. Các điều kiện mạng này cập nhật khả năng tiếp cận và thông tin định tuyến giữa các router tại biên. BGP định tuyến lưu lượng và quản lý cách các tập tin được gửi giữa các hệ thống tự trị (AS) – các network quản lý bởi doanh nghiệp hoặc nhà mạng.
Hệ thống tự trị (Autonomous System)
Hệ thống tự trị là gì?
Hệ thống tự trị (Autonomous System – AS) là một mạng IP lớn hoặc một nhóm mạng được điều hành bởi các nhà mạng có chính sách định tuyến thống nhất. Internet là một mạng của các mạng được tạo thành từ vô số Autonomous System nhỏ hơn. Mọi máy tính hoặc thiết bị kết nối Internet đều được kết nối với hệ thống tự trị.
Peering là cách các hệ thống tự trị giao tiếp và trao đổi lưu lượng mạng. Một phương pháp mà các hệ thống tự trị peering với nhau là thông qua các vị trí vật lý gọi là Điểm trao đổi Internet (IXP).
Các hệ thống mới liên tục xuất hiện trên Internet, trong khi các hệ thống cũ hơn thường không khả dụng. Vậy nên, mỗi Autonomous System phải duy trì thông tin về mọi tuyến đường mới lẫn cũ. Điều này được thực hiện thông qua các phiên peering. Trong các phiên peering, mỗi AS thiết lập kết nối TCP/IP với AS gần đó để trao đổi dữ liệu định tuyến. Autonomous System sử dụng thông tin này để định tuyến chính xác dữ liệu gửi đi.
Tùy thuộc vào doanh nghiệp và thỏa thuận peering, các hệ thống tự trị đôi khi tính phí lẫn nhau để chuyển lưu lượng truy cập qua mạng của họ. Chi phí truy cập có thể ảnh hưởng đến quyết định lựa chọn tuyến đường cuối cùng của BGP.
Ai vận hành hệ thống tự trị?
Các hệ thống tự trị AS thường thuộc về các nhà cung cấp dịch vụ Internet (ISP) hoặc các tổ chức lớn khác như công ty công nghệ, trường đại học, cơ quan chính phủ và cơ sở nghiên cứu. Mỗi AS phải có một số hiệu mạng (ASN) đã đăng ký để trao đổi thông tin định tuyến.
Số hiệu mạng BGP là gì?
Mỗi số hiệu mạng ASN phải được chia sẻ cho tất cả các mạng IP được liên kết với một ISP hoặc tổ chức chung. Tổ chức cấp phát số hiệu Internet (IANA-Internet Assigned Numbers Authority) chỉ định một ASN duy nhất cho mỗi công ty. IANA cung cấp ASN cho Cơ quan đăng ký Internet khu vực (RIR), sau đó cơ quan này sẽ chỉ định ASN cho ISP và mạng. ASN là các số nằm trong khoảng từ 1 đến 65534 ở định dạng 16 bit và từ 131072 đến 4294967294 ở định dạng 32 bit.
Có hai loại số hiệu mạng BGP: ASN riêng & ASN công khai.
-
Số hiệu mạng ASN BGP riêng được sử dụng nội bộ.
-
Số hiệu mạng ASN BGP công khai dùng để trao đổi dữ liệu trên mạng Internet toàn cầu.
Thay vì sử dụng các AS công khai (để lưu trữ số hiệu mạng AS công khai) các AS riêng được sử dụng để chia AS lớn thành nhiều AS nhỏ.
BGP hoạt động như thế nào?
Giao thức Border Gateway Protocol là cơ chế định tuyến lưu lượng truy cập qua Internet. Hầu hết các nhà mạng không có tuyến đường mặc định, mà chỉ có đường đi đến tất cả các tiền tố (prefix). BGP đánh giá các đường dẫn đến một tuyến đường nhất định và chọn đường tốt nhất giữa các router nhằm xác định đường dẫn tới tất cả các điểm đến.
Router không thể chọn mạng tối ưu để gửi dữ liệu khi có nhiều mạng liên kết với nó. Để truyền lưu lượng đến router gần đích nhất, BGP đánh giá tất cả các đối tác peering của router thông qua thông tin định tuyến của các đối tác peering. Thông tin định tuyến được lưu giữ trong Bảng định tuyến (RIB – Routing Information Base).
Mỗi router hoặc host lưu trữ một bảng RIB chứa thông tin về khoảng cách hoặc tuyến đường đến mạng đích để hỗ trợ kiểm soát hướng đi của các gói dữ liệu. RIB sử dụng dữ liệu từ cả các đối tác peering nội bộ lẫn đối tác bên ngoài. Các đối tác peering này đều kết nối trực tiếp với nhau. RIB liên tục cập nhật khi có các thay đổi dựa trên các chính sách về tuyến đường được sử dụng và thông tin công bố.
Hình minh họa ở trên mô tả cách BGP có thể quyết định tuyến đường tốt nhất để phân bố lưu lượng. AS1 có thể gửi gói dữ liệu đến AS6 qua 3 đường dẫn:
- Định tuyến qua AS2 để đến AS6
- Định tuyến qua AS3 để đến AS6
- Định tuyến qua AS4, AS5 để đến AS6
Sự lựa chọn khá rõ ràng trong ví dụ này – định tuyến qua AS3 là tuyến hiệu quả nhất, chỉ cần 2 hop thay vì 3 hop qua AS4. Tuyến đường này cũng không phải thông qua AS2 hiện đang bị tắc nghẽn.
BGP sử dụng giao thức định tuyến nào?
Mục tiêu của các giao thức định tuyến là thiết lập các bảng định tuyến, tìm hiểu các tuyến khả dụng và đưa ra các quyết định định tuyến. So với các hệ thống định tuyến động (dynamic routing) khác, BGP sử dụng TCP/IP (hay còn biết tới là TCP) để vận chuyển gói dữ liệu. BGP là loại cấu trúc liên kết lưới (mesh topology) sử dụng TCP để xác định đường dẫn tối ưu để giao tiếp giữa các router.
OSPF và BGP là hai trong số các giao thức định tuyến phổ biến nhất. Sự khác biệt chính giữa OSPF và BGP là OSPF là giao thức định tuyến nội miền (intra-domain) trong khi BGP là giao thức định tuyến liên miền (inter-domain). BGP đề xuất các đường dẫn từ bên trong một AS, với internal BGP, hoặc từ bên ngoài AS, với external BGP.
External BGP và internal BGP là gì?
Định nghĩa external BGP và internal BGP
Có hai loại BGP là external BGP (eBGP) và internal BGP (iBGP).
Các thiết bị hoặc mạng lân cận trong cùng một AS có thể sử dụng Internal BGP để định tuyến qua các mạng nội bộ. iBGP không giao tiếp với các AS khác vì quy trình chỉ xảy ra giữa hai đối tác peering nội bộ. Để liên kết các router trên mạng nội bộ, các AS có thể chọn từ các giao thức nội bộ khác.
External BGP là phần mở rộng của BGP. eBGP được sử dụng để truyền thông tin trao đổi giữa các hệ thống tự trị riêng biệt. Điều này có nghĩa là BGP yêu cầu sử dụng các router biên (edge) để hai AS giao tiếp. Sử dụng eBGP KHÔNG yêu cầu cần sử dụng iBGP.
Giải thích về eBGP và iBGP
Điểm khác nhau giữa iBGP và eBGP có thể so sánh như sự khác biệt giữa gửi thư trong nước và gửi thư quốc tế. External BGP tương tự như gửi thư quốc tế. Khi gửi thư ra nước ngoài, có một số quy định phải tuân theo.
Thư trong nước chỉ di chuyển một khoảng cách ngắn đến một địa chỉ trong cùng quốc gia và không bị chuyển tới bưu điện phân loại khu vực hay quốc gia khác.
Mọi loại thư nào muốn đến đích cuối, đều phải trước tiên được gửi tới quốc gia cần đến. Sau đó, thư mới tiếp tuc được dịch vụ chuyển phát thư địa phương đưa đến địa chỉ cuối. Tương tự như cách mọi quốc gia có hệ thống bưu chính nội bộ của riêng mình, các hệ thống tự trị cũng có các giao thức định tuyến nội bộ riêng.
Để định tuyến hiệu quả, internal BGP luôn được ưu tiên sử dụng vì iBGP ít xảy ra routing loop hơn external BGP.
Điểm yếu của BGP & Cách giải quyết
Một vấn đề phổ biến với BGP là lỗi trao đổi thông tin. BGP là cơ chế chia sẻ tuyến đường phụ thuộc vào độ tin cậy. Các sự cố vẫn có thể xảy ra do các AS hoàn toàn tin tưởng vào các tuyến đường được chia sẻ. Các đối tác peering có thể vô tình hoặc cố ý khai báo thông tin tuyến đường không chính xác, dẫn tới lưu lượng truy cập bị chuyển hướng và có kết quả không mong muốn.
Trao đổi dữ liệu không phải lúc nào cũng thành công vì dữ liệu có thể bị định dạng không đúng hoặc chứa thông tin sai. Router cũng có thể gặp sự cố về bộ nhớ, lưu trữ, hoặc phản hồi chậm với các thông tin cập nhật mới. Bất cứ khi nào xảy ra các lỗi như timeout, request sai định dạng, hay sự cố khi xử lý, router cần gửi mã lỗi (error code) và mã phụ (subcode) để truyền đạt các vấn đề này.
Sự cố BGP
Các sự cố BGP phổ biến nhất là định dạng sai, BGP hijack, và prefix leak.
Một số sự cố BGP diễn ra gần đây là:
-
AS12389 (Rostelecom) đã hijack prefix của các mạng Cloud lớn, bao gồm cả Akamai, Amazon AWS, Cloudflare, Digital Ocean và Hetzner, vào tháng 4/2020.
-
Hơn 13046 prefix đã bị lộ bởi AS264462 trong một sự cố mạng kéo dài hơn một giờ đồng hồ vào tháng 7/2020.
-
AS1221 (Telstra) đã công bố gần 500 prefix trong một sự kiện hijack BGP vào tháng 9/2020. Sự kiện này đã ảnh hưởng đến hơn 266 ASN ở 50 quốc gia khác nhau.
-
Hơn 30.000 prefix đã bị tấn công thông qua AS55410 (Vodafone) vào tháng 4/2021, khiến lưu lượng truy cập vào tăng gấp 13 lần. Phần lớn các prefix, bao gồm Google, Microsoft, Akamai và Cloudflare, đến từ Hoa Kỳ.
-
BGP prefix của một nền tảng tiền điện tử của Hàn Quốc đã bị chiếm đoạt và đánh cắp số tiền điện tử trị giá 1,9 triệu đô vào tháng 2/2022.
Giải pháp cho các mối đe dọa tới BGP
Một số giải pháp như Ký số tài nguyên Internet (RPKI – Resource Public Key Infrastructure) đã được tạo dựng nhằm thiết lập nên giao thức BGP an toàn hơn. Song, việc triển khai hoàn toàn RPKI không đơn giản vì việc này yêu cầu mọi AS trên toàn cầu phải đồng thời áp dụng giao thức mới. Bảo vệ và giữ gìn đường truyền Internet an toàn là công việc khó khăn và cần có cam kết mạnh mẽ từ tất cả các nhà mạng trên toàn thế giới.