简单聊聊Dns如何工作的

1920阅读 0评论2014-03-12 308938969
分类:系统运维

随便聊聊

 我们知道,网络上传输的数据包是一层一层的包起来的

(典型的是mac地址层,ip层,tcp/udp层,应用层数据 这么几个层)

那用户在浏览器中打开的后端服务器呢?

我们这个数据包没有ip层的目标ip啊,http请求怎么知道往哪里发?

这个时候,dns系统就介入了,dns系统首先会把这个地址给找出来!

Dns系统主要是依靠权威dns,和递归dns来工作的,那权威dns和递归dns都是干嘛的呢?

权威dns(Authority dns)

首先我们来聊一聊权威dns。

权威dns做的事情主要是管理某个或多个特定域的dns服务。

一般大一点的公司,都有自己的权威dns

比如所有”.alipay.com”结尾的域名都由alipay来管理

所有”.alibaba.com”结尾的域名都由alibaba来管理(alipay和alibaba实际又是同一家公司来管理)

所有“.baidu.com”结尾的域名都由baidu来管理

Alibaba和baidu各管各的,没有交互。

那整个域名系统,如何跑起来的呢,不然你说你管理alibaba.com的所有域名,我说我也管理alibaba.com的所有域名,不就乱套了么。

光说是没有用的,必须要到相关注册局机构去注册。

(1)      最上面是根域。

(2)      一级域要去根上注册,像com域,net域就属于一级域

Com域(也就是所有以“.com”结尾的老祖com域)要去根上注册com域的域名服务器(nameserver)列表。

Net域(也就是所有以”.net”结尾的老祖net域)要去根上注册net域的域名服务器(nameserver)列表。

….

那你说a.b.c这个域名的一级域是谁,当然是“c”了,但是c域就没有在根上面去注册,所以这个域名是个无效的域名。

(3)      二级域一般要到一级域上去注册

alibaba.com要到com域去注册自己的域名服务器nameserver列表

Baidu.com也要到com域去注册自己的域名服务器nameserver列表

 

这样的一些实际管理域名系统的dns都是权威dns

就这样一级一级的注册。整个域名系统就连起来了,就变成了这么个东西

alt

所以dns叫做分布式的域名系统,分布在世界上面的各个管理域名的公司或机构

(有些情况用户只想简单的把自己的ip转化为某个域名,而不想管理整个域,那这个时候他就可以去买域名,有些公司是专门卖域名的。比如alibaba.com完全可以卖任何以“.alibaba.com”结尾的域名,只是alibaba.com不会这么干,这样做一些钓鱼网站来挂自己的网站,也以alibaba.com结尾的话,用户不就很容易被钓鱼了么,,比如我支付宝付款的时候我只看跳转后的域名是否是以alipay.com结尾的,如果不是我就不敢付款)

递归DNS(Recursion DNS)

那用户访问,请求又是如何到alibaba的权威dns服务器上面找到的ip呢?

这个时候递归dns(我们一般叫做local dns)就介入了。

用户首先要直接配置自己的dns服务器,一般你拨号上网,或者在公司里面上网,我们windows系统都已经预想配置好了递归dns服务器的ip地址,当然自己也可以修改

alt

RHEL Linux系统是/etc/resolv.conf配置文件来配置。

 

一个用户访问的过程如下(可放大图片观察)

alt

 

其中有几点补充

聊聊dns攻击

我们顺便聊聊dns攻击问题,典型的有拒绝服务攻击,dns劫持等。

如有错误,欢迎指正。

上一篇:常用的免费的开源软件
下一篇:DNS系统基础