DNS,域名系统,互联网的一种基础服务。
如果不是断网,DNS记录污染,还有运营商DNS劫持,普通用户其实不会注意到这个服务。
程序员不会关注它,因为用到dns的时候只要调用系统现成的api就可以解决问题了。
系统工程师不会关注它,虽然配置起来有点麻烦,但是有现成的软件可以使用,多看看使用手册,多用用google,就能部署成功了。无论是windows环境还是unix环境,dns的设置其实都不是大问题。
阴差阳错的,我做和dns相关的事情有几年了,也许以后不再做,就此把对DNS的理解记录下来。
以概念和原理为主,不会纠缠于细节。
这是一个非常"古老"的服务,沿用至今的DNS协议标准是在1987年发布的。
这是一个相当古老的分布式存储系统,授权服务器构成存储的各个节点,节点上支持主从备份,数据同步等功能。
这是一个多级缓存系统,应用程序,操作系统,网络设备上都可以对dns查询结果缓存。确切的说是读取缓存,没有写入的接口。
从以上角度说,DNS协议是个成功的设计,用时髦的称谓,这是一个基于internet很不赖的分布式nosql数据库实现。
从另外一些角度看,DNS协议就不怎么样了:
因为使用UDP作为传输基础,天生安全性就差。
受限于UDP,协议中既要照顾到传输层,又要支持应用层,另外数据同步这种基于TCP的操作,也使用相同的协议,导致协议内容混乱,难于扩展。
这个分布式数据库系统的容量其实并不大,所有有效的注册域名记录可能也就是百亿数量级,用户最终查询涉及到的域名记录也就在10亿数量级【1】。就算再多两个数量级,这些数据量也远小于诸如google等互联网巨头的数据处理能力【2】。那么,如果不是商业和政治上的原因,这种分布设计在技术层面并无优点。
1. http://www.domaintools.com/internet-statistics/
2. http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html
本文介绍了DNS的基础概念及其作为互联网核心服务的重要性。DNS不仅是一种古老的分布式存储系统,还支持多级缓存机制。然而,由于其基于UDP传输,存在安全性和协议扩展性的局限。
237

被折叠的 条评论
为什么被折叠?



