Tự xây dựng network stack riêng: Bài học từ một kỹ sư về sự phi tập trung hóa Internet
Bài viết chia sẻ hành trình của một kỹ sư tự tay viết bộ network stack (ngăn xếp mạng) của riêng mình và triển khai nó trên mạng DN42 — một mạng lưới phân tán dành cho việc học tập và thử nghiệm. Tác giả nhấn mạnh rằng việc phụ thuộc vào một network stack dùng chung (như Linux) tạo ra rủi ro tập trung hóa, và đề xuất mỗi người nên có một giải pháp riêng. Dự án DNet của anh đã đạt được khả năng phản hồi DNS, ICMP và UDP trực tiếp từ code tự viết, mở ra hướng đi thú vị cho cộng đồng mạng tại Việt Nam.
Tự xây dựng network stack riêng: Khi kỹ sư chán sự "độc quyền" của Linux
Trong một thế giới mà Linux chiếm lĩnh hầu hết hạ tầng Internet, một lỗ hổng nghiêm trọng trong kernel network stack có thể khiến cả hành tinh lao đao. Đó chính là lý do một kỹ sư tại NJU quyết định "nổi loạn" bằng cách tự viết bộ network stack của riêng mình và đưa nó lên mạng DN42 — một mạng phân tán dành cho các thử nghiệm kỹ thuật. Kết quả: một máy chủ DNS hoạt động hoàn hảo từ code viết tay, không hề dựa vào bất kỳ framework hay thư viện mạng nào có sẵn.
Vì sao phải "làm khác đi"?
Bài viết mở đầu với một tình huống giả định: nếu một lỗ hổng RCE (Remote Code Execution) xuất hiện trong network stack của Linux kernel, toàn bộ Internet sẽ đứng trước nguy cơ sụp đổ vì hầu hết máy chủ đều dùng chung một mã nguồn. Tác giả nhận định đây là sự tập trung hóa quá mức — đi ngược lại tinh thần phi tập trung của mạng lưới toàn cầu.
"Trong một mạng lưới thật sự phân tán, mỗi người nên có một network stack riêng. Như vậy, nếu một bản cài có lỗi, cả mạng vẫn sống sót."
DNet — Tự viết từ con số 0
Sau 4 năm bỏ bê, dự án DNet (thuộc series ISP@Home) đã được tác giả "vác" trở lại, vá vài lỗi và biến nó thành một DNS server thực thụ phục vụ domain 42420167.xyz trên DN42.
Các bước cơ bản mà DNet đã thực hiện thành công:
- Tạo TAP device trên Linux để gửi/nhận Ethernet frame
- Parse Ethernet frame, xử lý ARP lookup và phản hồi
- Parse IPv4 packet, đáp ứng ICMP echo request
- Gửi/nhận UDP packet
Điểm ấn tượng nhất: khi bạn chạy lệnh dig TXT sgp1.dn42.42420167.xyz từ bất kỳ máy nào trên Internet, phản hồi DNS được phục vụ trực tiếp bởi network stack viết tay này — không qua bất kỳ ngăn xếp mạng tiêu chuẩn nào của hệ điều hành.
Bài viết trích dẫn kết quả thực tế với 7 bản ghi TXT trả về, bao gồm IPv6 LLA, Public key, cấu hình MP-BGP, và thông tin ASN — tất cả đều do DNet xử lý.
Bài học về hạ tầng: Từ NixOS "vibe coding" về lại Debian
Một phần thú vị khác là câu chuyện hạ tầng. Tác giả từng thử chuyển toàn bộ VPS sang NixOS bằng "vibe coding" (gõ code theo cảm hứng), nhưng vì không thực sự hiểu Nix, hệ thống nhanh chóng trở thành mớ hỗn độn vỡ vụn mỗi lần deploy.
Sau cùng, anh quyết định quay lại Debian và dùng pyinfra (công cụ quản lý hạ tầng bằng Python) cùng Docker Compose để cô lập từng dịch vụ trong namespace riêng. Cách này giúp tránh được sự "nhiễu loạn" do cấu hình chồng chéo sau nhiều lần triển khai lại.
Góc nhìn cho cộng đồng mạng Việt Nam
Câu chuyện này không chỉ là một "trò troll" kỹ thuật mà còn mở ra hướng suy nghĩ mới cho các kỹ sư mạng tại Việt Nam:
- Học sâu về mạng: Tự viết network stack là cách học sâu nhất về TCP/IP, ARP, DNS — vượt xa việc đọc sách.
- Thực hành trên DN42: Mạng DN42 (sử dụng địa chỉ IP 172.20.0.0/14) là môi trường lý tưởng để thử nghiệm các giao thức định tuyến BGP, OSPF, hay các dịch vụ mạng custom mà không ảnh hưởng đến Internet thật.
- Tư duy phi tập trung: Với các nhà cung cấp dịch vụ tại Việt Nam, việc phụ thuộc vào một ngăn xếp mạng duy nhất (dù là Linux hay thương mại) đều tiềm ẩn rủi ro lớn. Đa dạng hóa giải pháp là xu hướng an toàn.
Kết luận
Dù bài viết kết thúc khá bất ngờ — tác giả thừa nhận đây chỉ là dự án "troll" và đang tạm dừng series DN42 vì mạng lưới có quá ít người tham gia — nhưng giá trị giáo dục và truyền cảm hứng của nó là rất lớn. Nếu một kỹ sư có thể tự xây dựng network stack để phục vụ DNS từ đam mê thuần túy, tại sao giới trẻ Việt Nam không thử sức với những thử nghiệm táo bạo tương tự?
Có thể ngày nào đó, từ một thử nghiệm như DNet, chúng ta sẽ thấy những kỹ sư trẻ Việt xây dựng nên những giải pháp mạng phi tập trung có thể thay đổi cách Internet vận hành.