- Trang tương tác trực quan hóa theo thời gian thực đường đi mà gói tin của người dùng đi qua Internet để tới máy chủ website
- Chương trình traceroute tự tạo
ktr sử dụng giá trị TTL của gói ICMP để thu thập thông tin về từng bước nhảy mạng
- Website vẫn hoạt động không cần JavaScript, máy chủ phản ánh kết quả traceroute vào HTML theo dạng truyền luồng
- Việc phân tích đường đi dùng dữ liệu WHOIS và PeeringDB để hiển thị hệ tự trị (AS) và thông tin doanh nghiệp mà từng IP thuộc về
- Bằng cách kết hợp traceroute với cấu trúc Internet dựa trên BGP, nội dung này cho thấy Internet là tập hợp các mạng được tạo thành từ quan hệ peering giữa các doanh nghiệp
Hành trình mà gói tin của bạn đã đi qua
- Phần traceroute ở đầu trang cho thấy đường di chuyển của gói tin từ máy tính của người dùng tới máy chủ
- Lần lượt đi qua các mạng như router, ISP, Amazon, NTT Global IP Network, Hetzner
- Một số đoạn được hiển thị là “(no response)”, nghĩa là máy chủ ở đó không phản hồi
- Bên trong mạng Hetzner, gói tin tiếp tục đi qua nhiều router trước khi tới máy chủ đích
- Địa chỉ IP
213.239.252.10 được hiển thị là core0.fra.hetzner.com thông qua tra cứu DNS ngược
Behind the Scenes
- Khi website nhận yêu cầu từ người dùng, máy chủ sẽ chạy traceroute và gửi kết quả theo thời gian thực
- traceroute sử dụng giao thức ICMP, tăng giá trị TTL (Time To Live) lên từng đơn vị để thu thập phản hồi từ mỗi hop
- Khi TTL về 0, router tương ứng sẽ trả về thông báo lỗi, nhờ đó có thể theo dõi đường đi mà gói tin đã đi qua
ktr vừa truyền luồng kết quả traceroute vừa đồng thời tra cứu thông tin IP, ASN và mạng sở hữu của từng hop
Frontend Fun
- Vẫn hoạt động mà không cần JavaScript, trình duyệt chỉ coi đây là một trang tải chậm
- Máy chủ giữ kết nối HTTP mở và lần lượt chèn kết quả traceroute vào HTML
- Ở mỗi lần cập nhật, hệ thống chèn khối CSS để ẩn kết quả trước đó, từ đó tạo hiệu ứng cập nhật thời gian thực
Front to Back, Back to Front
- Trên thực tế, hệ thống chạy traceroute từ máy chủ tới địa chỉ IP của người dùng rồi hiển thị kết quả theo thứ tự ngược lại
- Đây là một dạng “reverse traceroute”; dù đường đi hai chiều không hoàn toàn giống nhau, nó vẫn cho thấy lộ trình nhìn chung tương tự
Mạng và hệ tự trị (AS)
- Internet là mạng lưới liên kết của các mạng cấp doanh nghiệp được gọi là hệ tự trị (Autonomous System, AS)
- Mỗi AS có một ASN (Autonomous System Number) riêng và trao đổi lưu lượng thông qua peering với nhau
- Internet không phải tập hợp các kết nối do cá nhân sở hữu, mà là tập hợp các mạng do doanh nghiệp sở hữu, trong đó việc kết nối được quyết định bởi hợp đồng tài chính và thủ tục hành chính
- Có thể đăng ký ASN thông qua một trong 5 cơ quan đăng ký Internet khu vực (RIR)
WHOIS và PeeringDB
- Để tìm AS mà từng IP trong traceroute thuộc về, hệ thống dùng giao thức WHOIS và cơ sở dữ liệu PeeringDB
- WHOIS có cấu trúc đơn giản: sau khi mở kết nối TCP và gửi truy vấn, máy chủ sẽ trả về thông tin
- Do tên trường và định dạng khác nhau giữa các máy chủ, bộ phân tích được triển khai như một trình mô phỏng đơn giản gần với cách con người đọc dữ liệu
- PeeringDB cung cấp thông tin doanh nghiệp cho khoảng 1/3 tổng số AS
BGP (Border Gateway Protocol)
- BGP là giao thức cốt lõi quyết định hình dạng của Internet, dùng để trao đổi thông tin đường đi giữa các AS
- Router biên (border router) duy trì bảng định tuyến BGP, trong đó lưu danh sách ASN của từng tuyến đường
- Khi hai AS peering với nhau, router của họ sẽ thiết lập phiên BGP và trao đổi route advertisement
- Router sẽ chọn đường đi ngắn nhất hoặc đường có độ ưu tiên cao hơn trong số nhiều tuyến để chuyển tiếp gói tin
Lịch sử của BGP
- Các thử nghiệm mạng bắt đầu từ ARPANET năm 1969 đã dẫn tới RFC 1105 của Cisco và IBM năm 1989, đánh dấu sự xuất hiện của BGP v1
- Sau đó BGP v2 (1990) và v4 (1994) lần lượt được công bố, và v4 vẫn được sử dụng cho đến nay
- BGP đã trở thành giao thức chuẩn quyết định các tuyến kết nối giữa mọi mạng trên Internet
Mối quan hệ giữa traceroute và BGP
- Ví dụ tuyến đường: AS16509 → AS2914 → AS24940
- Theo thứ tự là Amazon (AS16509) → NTT Global IP Network (AS2914) → Hetzner (AS24940)
- Ngay cả trong cùng một ASN vẫn có thể có nhiều hop, và điều này được xử lý bằng giao thức định tuyến nội bộ hoặc tuyến cố định
- Quan hệ peering giữa các AS quyết định khả năng kết nối thực tế trên Internet
Tóm tắt
- Website chạy traceroute tới IP của người dùng và truyền kết quả qua luồng HTTP
- traceroute sử dụng TTL của gói ICMP để trực quan hóa đường đi giữa các router
- Mỗi router thuộc về một hệ tự trị (AS) và được kết nối với nhau thông qua BGP
- Quan hệ peering quyết định khả năng tiếp cận và cấu trúc của Internet
Epilogue
- Tác giả nhận ra mình còn thiếu hiểu biết về cấu trúc Internet nên đã tạo ra một bài viết tương tác mang tính giáo dục xoay quanh các giao thức
- Thay vì theo đuổi một dự án lớn với độ hoàn thiện tuyệt đối, tác giả chọn công khai nó dù ở quy mô nhỏ
- Dự án được hoàn thành nhờ sự khích lệ từ cộng đồng Hack Club và tận dụng chương trình traceroute mã nguồn mở
- Với thông điệp “hoàn thành dù nhỏ vẫn tốt hơn”, tác giả hy vọng nội dung này sẽ tồn tại như một nội dung web bền vững
Chưa có bình luận nào.