码迷,mamicode.com
首页 > 其他好文 > 详细

DNS篇之一DNS理论知识

时间:2014-07-22 18:15:01      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:dns理论

DNS: 域名解析,BIND: Berkeley Internet Name Domain

SSL/TLS: http-->https, OpenSSL, CA, Digital Certificate, PKI

HTTP: HTTP协议,Apache, LAMP, Nginx(Engine X), LNMP(LEMP), MySQL, PHP, varnish

CDN: DNS(View), varnish  智能化dns;分布式的多个集群分别给我们服务用的。

File Server: NFS、SMB/CIFS、FTP

Netfilter: iptables (filter, nat, mangle, raw)、tcp wrapper

NSSwitch(名称解析的转换)只是提供了一个平台,让我们借助于NSSWITCH来帮我进行名称解析所用 framework, platform, PAM:可插入式认证模块。 

SMTP/POP3/IMAP4: Mail Server 这几个服务都是要详细进行讲解的。

SELinux: Security Enhanced Linux

D级别是最低的级别,A级别是最高的安全级别。我们的linux一般来讲是C2级别的。

C2-->SELinux-->B1









DNS: Domain Name Service

域名:www.baidu.com(主机名,也叫做FQDN:Full Qualified Domain Name, 完全限定域名)

其实之上的是个主机名,而非域名;一般说来我们能够直接访问的是个主机。而什么是域,

.com是个域;



DNS:名称解析,Name Resolving 其实就是名称转换(只是因为背后有查询过程,数据库,所以叫做名称解析服务)

DNS名称解析其实就是实现FQDN与IP地址之间的转换。也可以实现IP到FQDN的转换。DNS解析的过程是双向的。但是有些服务是单向的。

FQDN<-->IP

172.16.0.1 www.zl.com.

172.16.0.2 mail.zl.com.



用户名:

通过名字找到它的id号,也属于名称解析。

nsswitch:为多种名称解析,提供了一个平台。只是一个平台。别人可以在其上搭建这种店铺帮助别人完成名称解析服务所用。

nsswitch:在其之上的有libnss,libfiles,libdns等等。而我们的应用程序只需要到这个框架上找到这个能够实现名称解析服务的店铺即可。

libnss_files.so,libnss_dns.so.

对我们而言,其展现的就是一个配置文件,/etc/nssitch.conf.

hosts: files dns

file: /etc/hosts

dns: DNS


stub resolver: 名称解析器,根据配置文件来看查找对应的IP地址。


ping www.zl.com  先查找/etc/hosts;如果没有再查找dns服务器。


hosts文件的格式: 

IPADDR         FQDN    Ailases

192.168.5.10 www.zl.com www

在小规模的网络中,hosts文件就够用了。如果每个人都往里面写入文件,那么我们网络将会越来越大。

IANA:美国政府搞得;IP,FQDN。维护了网络中每一台主机的IP和FQDN的关系。早期有人需要加入互联网使用ftp进行下载即可。

 后互联网时代,计算机发展越来越快。完全跟不上。后来就开始考虑建个服务器,你只需要向我提供查找即可。我在server上进行更新即可。

 但是一台服务器就不够用了。开始使用集群,但是数据库越来越庞大了。管理数据成为瓶颈。


从一个集中式数据库跟转换成分布式数据库;怎么实现?

只需要将权限进行划分?总理管理全国太麻烦了,于是就划分区域,一个地区一个负责人即可。每一个人只能管理它的儿子,而不能越级指挥即可。

我们回忆下,如何查找到某一个人?在中国是先从大到小,开始查找。而老外是从小到大的。

但是每一个人都知道根在哪里即可。

.

.com .net .org   这种域称为top level domain。



正确的写法:www.baidu.com.还有一个叫做根域的东西。这个之前我给你们解释过。




TLD(top level domain):

组织域:.com, .org, .net, .cc

国家域: .cn, .tw, .hk, .iq, .ir, .jp

反向域: IP-->FQDN  将IP地址转换成主机名,早期只能正向解析,后来引入了一个机制。指针;但是从IP转换成FQDN是另外一套数据库。

反向:IP-->FQDN   反向;

正向:FQDN-->IP   正向;但是我们用的通常都是正向的。


IP-->FQDN:


FQDN-->IP:

www.zl.com. IP1


查询:

递归查询:只发出一次请求,最终就能得到答案。本地查询使用递归查询。

迭代:发出多次请求。请求者要发出多次请求才能找到答案。

解析:

正向:FQDN-->IP

反向:IP-->FQDN

互联网上的DNS查询方式是两段式:递归,迭代。但是缓存时间需要有最权威的服务器决定,给这个缓存条目的时候,同时指定自己的ttl值。

所以每一个服务器在返回答案的时候,不仅仅是返回了答案,还返回的有超时时间。


DNS:分布式数据库的特色

上级仅知道其直接下级;

下级只知道根的位置;


DNS服务器(ns除了接受外部人员的请求,还要接受本域内的查询请求;它们的工作机制不太一样。):

接受本地客户查询请求(递归)

外部客户端请求:请求权威答案

肯定答案:TTL

否定答案:TTL 对没有的回答,也给它一个ttl省的它过一会过来查询下,过来查询下,就会消耗我们计算机的资源。

外部客户端请求:非权威答案

一台服务器可以给多个域进行解析。但是它是如何知道的,就需要用到数据库。而这个数据库需要我们自己去建立。

DNS服务器类型

主DNS服务器: 数据修改,改主的服务器,其他服务器学习主dns服务器的数据即可。

辅助DNS服务器:请求数据同步。每隔一段时间就向主服务器发送个请求,看数据是否一致。

一主多从:主的挂掉,哪个从的上去。如果从服务器得不到主服务器的信号,它就会自杀了。从服务器不会去干主服务器的活。

serial number:第一定义一个序列号,每当主服务器数据更新,serial number就加1.从服务器发现自己比主服务器小就更新。

refresh:定义每隔多久从服务器就去检查主服务器的数据信息。

retry:如果没有得到主服务器的信息,多久再重试更新一次。

expire:定义过期时间,多久我认为你主服务器挂了,此时从服务器也挂掉。

nagative answer TTL:定义一个否定答案的缓存时长。

缓存DNS服务器:不负责域的解析,只是负责缓存。

转发器:当客户端不能直接访问互联网的时候,找台服务器帮忙负责查询。当然服务器都有缓存功能,将缓存功能去了就变成一个转发器了。


本文出自 “汗水成就梦想” 博客,请务必保留此出处http://redhatdragon.blog.51cto.com/9183870/1441335

DNS篇之一DNS理论知识

标签:dns理论

原文地址:http://redhatdragon.blog.51cto.com/9183870/1441335

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!