Godns - Go实现的DNS缓存服务器
最近用Go写了一个DNS缓存服务器,主要实现两个功能: DNS缓存 有缓存失效机制,在cache未命中时,支持设置上层递归服务器。 全局hosts 维护全局的hosts设置,统一实现解析域名到指定IP的需求。 另外,支持动态更新hosts记录,而不需要重启服务器进程。 重新造一个轮子的原因 实现了DNS缓存服务器并支持自定义的hosts的开源软件有很多,例如dnsmasq,之所以我们要自己写一个,是因为dnsmasq的hosts记录都是写在本地文件中,更新一条记录后,要重启进程才能生效。而我们需要能在不同的服务器上共同维护一个全局的hosts记录,并在hosts记录修改后能立即生效。目前能找到的实现,包括dnsmasq,pdnsd,djbdns,还没有一个能完全满足我们需求的。 用Go实现的...阅读全文