2009-10-31 141 views
1

我必须在C中实现一个DNS服务器,我不知道从哪里开始。 DNS具有的所有功能是什么......我如何在单个C文件中实现一个简单的DNS。一个简单的DNS服务器

我甚至不想使用数据库,只是一个文件将工作。

预先感谢您

+0

不写一个完整的DNS,所以阅读永不结束的RFC是有点无聊。或者这是绝对必要的? – 2009-10-31 17:39:30

+0

你是什么意思的裸骨?什么都不支持,但查找? :) – 2009-10-31 17:58:25

+0

是的。我想要一个骨架代码,它让我明白传递的消息的类型等。 – 2009-11-01 07:31:04

回答

4

这大功课!你的老师雄心勃勃。实现DNS 需要读取至少十分复杂RFC(不提DNSSEC ...)不要 限制自己的RFC 1034和1035,有强制性 RFC后(如2181和2671)。看到他们的nice graph

它是一个权威的名称服务器还是递归的?

您是否必须从头开始?如果不是这样,我强烈建议与evldns库,它可以让你在200线下的写 anthoritative名称服务器

否则启动 ,通常建议适用:读取源代码(我建议 nsd为权威服务器和unbound递归 一)。

1

DNS是一个很大的规格。如果你真的想要DNS,请使用DNS服务器。所以,如果你想获得真正的快速和肮脏的,为什么不写编辑您的主机文件(C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \ hosts或/ etc/hosts文件(在UNIX上)?)程序