Nhiều người dùng tại Việt Nam đã không thể truy cập vào Facebook, Messenger, Whatsapp, Instagram trên tất cả các nền tảng vào tối hôm qua (4/10/2021). Câu hỏi là tại sao? Điều gì đã khiến Facebook biến mất khỏi internet và không thể truy cập được trong 6 tiếng đồng hồ? Các chuyên gia tại CloudFlare đã nghiên cứu sự cố hi hữu này và đưa ra câu trả lời.

Facebook, Messenger, Instagram, Whatsapp đã biến mất khỏi internet trong 6 tiếng đồng hồ.

“Facebook không thể bị sập được đúng không?” chúng ta đều đã từng nghĩ như vậy.

Hôm nay vào lúc 16:51 UTC (23:51 giờ Việt Nam), Cloudflare đã mở một cuộc điều tra nội bộ được đặt tên là “Facebook DNS lookup returning SERVFAIL” vì lo ngại rằng có gì đó không ổn với hệ thống phân giải DNS của Cloudflare 1.1.1.1. Tuy nhiên khi chuẩn bị post lên trang thông tin công khai, Cloudflare nhận ra rằng có điều gì đó nghiêm trọng hơn đang diễn ra.

Các phương tiện truyền thông và mạng xã hội nhanh chóng bùng nổ vì sự cố này. Quả thực, đúng là Facebook và các dịch vụ liên kết như WhatsApp và Instagram đều không thể truy cập được. Tên DNS của họ không thể phân giải, các IP hạ tầng không thể truy cập được, như thể có ai đó đã “rút dây mạng” khỏi các trung tâm dữ liệu của họ cùng một lúc và ngắt hoàn toàn kết nối với Internet.

Làm sao điều đó có thể xảy ra?

Về BGP

BGP là viết tắt của Border Gateway Protocol, một cơ chế trao đổi thông tin định tuyến giữa các Hệ thống tự trị (autonomous systems – AS) trên Internet. Các bộ định tuyến (router) lớn giúp Internet hoạt động có những danh sách khổng lồ được cập nhật liên tục về các tuyến khả thi có thể được sử dụng để phân phối các gói tin đến địa chỉ cuối cùng. Nếu không có BGP, các bộ định tuyến Internet sẽ không biết phải làm gì và Internet sẽ không hoạt động.

Internet thực chất là một mạng lưới các mạng, được gắn kết với nhau bởi BGP. BGP cho phép một mạng (ví dụ như Facebook) có thể quảng bá sự hiện diện của nó tới các mạng khác tạo thành Internet. Nếu Facebook không quảng bá sự hiện diện của mình, các ISP và các mạng khác không thể tìm được mạng của Facebook, và do đó Facebook không khả dụng.

Mỗi mạng riêng lẻ đều có một Mã số Hệ thống tự trị (Autonomous System Number – ASN). Hệ thống tự trị AS là một mạng riêng lẻ có chính sách định tuyến nội bộ thống nhất (unified internal routing policy). Một AS có thể khởi tạo các tiền tố (tức là nó quản lý một nhóm các địa chỉ IP) cũng như truyền các tiền tố (tức là nó biết cách tìm đến các nhóm địa chỉ IP cụ thể).

ASN của Cloudflare là AS13335. Mỗi AS đều cần thông báo các tiền tố tuyến (prefix route) tới Internet bằng cách sử dụng BGP, nếu không sẽ không ai biết cách kết nối hoặc tìm đến chúng.

Trong sơ đồ đơn giản này, bạn có thể thể sáu AS trên Internet và hai tuyến khả thi mà một gói tin có thể sử dụng để đi từ điểm Start đến End. AS1 -> AS2 -> AS3 là nhanh nhất và AS6 → AS5 → AS4 → AS3 là chậm nhất, nhưng có thể được sử dụng nếu cách thứ nhất không thành công.

Vào lúc 16:58 UTC (23:58 giờ Việt Nam) Cloudflare nhận thấy rằng Facebook đã ngừng thông báo các tuyến tới các tiền tố DNS của họ. Điều đó có nghĩa là, ít nhất, máy chủ DNS của Facebook không khả dụng. Do đó máy chủ phân giải DNS 1.1.1.1 của Cloudflare không thể phản hồi các truy vấn yêu cầu địa chỉ IP của facebook.com hay instagram.com nữa.

Trong khi đó, các địa chỉ IP Facebook khác vẫn được định tuyến nhưng không quá hữu ích không có DNS thì Facebook và các dịch vụ liên quan không thể khả dụng:

Cloudflare theo dõi tất cả các thông báo và cập nhật BGP mà Cloudflare thấy trong mạng toàn cầu của mình. Với quy mô của Cloudflare, dữ liệu thu thập cung cấp cái nhìn về cách Internet được kết nối và nơi mà các luồng dữ liệu cần phải đi và đến trên khắp hành tinh.

Thông báo BGP UPDATE thông báo cho bộ định tuyến về bất kỳ thay đổi nào bạn đã thực hiện đối với việc quảng bá tiền tố hoặc hoàn toàn rút tiền tố. Chúng ta có thể thấy rõ điều này trong số lượng bản cập nhật mà Cloudflare nhận được từ Facebook khi kiểm tra cơ sở dữ liệu chuỗi thời gian BGP của mình. Thông thường, biểu đồ này khá yên tĩnh: Facebook không thực hiện nhiều thay đổi đối với mạng của mình theo từng phút.

Nhưng vào khoảng 15:40 UTC (22:40 giờ Việt Nam), Cloudflare đã thấy sự tăng vọt của những thay đổi về định tuyến từ Facebook. Đó là khi rắc rối bắt đầu.

Nếu chia biểu đồ theo các routes announcements và route withdrawal, chúng ta sẽ có cái nhìn tốt hơn về điều gì đã xảy ra. Các tuyến đã bị thu hồi (unfeasible, không còn khả dụng), các máy chủ DNS của Facebook chuyển sang trạng thái ngoại tuyến (offline), và một phút sau khi xảy ra sự cố, các kỹ sư của Cloudflare tự hỏi tại sao 1.1.1.1 không thể phân giải facebook.com và lo ngại rằng đó là lỗi của hệ thống Cloudflare.

Với việc các tuyến không còn khả dụng, Facebook và các trang của nó chính thức bị ngắt kết nối khỏi Internet.

DNS bị ảnh hưởng

Hậu quả trực tiếp của việc này là các hệ phân giải DNS trên khắp thế giới không thể phân giải các tên miền của Facebook.

Điều này xảy ra bởi vì DNS cũng giống như nhiều hệ thống khác trên Internet, có cơ chế định tuyến riêng. Khi ai đó nhập URL https://facebook.com vào trình duyệt, trình phân giải DNS chịu trách nhiệm dịch tên miền thành địa chỉ IP thực để kết nối tới, sẽ kiểm tra trước tiên xem nó có thông tin gì trong bộ nhớ tạm để sử dụng hay không. Nếu không có, nó sẽ cố gắng lấy câu trả lời từ các máy chủ tên miền, thường được host bởi các đơn vị sở hữu trình phân giải DNS đó.

Nếu máy chủ định danh không thể truy cập hoặc không thể phản hồi vì một lý do nào đó, lỗi SERVFAIL sẽ được trả về và trình duyệt sẽ báo lỗi tới người dùng.

Do việc Facebook ngừng thông báo các tiền tố tuyến DNS của họ thông qua BGP, các trình phân giải DNS của Cloudflare cũng như của các đơn vị khác đều không thể có cách nào kết nối tới máy chủ định danh của họ. Do đó, 1.1.1.1, 8.8.8.8 và các trình phân giải DNS công cộng lớn khác đều bắt đầu phát (và lưu bộ nhớ đệm) phản hồi SERVFAIL.

Nhưng đó chưa phải là tất cả. Hành vi con người và logic ứng dụng vào cuộc, tạo ra một hiệu ứng cấp số nhân khác. Một làn sóng lớn các luồng truy cập DNS xuất hiện.

Điều này xảy ra một phần vì các ứng dụng không chấp nhận lỗi và bắt đầu thử lại, đôi khi một cách quá khích, và một phần vì người dùng cũng không chấp nhận lỗi và tải lại trang liên tục, hoặc tắt ứng dụng rồi chạy lại một cách thiếu kiên nhẫn.

Đây là sự gia tăng lưu lượng truy cập (về số lượng yêu cầu) mà Cloudflare đã thấy trên 1.1.1.1:

Và giờ, vì Facebook và các trang của họ quá lớn, các trình phân giải DNS trên khắp thế giới phải xử lý các truy vấn nhiều gấp 30 lần thông thường, có thể gây ra các vấn đề về độ trễ cũng như hết thời gian chờ (timeout) cho các nền tảng khác.

May mắn thay, 1.1.1.1 được xây dựng để trở nên Miễn phí, Riêng tư và Nhanh chóng (như trình giám sát DNS độc lập DNSPerf có thể chứng thực) và có thể mở rộng, và có thể tiếp tục phục vụ người dùng của mình với những ảnh hưởng tối thiểu.

Phần lớn các yêu cầu DNS của Cloudflare tiếp tục phân giải trong vòng dưới 10 mili giây. Đồng thời, một phần nhỏ của phần trăm p95 và p99 đã thấy thời gian phản hồi tăng lên, có thể là do các TTL đã hết hạn phải sử dụng đến máy chủ định danh Facebook và bị timeout. Giới hạn timeout 10 giây của DNS được các kỹ sư biết rõ.

Tác động đến các dịch vụ khác

Mọi người đều tìm kiếm các giải pháp thay thế và muốn biết thêm hoặc thảo luận về những gì đang diễn ra. Khi Facebook trở nên không thể truy cập được, Cloudflare bắt đầu thấy các truy vấn DNS ngày càng tăng đối với Twitter, Signal và các nền tảng truyền thông xã hội và nhắn tin khác.

Cloudflare cũng có thể thấy một tác dụng phụ khác của việc không thể truy cập này trong lưu lượng truy cập WARP của chúng tôi đến và đi từ ASN 32934 bị ảnh hưởng của Facebook. Biểu đồ này cho thấy lưu lượng truy cập đã thay đổi như thế nào từ 15:45 UTC đến 16:45 UTC (22:45 đến 23:45 giờ Việt Nam) so với ba giờ trước đó ở mỗi quốc gia. Trên toàn thế giới, lưu lượng truy cập WARP đến và đi từ mạng của Facebook đã biến mất.

Internet

Các sự kiện hôm nay là một lời nhắc nhở nhẹ nhàng rằng Internet là một hệ thống rất phức tạp và phụ thuộc lẫn nhau gồm hàng triệu hệ thống và giao thức hoạt động cùng nhau. Sự tin tưởng, tiêu chuẩn hóa và hợp tác giữa các bên là trung tâm của việc làm cho nó hoạt động cho gần năm tỷ người dùng tích cực trên toàn thế giới.

Cập nhật

Vào khoảng 21:00 UTC (4:00 sáng nay giờ Việt Nam), chúng tôi đã thấy hoạt động BGP mới từ mạng của Facebook, đạt đỉnh vào lúc 21:17 UTC (4:17 sáng nay giờ Việt Nam) .

Biểu đồ này cho thấy tính khả dụng của tên DNS ‘facebook.com’ trên trình phân giải DNS của Cloudflare 1.1.1.1. Nó ngừng hoạt động vào khoảng 15:50 UTC (22:50 giờ Việt Nam) và trở lại vào lúc 21:20 UTC (4:20 sáng nay giờ Việt Nam)

Không nghi ngờ gì nữa, các dịch vụ Facebook, WhatsApp và Instagram sẽ mất thêm thời gian để online trở lại nhưng kể từ 21:28 UTC (4:28 sáng nay giờ Việt Nam), Facebook dường như đã được kết nối lại với Internet toàn cầu và DNS hoạt động trở lại.

Bài gốc: https://blog.cloudflare.com/october-2021-facebook-outage/