其实域名只是好记,IP才是主机之间的通讯记号!!
DNS是一种用于TCP/IP应用程序的分布式数据库,它提供主机名和IP地址间的转换有关的电子邮件的选路信息。当架设一个DNS服务器的时候,一定要配置两个名字服务器,一个主域名服务器,一个是次域名服务器,次域名服务会映射主域名服务器的所有信息的。这样当主域名服务器出现故障的时候还会有一个后备的。
分布式数据库,顾名思义就是很多地方都有的。DNS就是这样一个过程,它作为服务器,会将客户请求的主机名字与IP地址来进行转换,当遇到没法解析的时候它会去找其它的DNS服务器来帮忙解析这个看似很困难的主机与IP之间的转换的!这就是它的原理了
下面说一个缓存服务器吧,这是BIND的一个特点。当一个DNS服务器收到有关映射过来的信息(也就是主机到IP地址),它会将这个信息放到高速缓存中,这样若以后遇到相同的映射请求时就能直接使用缓存中的结果而无需再通过其他的服务器来查询了
当我们输入域名的时候,我们就会得到域名所带来的信息,而却不知有背后电脑做了多少事啊,不过这些也不必要我们去理的吧!
在配置DNS的时时候,会遇到类似于MX CNAME A PTR HINFO 这些信息的,这些都被叫做资源记录。在这里我觉得MX是最重要的,也是我最近才明白它的含义:MX(邮件交换记录)它提供一个无法直接连接Internet的主机可以和Internet上的主机们说话。它和可以连上Internet的主机有个协议就是:你一定要让我和其它的主机通讯,要不然我也没办法给你。我告诉你我的想法:就是当人想跟我通讯的时候,你就把话筒给我就得了。不过连上Internet的主机也肯这么做。于是就有MX的诞生了。其实不仅DNS用到它,连Email都会用到它的。
用host命令就可以查出一个IP或域名的MX记录,如查google的就是:
host -t mx
用host还可以查询所有的资源记录。格式如下
host -t 资源记录 IP/域名
用缓存的好处就是快,不过也有它的坏处,那就是吃内存。开始有疑问了:
缓存是活在内存中的吗?如果是的话重启后所有缓存不是不见了吗??如果是活在硬盘中,这样会命大一点,不过这样的话有它没它没什么分别啊。
很多服务器都用到缓存,如squid, Bind....