首页 > 代码库 > 搭建DNS域名解析服务器

搭建DNS域名解析服务器

                                      搭建DNS域名服务器

DNS介绍:

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

正向解析:域名 --> IP地址

反向解析: IP地址 --> 域名

FQDN域名组成:tts6.tarena.com.cn

         主机名.域名

                      |-->三级域名.二级域名 .一级域名

DNS服务器:192.168.4.5

    tts6.tarena.com.cn -->  202.12.12.10

     |

     |

     V

DNS服务器:192.168.4.6

    tts6.tarena.com.cn -->  20.20.20.10

DNS的两种查询方式:

    递归查询:

    迭代查询:

DNS配置文件:

    主配置文件:/var/named/chroot/etc/named.conf

    区域数据(解析记录)文件:/var/named/chroot/var/named/.. ..

实验环境:准备三台虚拟机

虚拟机一:主DNS服务器,IP地址192.168.4.5/24 ,主机名:svr5

虚拟机二:从DNS服务器,IP地址192.168.4.6/24 ,主机名:svr6

虚拟机三:客户端,IP地址192.168.4.205/24 主机名:PC205

前提条件:主从DNS搭建Yum

 

一:搭建一台简单的DNS服务器

1,主DNS服务器安装bind,bind-chroot软件包

[root@svr5 ~]# yum -y install bind bind-chroot

2,配置服务器的named.conf

[root@svr5 ~]# cd /var/named/chroot/etc/

[root@svr5 etc]# vim named.conf

[root@svr5 etc]# cat named.conf      //每一句和括号后都得加;

options { directory "/var/named"; };             //指定区域文件的默认位置

zone "tarena.com" IN {             //定义正向区域

        type master;             //区域类型为主区域

        file "tarena.com.zone";    //定义区域数据文件(放置域名和IP解析的文件)

};

3,配置解析数据库(区域文件)

[root@svr5 etc]# cd /var/named/chroot/var/named/

[root@svr5 named]# vim tarena.com.zone    //创建的区域文件与主配置文件指定的文件名相同

[root@svr5 named]# cat tarena.com.zone

$TTL    86400           //Time To Live 生存时间

@       IN      SOA     tarena.com.     root.tarena.com. (

        2014052201        //更新序列号

        2H               //刷新时间

        15M             //重试间隔

        4h              //超时时间

        1D             //无效记录的生存时间

)

//SOA:授权信息    root.tarena.com.:邮箱文件

// tarena.com. :默认域名

@       IN      NS      svr5.tarena.com.   //本区域DNS服务器的FQDN

svr5    IN      A       192.168.4.5        //本区域DNS服务器的IP地址

svr5    IN      A       192.168.4.5

svr6    IN      A       192.168.4.6

tts6    IN      A       118.45.29.123

[root@svr5 named]# service named restart       //启动服务

[root@svr5 named]# netstat -anptu | grep named  //查看named的监听端口

4,客户机测试:

[root@PC_205 ~]# vim /etc/resolv.conf

[root@PC_205 ~]# cat /etc/resolv.conf  | tail -1

nameserver 192.168.4.5        //将主服务器的ip告诉客户机

//检测配置语法

[root@svr5 ~]# named-checkconf /var/named/chroot/etc/named.conf   //检测主配置文件的语法

[root@svr5 ~]# named-checkzone tarena.com /var/named/chroot/var/named/tarena.com.zone

zone tarena.com/IN: loaded serial 2014052201

OK                     //检测数据文件的语法

[root@svr5 /]# host tts6.tarena.com        //通过域名解析IP

tts6.tarena.com has address 118.45.29.123

[root@svr5 /]# nslookup svr5.tarena.com

Server:         192.168.4.5

Address:        192.168.4.5#53

Name:   svr5.tarena.com

Address: 192.168.4.5

 

练习二:新增DNS区域baidu.com

  目标:www.baidu.com----->1.2.3.4

        Music.baidu.com-------->5.6.7.8

1,  修改主配置文件,再次添加一个zone区域  //一个zone区域解析一个域名

[root@svr5 /]# vim /var/named/chroot/etc/named.conf

zone "baidu.com" IN {

        type master;

        file "baidu.com.zone";

};

2,  为新增的baidu.com区域建立一个数据文件

[root@svr5 named]# cp -p tarena.com.zone baidu.com.zone

$TTL    86400

@       IN      SOA     baidu.com.      root.baidu.com. (

        2014052201

        2H

        15M

        4h

        1D

)

@       IN      NS      svr5.tarena.com.

www     IN      A       1.2.3.4

music   IN      A       5.6.7.8

[root@svr5 named]# service named restart

3,  客户机测试

[root@svr5 ~]# host www.baidu.com

www.baidu.com has address 1.2.3.4

[root@svr5 ~]# host music.baidu.com

music.baidu.com has address 5.6.7.8

 

练习三:DNS负载均衡

目标:www.tarena.com

          -->192.168.4.100192.168.4.110192.168.4.120……

//DNS服务器

[root@svr5 named]# cd /var/named/chroot/var/named/

[root@svr5 named]# vim tarena.com.zone

…………………..

www     IN      A       192.168.5.100

www     IN      A       192.168.5.110

www     IN      A       192.168.5.120

[root@svr5 named]# !ser     //相当于service named restart

 

练习四:泛域名解析

简化以下记录:

station1.tarena.com  --> 192.168.7.1

.. ..

station200.tarena.com  --> 192.168.7.200

识别未知域名:

bj.tarena.com  --> 118.45.29.31

sh.tarena.com  --> 118.45.29.31

.. .. tarena.com  --> 118.45.29.31

//主配置文件

[root@svr5 named]# vim tarena.com.zone

………………….

$GENERATE 1-200 station$  IN   A  192.168.7.$

*       IN      A       118.45.29.31

[root@svr5 named]# service named restart

客户端测试: 

//DNS负载均衡是指每次访问同一个域名时会依次去所对应的IP。承担了单个IP的压力

[root@svr5 ~]# host www.tarena.com

www.tarena.com has address 192.168.5.120

www.tarena.com has address 192.168.5.100

www.tarena.com has address 192.168.5.110

[root@svr5 ~]# host www.tarena.com

www.tarena.com has address 192.168.5.110

www.tarena.com has address 192.168.5.120

www.tarena.com has address 192.168.5.100

[root@svr5 ~]# host www.tarena.com

www.tarena.com has address 192.168.5.100

www.tarena.com has address 192.168.5.110

www.tarena.com has address 192.168.5.120

测试:泛域名解析:当你访问的域名,DNS服务器没有时会指定一个固定的IP所有不在本服务器的域名都会指到固定的IP

[root@svr5 ~]# host jiafjaskl.tarena.com

jiafjaskl.tarena.com has address 118.45.29.31

[root@svr5 ~]# host alkdfa

alkdfa.tarena.com has address 118.45.29.31

 

练习五:添加反向解析区域

目标:192.168.4.5 --> svr5.tarena.com

      192.168.4.6 --> svr6.tarena.com

1,修改主配置文件添加

[root@svr5 named]# cd /var/named/chroot/etc/

[root@svr5 etc]# vim named.conf

zone "4.168.192.in-addr.arpa" IN {      //定义反向解析

        type master;               //反向解析的区域主区域

        file "192.168.4.arpa";        //指明反向解析的区域文件

};

2,建立反向区域的解析文件

[root@svr5 etc]# cd /var/named/chroot/var/named/

[root@svr5 named]# cp tarena.com.zone 192.168.4.arpa

…………………

@       IN      NS      svr5.tarena.com.

5    IN      PTR     svr5.tarena.com.       //根据IP解析域名(域名后得加个点这是指明根域)

6    IN      PTR     svr6.tarena.com.

$GENERATE 1-200 $  IN   PTR  station$.tarena.com.

*       IN      PTR     www.tarena.com.

[root@svr5 named]# service named restart

3,客户端测试

[root@svr5 ~]# host 192.168.4.6

6.4.168.192.in-addr.arpa domain name pointer station6.tarena.com.

6.4.168.192.in-addr.arpa domain name pointer svr6.tarena.com.

[root@svr5 ~]# host 192.168.4.5

5.4.168.192.in-addr.arpa domain name pointer station5.tarena.com.

5.4.168.192.in-addr.arpa domain name pointer svr5.tarena.com..

 

搭建主从DNS服务器

目标:

DNSwww.tarena.com   192.168.4.5

DNSwww.tarena.com     192.168.4.6

1,建主DNS服务器

  • 改主配置文件

[root@svr5 etc]# vim named.conf

options { directory "/var/named";

allow-transfer { 192.168.4.6; };           //指明从DNSIP

};

zone "tarena.com" IN {

        type master;

        file "tarena.com.zone";

};

2)改区域数据文件

[root@svr5 etc]# vim /var/named/chroot/var/named/tarena.com.zone

@       IN      NS      svr5.tarena.com.     //数据文件中要有主从DNS的域名和主机名,否则从DNS更新不了

        IN      NS      svr6.tarena.com.

[root@svr5 etc]# service named restart

2,建从DNS服务器

  • DNS服务器装bind,bind-chroot

  • 建立主配置文件    //用远程拷贝一份主配置文件

[root@svr6 ~]# scp -r root@192.168.4.5:/var/named/chroot/etc/named.conf /var/named/chroot/etc/   

[root@svr6 ~]# vim /var/named/chroot/etc/named.conf

options { directory "/var/named"; };

zone "tarena.com" IN {

        type slave;                        //指明类型(从DNS

        file "slaves/tarena.com.zone";       //指明从DNS的数据文件存放位置

        masters { 192.168.4.5; };            //指明主DNSIP

};

[root@svr6 ~]# service named restart

测试:

//只要检查从DNS服务器中有没有数据文件,有就建成从DNS服务器

[root@svr6 etc]# ls /var/named/chroot/var/named/slaves/

tarena.com.zone

测试效果:

DNS更改数据文件:

源数据文件的序列号:

      @       IN      SOA     tarena.com.     root.tarena.com. (

                 2014052201

更改后的数据文件的序列号:

@       IN      SOA     tarena.com.     root.tarena.com. (

                2014062201

 

源数据:  tts6    IN      A       118.45.29.123

更改后的数据:tts6    IN      A       1.1.1.1

[root@svr5 ~]# service named restart    //重启服务

DNS查看是否更新:

[root@svr6 slaves]# cat  /var/named/chroot/var/named/slaves/tarena.com.zone | grep tts6

tts6                    A       1.1.1.1    //已经同步更新

 

 

//主从DNS的同步更新,主要是靠更新的序列号,从DNS只识别序列号和设置的自动更新的时间

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

搭建DNS域名解析服务器