feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

tcpip详解笔记(12) DNS

Posted on 2012-10-21 21:30  feisky  阅读(743)  评论(0编辑  收藏  举报

1. DNS是一种用于TCP/IP应用程序的分布式数据库,提供主机名字和IP地址之间的转换以及有关电子邮件的选路信息。从应用的角度来看,其实就是两个库函数gethostbyname()和gethostbyaddr()。

2. DNS 是一个分布式数据库,它利用树形目录结构将主机名称的管理权分配给各级的DNS服务器,这使得管理和修改工作可以在各层本地完成,减少了每一台服务器的数据量,使得管理数据更加容易。

  完整的域名是一个由“.”分隔的字符串,其中每个部分都代表一个域或主机名。例如www.tsinghua.edu.cn. 和www.zju.edu.cn. 这是两个完整的域名,但是他们虽然不是同一台机器,却有相同的主机名www,而在互联网中名字相同的主机非常多,怎样准确地定位某台主机呢?这需要先确定他们所属的域,这样就算有再多名字是www的主机,只要在不同的域当中,我们也能准确地找到它。

3. FQDN:全域名(FQDN,Fully Qualified Domain Name)是指主机名加上全路径,全路径中列出了序列中所有域成员(包括root)。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。

4. 指针查询(即反向查询):根据IP查询相应的域名。DNS使用另一棵树来做这个反向查询,其根节点为in-addr.arpa,下一级为该IP的第一个字节,再下一级为该IP的下一个字节,以此类推。

示例:
# host 140.252.13.34
34.13.252.140.in-addr.arpa domain name pointer pipen14.tuc.noao.edu.
# host tuc.noao.edu
tuc.noao.edu is an alias for noao.tuc.noao.edu.
noao.tuc.noao.edu has address 140.252.1.28
noao.tuc.noao.edu mail is handled by 10 barracuda-1.tuc.noao.edu.

5. 资源记录(RR)

A记录:  用于查询IP地址
PTR记录:  用于指针查询
CNAME:  表示“规范名字”,用来表示一个域名,也通常称为别名
HINFO:  表示主机信息,包括主机CPU和操作系统的两个字符串
MX:  邮件交换记录
NS:  名字服务器记录,说明一个域的授权名字服务器

6. 高速缓存

为了减少DNS的通信量,所有的名字服务器均使用高速缓存。在标准Unix是实现中,高速缓存是由名字服务器而不是名字解释器来维护的。

7. 用UDP还是TCP

DNS服务器支持TCP和UDP两种协议的查询方式,而且端口都是53。而大多数的查询都是UDP查询的,一般需要TCP查询的有两种情况:
1. 当查询数据多大以至于产生了数据截断(TC标志为1),这时,需要利用TCP的分片能力来进行数据传输(看TCP的相关章节)。
2. 当主(master)服务器和辅(slave)服务器之间通信,辅服务器要拿到主服务器的zone信息的时候。

无觅相关文章插件,快速提升流量