DNS对于大家来说并不陌生,因为这个是我没访问互联网必不可少的一个东西,DNS的主要作用是将主机名解析成IP地址的过程,因为在计算机网络当中是通过IP地址来进行主机之间互联的。相较电脑喜欢数字识别IP而言,而人更喜欢简单容易记忆的字符串来代替IP地址,就像我们访问www.baidu.com 的时候他就能知道访问的是115.239.211.112这个ip的服务器,那因此我萌就需要有一种机制能够完成从域名(FQDN)到主机识别IP地址的转换,因此DNS应运而生,DNS的主要作用就是解决域名到IP之间的转换。【hosts 只能作用于本主机,而不能同步更新到所有主机使用,而且当hosts文件很庞大时是很难管理】


DNS是一个分布式、分层次的主机名管理架构,通过配置DNS服务器地址,主机不需要知道对应IP地址就能通过主机名的形式访问互联网。DNS利用类似倒状树的目录结构将主机名管理分配到不同层级的DNS服务器当中。


上面提到的FQDN即为完整主机名,完整主机名是由主机名和域名构成。我们可以通过简单例子来阐述主机名和域名的概念:假如我给魅族官方客服打电话,总部的主机号码是7883333,如果我自己直接拨号7883333后,电话局会认为我拨打的是本地电话号码,那他将会直接转给本地的7883333的主机上,但实际上我需要的是深圳的7883333,那么我就需要在该号码前加拨深圳的区号400,这样就能将电话接到深圳总部,这里的电话号码7883333其实就是主机名,而400就是区域名即域名,两者结合起来400-7883333就算完整的主机名即FQDN,只不过在DNS当中FQDN是由倒状的电话号码组成(7883333-400)。比如我们经常访问的www.baidu.com 当中,www就是web网站服务器的主机名,baidu.com 就是域名,主机名与域名之间用实心的点号来表示。


DNS解析主机IP的流程---以我们去查找www.baidu.com 这个FQDN所对应的主机IP地址:
1、本地主机先查询本地hosts文件看是否有www.baidu.com 主机与ip的对应关系,若有,则直接给予想要;若没有,则进行第2步;
2、此时本机将向指定的dns server(假设为NS1)发起请求,NS1在接收到来自客户端的请求后,会及时的去查询NS1上的缓存记录,查看是否有关baidu.com 的解析记录,若有则将结果反馈给客户端;若没有,则进行第3步;
3、此时NS1会主动向根域名服务器发起查询www.baidu.com 的请求,但是由于根服务器只记录了.com 的相关信息,此时根会告知NS1:我这没有www.baidu.com 的记录,你可以去向.com去查询,并告.com的地址;
4、于是NS1就根据根服务器告知的.com的地址向.com发起查询www.baidu.com 的请求,由于.com 服务器只记录了baidu.com 的记录,但没有www主机的记录,因此就告知NS1服务器说:我这没有www.baidu.com 的具体记录,但我知道baidu.com的地址,你可以去向baidu.com查询;
5、接着NS1就根据.com告知的baidu.com的地址向baidu.com发起www.baidu.com 的查询请求,于是baidu.com就可以查询本地的记录,找到了www主机对应IP地址115.239.211.112,于是将www.baidu.com 的IP115.239.211.11给NS1;
6、NS1在收到具体的结果后,将会将结果存储在本地DNS缓存中,以方便下次有相同的解析请求能够快速响应,之后将结果直接反馈给客户端,完成解析。

DNS是一个网路服务,因此就有对应的端口,其端口为53号,通常DNS在查询的时候是以udp这个快速的数据传输协议来查询的,但是一旦没办法查询到完整的信息时就会再次以TCP协议来进行重新查询,因此DNS服务在启动时会同时开启tcp53号端口和udp的53号端口。(953是rndc监听端口)


CDN的价值:1.为架设网站的企业省钱。 2.提升企业网站的用户访问体验(相同线路、相同地域、内存访问)。 3.可以阻挡大部分流量***,例如:DDOS***。   日100万PV的架构该如何设计? 首先应该尽量考虑把网站数据放到CDN中缓存,这样计算在网站的总流量、总访问量后减去CDN的访问流量,剩下的的访问量规模需要的架构才是我们需要设计考虑的。所以说一个良好的网站架构设计,访问量尽量都交给CDN。
CDN可能一听到就直观感受就是加速功能  当我们访问www.163.com 时 看得出来用的就是CDN加速。


安装部署DNS服务器:centos5以后的系统可以直接使用yum来安装bind软件就好         其他功能包bind-utils   提供git工具  

源码安装的话可以参照http://blog.csdn.net/zhu_tianwei/article/details/45045431


智能】DNS的配置文件: /etc/named.conf , /etc/named.rfc1912.zones : 为DNS主配置文件;
                             /var/named/ :  该目录为DNS数据库文件存放目录,没一个域文件都存放在这里;
                         图片.png为DNS服务的服务脚本;
首先了解下/etc/named.conf文件                          
其中最为核心的应该为zone 区   type为zone的类型,主要的类型有:针对根的hint; 主DNS的master, 从DNS的slave 和专用于转发的域的类型forward,除了根之外默认为master;file为该zone的文件名
先看下自己写的在/var/named 下的 exclouds.com案例:  
那么DNS的智能解析 达到不同网段的主机访问同一域名的解析结果是不一样是该如何配置呢   这就要涉及到访问控制acl函数   acl把一个或多个地址归并为一个集合,并通过一个统一的名称调用;需要注意的是:acl只能先定义,后使用。因此,一般定义在配置文件中options的前面。当然DNS的view功能也是结合acl来实现的,view也是一个函数,通常view有多个,每个view当中定义一组zone,用于实现不同的来源ip解析不同的 结果。
至于named.conf文件的配置上面已经整合出来了就不在多说,接下来这是添加的zone区的服务器的ns解析记录    exclouds.com.other和exclouds.com一样也可以
接下来可以使用dig来测试下DNS是否能够正常解析
再使用Windows主机IP:192.168.2.101       发现不同网段访问同一域名解析的ip不一样!