zoukankan      html  css  js  c++  java
  • DNS基本概念和相关命令

      1、基本概念:

      1)域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息

      DNS最常用的版本(包括解析器和名字服务器)是BIND——伯克利Internet域名服务器。该服务器称作named。

      2)DNS的层次组织

      

      命名标志中一律不区分大小写。命名树上任何一个结点的域名就是将从该结点到最高层的域名串联起来,中间使用“.”分割,如上图的sun.tuc.noao.edu.。

      顶级域中有7个3字符长的普通域/组织域,还有2字符长的国家域。

      3)区域(zone)与主/辅名字服务器

      一个独立管理的DNS子树称为一个区域(如一个二级域)。

      网络信息中心NIC负责分配顶级域和委派其他指定地区域的授权机构。一旦一个区域的授权机构被委派后,由它负责向该区域提供多个名字服务器。当一个新系统加入到一个区域中时,该区域的DNS管理者为该新系统申请一个域名和一个IP,并将它们加到名字服务器的数据库中。

      一个名字服务器负责一个或多个区域。一个区域的管理者必须为该区域提供一个主名字服务器和至少一个辅名字服务器。主、辅名字服务器必须是独立和冗余的,以便当某个名字服务器发生故障时不会影响该区域的名字服务。

      主、辅名字服务器的主要区别在于:主名字服务器从磁盘文件中调入该区域的所有信息(有新主机加入一个区域时,区域管理者将其名字和IP等加入到主名字服务器的一个磁盘文件中,然后通知该服务器重新调入配置文件);而辅名字服务器则从主服务器调入所有信息(该过程称为区域传送zone transfer。通常是每隔3小时向主名字服务器询问是否有新数据)。区域传送使用TCP。

      4)DNS的分布特性:当一个名字服务器没有请求的信息时,它必须与其他的名字服务器联系。

      该(主)名字服务器可能不知道如何同其他名字服务器联系,但它必须知道根名字服务器的IP(根服务器知道所有二级域中每个授权名字服务器的名字和IP),并与它们联系,而根服务器再告诉该服务器与另一个名字服务器联系。根服务器列表可以查看ftp.rs.internic.net。

      5)TCP or UDP

      DNS对UDP和TCP都使用53端口。DNS主要使用UDP,无论是名字解析器还是名字服务器都必须自己处理超时和重传。由于DNS查询和响应通常经过广域网,分组丢失率和往返时间的不确定性比局域网上更大,所以对于DNS客户程序,一个好的超时和重传程序就显得更为重要了。

      6)DNS报文相关字段:

      (1)资源记录RR。常用值:

      A:一个A记录定义了一个IP地址,它存储32bit的二进制数;PTR:指针记录用于指针查询(IP地址->域名);CNAME:“规范名字”;HINFO:主机信息,包括说明主机CPU和操作系统的两个字符串(可能没有提供,或者不是最新);MX:邮件交换记录(一些使用场合:一个没有连到Internet的站点能将一个连到Internet的站点作为它的邮件交换器。它们能够用一种交替的方式交换到达的邮件,而通常使用UUCP协议;MX记录提供一种将无法到达其目的主机的邮件传送到一个替代主机的方式);NS:名字服务器记录。它说明一个域的授权名字服务器。

      (2)标志字段。常用值:

      QR(1bit):0表示查询报文,1表示响应报文。

      AA(1bit):授权回答(authoritative answer)。该名字服务器是授权于该域的(其回答在该域内是可相信的)。

      RD(1bit):期望递归(recursion desired)。1表示递归查询,即如果目标DNS服务器无法解析主机名,则它将向其他DNS服务器继续查询,如此递归直到获得结果并返回给客户端。而0表示迭代查询,即如果目标DNS服务器没有一个授权回答,则它将返回一个能解答该查询的其他名字服务器的列表。

      RA(1bit):可用递归。如果名字服务器支持递归查询,则在响应中将该比特设置为1。大多数名字服务器都提供递归查询,除了某些根服务器。

      7)DNS的一个基本特性是使用超高速缓存。

      2、dig(domain information groper,域信息搜索器):DNS lookup utility。

      1)dig用于向DNS名字服务器查询域信息。它通常拥有比其他查询工具更多的功能。

      2)常用选项:-f:批处理模式,从文件中读取一系列查询请求(每行一个);-t:设置查询类型(如区域传送为AXFR默认是A)。参考上文的RR;-x:反向查询(地址->名字);-4:使用IPv4;-6:使用IPv6;-c:设置查询类(class)。通常为IN,指互联网地址。

      另外,通过${HOME}/.digrc可以设置特定于每个用户的dig默认选项。这些选项在命令行参数之前被应用。

      3)使用示例:

      (1)查询www.baidu.com的MX记录:dig -t MX www.baidu.com,或dig www.baidu.com MX,或指定名字服务器dig @localhost www.baidu.com MX(除非显式指定,否则dig会尝试询问/etc/resolv.conf中指定的所有服务器。若找不到可用的服务器地址,dig会发送查询请求给本地主机)。

      (2)在命令行上使用POP访问163邮箱:

      dig -t A pop.163.com。以下是部分输出:

    ;; ANSWER SECTION:
    pop.163.com.		85978	IN	CNAME	pop3.163.idns.yeah.net.
    pop3.163.idns.yeah.net.	1372	IN	A	220.181.12.101

      telnet 220.181.12.101 110。以下是部分输出:

    Trying 220.181.12.101...
    Connected to 220.181.12.101.
    Escape character is '^]'.
    +OK Welcome to coremail Mail Pop3 Server (163coms[726cd87d72d896a1ac393507346040fas])

      之后就可以输入POP命令与服务器交互了。

      3、host:DNS lookup utility。

      1)host是一个简单的DNS查询工具,通常用于主机名字与IP地址的相互转换。

      2)常用选项:-a:等效于设置-v选项并指定查询类型为ANY;-c:设置查询类。默认为IN(Internet);-d/-v:详尽输出;-r:指定迭代查询(清除RD位);-T:使用TCP进行查询(默认使用UDP)。一般用在区域传送时;-4:使用IPv4;-6:使用IPv6;-t:设置查询类型;-R:指定查询时UDP的重试次数(默认为1);-W/-w:指定等待应答的时间。-W设置等待的秒数,-w则指定永远等待应答;-l:为指定区域执行区域传送。

      参考资料:

      《TCP/IP详解 卷1:协议》

    不断学习中。。。

  • 相关阅读:
    分布式系统中的限流与熔断
    迷你MVVM框架 avalonjs 0.99发布
    将一个符合URL格式的字符串变成链接
    用CSS开启硬件加速来提高网站性能(转)
    通过window.crypto.getRandomValues获得一个大于零的随机数
    jquery slideDown效果
    五个你必须知道的javascript和web debug技术
    迷你MVVM框架 avalonjs 0.98发布
    使用avalon实现SKU组合查询功能
    angular与avalon对复杂对象的修改
  • 原文地址:https://www.cnblogs.com/hanerfan/p/4705824.html
Copyright © 2011-2022 走看看