Rust中从头开始编写DNS服务器的指南

2020-06-07 12:21:05

互联网有丰富的概念基础,有许多令人兴奋的想法,使它能够像我们所知的那样发挥作用。其中一个非常酷的是DNS。在发明之前,互联网上的每个人都依赖于斯坦福研究所(StanfordResearch Institute)维护的名为HOSTS.TXT的共享文件--诚然,在那个阶段,互联网上的许多人并不是那么多人。此文件是通过FTP手动同步的,随着主机数量的增加,更改的速度也随之增加,系统也变得不可行。1983年,Paul Mockapetris着手寻找问题的长期解决方案,并继续设计和实现DNS。正如我们今天所知,他的发明已经能够从几千台计算机扩展到互联网,这证明了他的天才。

出于对DNS的深入理解、对Rust做一些有趣的事情以及满足我自己的一些问题的综合目标,我最初开始实现我自己的DNS服务器。这份文件不是对那段旅程的真实编年史,而是它的理想化版本,没有我最终走的所有弯路。我们将从基本原则开始,逐步实现完整的DNS服务器。