简介:dns是一个分布式数据库,提供两种功能:1)域名转ip 2)ip转域名。程序在使用TCPIP等协议之前必须将域名转为ip,tcpip根本不知道域名。


DNS basis:

tcp/ip学习笔记--第14章 DNS (the domain name system)

DNS组织的层次结构如图所示,最顶上的是根域名服务器。目前全世界有13台逻辑上的根域名服务器,全部都由美国控制。10台分布在美国,2台欧洲,1台日本。但是还有很多要域名器的镜像服务器(不知道原理是什么)分布在各个国家,中国也有。

其下是根域名服务器,分成三类:

1)arpa是一个用作地址到名字转换的特殊域。
2)7个3字符长的普通域。有些书也将这些域称为组织域。
3)所有2字符长的域均是基于ISO3166中定义的国家代码,这些域被称为国家域,或地理域。

DNS组织这颗大树的子树都可以称之为域,DNS很重要的一个概念就是授权,这些不同的域被授权给不同的组织分别维护。如添加,删除域名,设置主备域名服务器等。每个域名服务器必须知道根域名服务器的ip地址。对于自己不知道的域名,就需要像根域名服务器查询,多而获得相应的顶级域名服务器的地址,然后继续查询。

关于根域名服务器,不仅涉及到技术问题,还涉及到经济,政治,军事问题。知乎有一个相关的问题:

美国掌握 DNS 根服务器,为什么不封杀一些网站?


DNS message format

tcp/ip学习笔记--第14章 DNS (the domain name system)

标识用来将请求与响应对应起来。

16位的标记又被分为若干字段:

tcp/ip学习笔记--第14章 DNS (the domain name system)

QR:0表示请求,1表示响应

opcode:0表示标准查询,1表示反向查询,2表示服务器状态请求

AA:1表示此服务器对于问题中的域名是有权进行管理的

TC:1表示总长度超过了512字节,多余的部分被截断了。

RD:1表示期望递归查询。递归查询的意思就是如果你不知道,你帮我去向别人那查,查到结果之后将结果返回给我。

          0表示迭代查询,意思就是说,如果你不知道,就告诉我谁知道,我自己再去问知道的那个人。

RA:1表示告诉请求方,我可以提供递归查询服务。

后面的4个字段分别表示变长字段中包含的条目数。通过长度与格式信息,可以区分问题,回答,授权,额外信息等不同字段之间的边界。

问题的格式:

tcp/ip学习笔记--第14章 DNS (the domain name system)

查询类型和查询类长度固定,查询名长度不固定,表示方法如下:

tcp/ip学习笔记--第14章 DNS (the domain name system)

第一个字节表示紧随其后的标识符(域名组织图中的圆圈所表示的内容)的长度,长度不超过63,因为规定标识符的长度不能超过63,所以高2位就 一定是0.

所以这也就产生了一种压缩方法:用长度+偏移量的方式来表示重复的域名。

表示方法:如果表示长度字节的高2位被置为了1,则表明,紧随其后的两个字节是一个表示偏移量的指针,(当然,这个字节的低6位依旧表示长度,不过表示的是重合的长度)。DNS报文的第一个字节的偏移量为0(也就是标识字段),每一个字节递增。


DNS报文中的三种资源的记录格式:

tcp/ip学习笔记--第14章 DNS (the domain name system)

pointer queries 指针查询

如书上所说,这确实是很令人费解的一部分,网上相关的解释也比较少。

大意就是说,如果XX获得了某个域名空间的授权,那么你同时也获得了in-addr.arpa域名空间下对应的以ip为标识符的授权。比如说,noao.edu,注册的ip为B类地址,对应的网络号为140.252,那么252.140.in-addr.apra则同时也被授权给了XX。这样别人要用ip查找域名的时候就可以在这个域名空间下查找到ip对应的域名。

有一些细节问题没有弄明白:

1)一个ABC类网络号一定会分给一家机构吗?会不会通过子网的方式分给不同的机构,如果是的话,那么这个ip对应的域名空间该授权给谁呢?

2)在上面的例子中,252.140.in-addr.apra则同时也被授权给了XX,那么140.in-addr.apra这个域名空间是不是就没有授权给任何人呢。


resource Records 

没看,略


cachiing

为了减少DNS查询引起的通信量,所有的名字服务器都使用了缓存技术。

如果没有指定默认的域名服务器,就会联系从配置文件中读取到的根域名服务器。根域名服务器不提供递归查询的服务,所以RD标志位不能开启。

如果是从缓存中得到的结果,那么AR(授权标志)标志位不会被置1.

tcp/ip学习笔记--第14章 DNS (the domain name system)

不明白uu.net下面为什么可以授权不以uu.net结尾的域名空间。


14.9 another example

不明白这个步骤中:从tcp连接中得到IP->域名->ip,然后比较这个ip和之前从TCP连接中得到的ip是否相同这个过程的作用是什么。














相关文章:

  • 2021-12-23
  • 2021-12-09
  • 2021-07-03
  • 2021-09-30
  • 2022-01-13
  • 2021-09-30
  • 2021-06-29
  • 2021-10-18
猜你喜欢
  • 2021-10-28
  • 2021-10-16
  • 2022-01-15
  • 2021-12-26
  • 2021-10-21
  • 2022-12-23
  • 2021-12-30
相关资源
相似解决方案