首页 > 代码库 > DNS篇之一基础

DNS篇之一基础

        现在,用户打开一个网站页面只需要输入该网站的网址,而很多用户可能并不知道,在Internet发展的早期,只有通过IP地址才能打开需要浏览的网页。如今大多数情况下,登陆各个网站都不需要用到IP地址,而是通过英文网址,甚至只是部分关键字就可以访问特定的网页。实现这一便捷功能的网络服务就是DNS域名解析服务,他实现了IP地址到域名的对应,使用户能够更加方便、快捷的访问Internet网站。

 

一、DNS服务概述

        DNSDomain Name System,域名系统),实现IP地址à主机名、主机名àIP地址一一对应的一个分布式数据库。DNS协议运行在UDPTCP协议之上,使用UDPTCP53号端口。

DNS查询过程:

 

wKiom1PiFTiwqYu_AALckdufLrk166.jpg

客户端发送域名解析请求-->/etc/host.conf文件查看域名解析的搜索顺序-->查找本地hosts文件 -->查找本地 dns cache --> /etc/resolv.conf 查看DNS server位置--> 使用递归的方法-->DNSserver (cache) 搜索--> DNS server通过/var/named/named.ca 用迭代方法解析域名-->解析结果返回客户端。

 

DNS服务器类型:DNS服务器、从DNS服务器、缓存服务器、转发服务器、DNS view

专业名词介绍:

FQDN :Full Qualified Domain Name (完全合格域名)

 

二、DNS服务安装配置

DNS服务安装:

#yum –y install bind*

查看系统安装好的DNS服务:

# rpm -qa |grep bind

bind-9.8.2-0.17.rc1.el6_4.6.x86_64 (dns服务包)

bind-dyndb-ldap-2.3-5.el6.x86_64dns黄页包)

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_64dns工具包)

bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64dns chroot包)

bind-devel-9.8.2-0.17.rc1.el6_4.6.x86_64dns 开发环境包)

 

查看DNS服务配置文件安装位置:

# rpm -ql bind

/etc/named.conf(主配置文件)

/var/named/named.ca()

/var/named/named. localhost.arpa(本机反向解析库文件)

/var/named/named. 172.16.249 .zone172.16.249正向解析库文件)

/var/named/slaves(从DNS服务配置目录)

 

DNS服务配置:

 

1DNS服务结构:

wKioL1PiFtiCV8AVAAh91vutso0958.bmp

 

2、主DNS服务器:

配置文件详解:

// named.conf

// Provided by Red Hat bind package toconfigure the ISC BIND named(8) DNS

// server as a caching only nameserver (asa localhost DNS resolver only).

// See /usr/share/doc/bind*/sample/ forexample named configuration files.

#vim /etc/named.conf

options {

       //listen-on port 53 { 127.0.0.1; };

       directory       "/var/named";

      //指定从/var/named目录下读取DNS数据文件

      //并创建,指定后所有的DNS数据文件都存放在此目录下

       recursion yes;

//是否允许递归查询

logging {

       channel default_debug {

                file"data/named.run";

                severity dynamic;

       };

};

//关于日志的定义

zone "." IN {

       type hint;

       file "named.ca";

};

//指定named/var/named/named.ca文件中获取internet的根服务器地址

include"/etc/named.rfc1912.zones";

//主配置文件的辅助配置文件

 

#vim  /etc/named.rfc1912.zones

zone "1.0.0.127.in-addr.arpa" IN{

         typemaster;  //DNS服务器

         file"named.loopback";  //解析库文件为named.loopback

};

//指定127.0.0.1区域的反向解析

zone "localhost" IN {

       type master;  //DNS服务器

       file "named.localhost"; //解析库文件为named.localhost

};

//指定本地区域的正向解析

 

解析库资源记录类型详解:SOANSMXAAAAAPTR

  格式:name       [ttl]          IN    RRType    value   

 

SOAStart Of Authority启始授权,任何解析库文件的第一个记录的类型必须是SOA

         name:区域名称,通常可以简写为@

         value:DNS服务器的FQDN,也可以当前区域的区域名称;

 例如:

 @              IN            SOA        ns.whb.com.   admin.whb.com.  (

                            serialnumber   ;解析库的版本号,例如2014080601

                            refreshtime    ;更新时间间隔

                            retrytime      ;重试时间间隔

                            expiretime     ;过期时间

                            negativeanswer ttl ;否定答案的统一缓存时长

                                               )

  注意:

时间可以使用s(秒)、h(小时)、d(天)、w(周)

NSname server

                            name:区域名称

                            value:DNS服务器的FQDN

          例如:@        IN    NS  ns.whb.com.

 

          注意:

                   如果有多台NS服务器,每一个都必须有对应的NS记录;

                   对于正向解析文件来讲,每一个NSFQDN都应该有一个A记录;

 

MXMail eXchanger

                            name:区域名称

                            value:邮件服务器的FQDN

 

                            例如:

                            @            IN    MX  10   mail.whb.com.

                            @                     IN  MX 20   mail2.whb.com.

 

                            注意:

                                     如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性

                                     对于正向解析文件来讲,每一个NSFQDN都应该有一个A记录;

 

A: Address

                            name:FQDN

                            value:IP

 

                            例如:

                            www.whb.com.     IN  A           1.1.1.1

                            www.whb.com.     IN   A           1.1.1.2

                           //实现负载均衡

                            pop3.whb.com.      IN  A           1.1.1.3

 

AAAA: ipv6 IP

CNAME: Canonical Name别名

                            name:FQDN

                            value:FQDN

 

                            例如:

 

                            www.whb.com.     IN            A    1.1.1.5

                            web.whb.com.             IN          CNAME   www.whb.com.

 

PTR: pointer

             name:逆向的主机IP地址加后缀in-addr.arpa

      例如:172.16.249./16, 网络地址为172.16, 主机地址为100.7,其name7.100.in-addr.arpa.

                            value:FQDN

            例如:

                        7.100.in-addr.arpa.        IN          PTR         www.whb.com.

            注意:

                 区域名称为逆向网络地址加.in-addr.arpa做后缀

 

3、从服务器:从服务器的三个作用:容错、负载、加速(提供容错能力,减轻主DNS服务器的负担,加快查询速度)   

1、  到域名注册商那里添加一个NS记录

zone "whb.com" IN {

                    typeslaves;

                    file“slaves/named.localhost.zone”

        masters {172.16.249.1}

           }

 

                            父域的区域解析库中

                            whb.com.         IN    NS           ns.whb.com.

                            whb.com.       IN  NS     ns2.whb.com.

                            ns.whb.com.  IN   A   172.16.249.1

     2、编辑本地解析库,配置每个DNS服务器

                   3、安装从服务器,只配置区域定义即可

 

4、子域授权:只需要在父域的区域解析库中添加“胶水记录”

       格式:

                            子域名称       IN    NS  子域的名称服务器

                                     ops          IN            NS           ns.ops

                                     ops          IN            NS           ns2.ops

                                     ns.ops    IN             A       172.16.249.7

                                     ns2.ops  IN             A       172.16.249.8

 

                                     dev          IN             NS           ns.dev

                                     ns.dev  IN               A              172.16.100.88

5、配置转发器:转发所有的非本机负责的区域的请求至某指定的DNS服务器

              访问控制:

                            allow-transfer{};

                            allow-query{};

                            allow-update{};

 

                递归白名单:

                            allow-recursion{};

                            recursionyes;

格式:

                   options{

                            ...

                            forwardonly|first;

                            forwarders{ IP; };

                   }

配置转发区域:

                   zone"whb.com" IN {

                            typeforward;

                            fowardonly|first;

                            forwarders{ IP; };

                   }

 

6DNS view:  又称为视图或脑裂(split-brain),根据客户端来源的不同,将同一个名称解析至不同的值;

格式:    

acl telecom {

      ….

           };

 

         aclunicom {

     …..

          };

使用view注意的事项:

                   1、通常只为内网客户端提供递归功能,提供根区域等;

                   2、通过只为外网客户端提供本机所负责的区域的解析;

 

关于DNS中的 acl:

1、内置的ACL

                            none,any, local(本机), localnet(本机所在网络)

2、自定义acl:

                            格式:

acl ACL_NAME {

                                     ip;

                                     ip;

                                     network;

                            };

例:

                              acl localnetwork {

                                      172.16.0.0/16;

                                      192.168.0.0/24;

                              };

                            allow-recursion{ localnetwork; };

三、DNS工具:

1、检查语法错误工具

#rndc命令:

                   reload:重读配置文件

                   reconfig:检查配置文件语法错误

                   flush:刷新

                   status:检查DNS状态

 

#named-checkconf  检查主配置文件语法错误

# named-checkzone检查区域配置文件语法错误

2、客户端测试工具:hostnslookupdig

         host工具

格式:host -tRRType NAME [SERVER]

例如:host -t NSwhb.com 172.16.249.

 

         Nslookup工具:

         格式:     nslookup>

                            serverIP:

                            settype={A|SOA|NS|MX}

                            name

         dig工具:

         格式:dig -tTYPE name @server

         选项:

                            +trace路由追踪递归

                            +notrace不路由追踪递归

+recurse 递归查询

                            +norecurse不递归查询

-x PTR测试反解

例: dig -tAXFR whb.com  @172.16.249.

 

总结:

当今互联网速度才是王道,网站主页打开时间超过4秒,六成用户将会放弃浏览网站,转向竞争对手网站。所有,DNS服务速度对各门户网站的重要性不言而喻。

本文出自 “gentoo” 博客,请务必保留此出处http://linuxgentoo.blog.51cto.com/7678232/1536569