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

DNS简介及配置

时间:2015-08-13 20:24:07      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:域名服务器   浏览器   域名查询   客户端   address   

一、DNS基本概念
        DNS(Domain Name System)域名系统,DNS协议使用了UDP协议和TCP协议,端口号为 53,UDP 53端口用来查询和接受应答,TCP 53端口用于主服务器和从服务器之间的传送。
       域的划分:根域:全球13个根服务器,后缀如.com,.net等;根域下来就是顶级域或者叫一级域,一级域之后就是二级域,三级域,如 baidu.com就是一个顶级域名;域名服务器就是能提供域名解析的服务器,上面的记录类型有A(address)记录,NS(name server),MX(mail),CNAME等;
二、域名解析的方式
       递归解析:DNS客户端只是发出原始的域名查询请求报文,然后一直处于等待状态,直到本地域名服务器发来了最终的查询记录。
       迭代解析:以本地DNS服务器为中心,本地域名服务器扮演DNS客户端的角色向其他的DNS服务器提出域名解析的请求,每次返回认为可以解析这个查询IP的地址,直到找到该域名的授权服务器。
三、解析过程
                技术分享

     1,当用户在浏览器中输入域名www.qq.com后,浏览器会先检查本地缓存中是否 有此域名对应的解析ip(缓存时间有TTL属性来设置),如果有,解析结束;如果没有,浏览器就会查询操作系统缓存中(hosts文件中)是否有域名的 DNS解析,如果hosts文件中没有这个域名的映射,则就会到resolve.conf文件中查看指定的本地DNS服务器;
     2,如果本地DNS服务器收到请求,如果在本地资源记录中查到IP的解析结果,则返回解析结果给客户机,解析结束;
     3,如果要查询的域名不再本地DNS解析中并且没有转发模式,则本地DNS服务器就向根域服务器发送.com域名解析请求;
     4,根域服务器收到请求,向本地服务器返回一个顶级域名服务器的一个IP;
     5,本地DNS服务器收到IP信息后,向负责.com域的这台服务器发送www.qq.com的解析请求;
     6,如果无法解析,则返回给本地域名服务器一个二级域名(qq.com)解析服务器地址;
     7,本地DNS服务器收到地址后,就向该地址发送解析www.qq.com请求,若该域名服务器在自己的资源配置中找到解析,则返回www.qq.com主机的IP;
     8,本地域名服务器将www.qq.com主机的ip地址返回给客户机;
四、DNS详细配置过程
       实验环境:redhat 6.5
       实验主机:    172.25.16.250 实现转发
                          172.25.16.1   server1    DNS服务器
                          172.25.16.2  server2     客户端
       DNS主配置文件:/etc/named.conf
       指定DNS服务器解析地址:/etc/reslov.conf
[root@server1 ~]# yum install bind -y                     //安装bind软件包
[root@server1 ~]# rpm -qc bind                            //查找bind的配置文件
[root@server1 ~]# rpm -qa | grep bind                 //查看已经安装的软件
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64                      
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64                  //客户端工具,用于搜索域名指令,如dig
bind-9.8.2-0.17.rc1.el6_4.6.x86_64                          //DNS服务的主程序包
[root@server1 ~]# vim /etc/named.conf              //修改主配置文件
options {
        listen-on port 53 { any; };                  //监听权限改为any,允许任何主机都可以通过TCP 53端口连接此dns服务器
        listen-on-v6 port 53 { ::1; };                   
        directory       "/var/named";                //指定dns工作目录,存放数据资源文件
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };                   //允许任何主机访问A记录文件
        forwarders { 172.25.16.250; };         //这条参数后面的ip所在的服务器为备选dns服务器,也就是设置转发功能,当本机无法查询解析到域名,就可以转发到此ip服务器上查询
        recursion yes;

        dnssec-enable yes;
        dnssec-validation no;                   //关闭dns安全认证
        dnssec-lookaside auto;

       
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {                                    //该zone定义语句定义了dns服务器的根和根记录文件
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";                  //定义子配置文件
include "/etc/named.root.key";
[root@server1 ~]# vim /etc/named.rfc1912.zones       //指定要维护的域qq.com
zone "qq.com" IN {
        type master;
        file "test";                                       //test文件为所要维护的域名中主机与ip的对应关系
        allow-update { none; };
};
[root@server1 ~]# cd /var/named
[root@server1 named]# ls
data     named.ca     named.localhost  slaves
dynamic  named.empty  named.loopback   test
[root@server1 named]# cp -p named.localhost test          //使用模板生成test
[root@server1 named]#vim test                                       //添加主机与ip对应关系
$TTL 1D
@       IN SOA lijiajing.qq.com. root.qq.com. (                 //SOA表示授权的主机名字
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      lijiajing.qq.com.
lijiajing       A       172.25.16.1
haha            A       172.25.16.111
aa              A       172.25.16.222
[root@server1 named]# /etc/init.d/named restart
//在客户端指定dns服务器的地址ip
[root@server2 ~]# vim /etc/resolv.conf
nameserver 172.25.16.1
//测试
[root@server2 ~]# dig haha.qq.com                          //或者用   nslookup haha.qq.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> haha.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21743
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;haha.qq.com.            IN    A

;; ANSWER SECTION:
haha.qq.com.        86400    IN    A    172.25.16.111

;; AUTHORITY SECTION:
qq.com.            86400    IN    NS    lijiajing.qq.com.

;; ADDITIONAL SECTION:
lijiajing.qq.com.    86400    IN    A    172.25.16.1

;; Query time: 58 msec
;; SERVER: 172.25.16.1#53(172.25.16.1)
;; WHEN: Tue Aug  4 00:10:45 2015
;; MSG SIZE  rcvd: 85
 


本文出自 “8397752” 博客,请务必保留此出处http://8407752.blog.51cto.com/8397752/1684355

DNS简介及配置

标签:域名服务器   浏览器   域名查询   客户端   address   

原文地址:http://8407752.blog.51cto.com/8397752/1684355

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