Thiết kế hệ thốngTôi viết một con DNS server để hiểu thứ mình đã tin tưởng mù quáng suốt mười năm
Có những công nghệ bạn dùng mỗi ngày mà chưa từng nhìn thẳng vào mặt nó. Với tôi, DNS là một trong số đó. Tôi gõ tên miền cả thập kỷ. Mua domain, trỏ record, chờ "propagate", chửi thề khi nó không lên, rồi vui khi nó lên — mà thật ra không hiểu tại sao nó lên. DNS với tôi giống công tắc điện trong nhà: bật là sáng, hỏng thì gọi thợ. Cho đến một đêm deploy, web chết. ping ra IP vẫn ngon, curl thẳng vào IP vẫn trả về trang. Chỉ riêng cái tên miền là im lặng. Tôi ngồi đó và nhận ra một điều hơi nhục: tôi không biết bắt đầu sửa từ đâu, vì tôi chưa bao giờ thật sự hiểu cái thứ đang hỏng. Nên tôi làm điều mà chắc chỉ dân kỹ thuật mới thấy hợp lý: thay vì đọc tài liệu cho qua, tôi ngồi viết hẳn một con DNS server bằng Rust. Project tên mini-dns. Bài này là những gì một hộp đen kể cho tôi nghe khi tôi cuối cùng cũng chịu mở nó ra.