Linux 中搭建DNS服务器详细教程

 

基本说明:

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库

 

主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系。

从服务器:从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况。

缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。

简单来说,主服务器是用于管理域名和IP地址对应关系的真正服务器,从服务器帮助主服务器“打下手”,分散部署在各个国家、省市或地区,以便让用户就近查询域名,从而减轻主服务器的负载压力。缓存服务器不太常用,一般部署在企业内网的网关位置,用于加速用户的域名查询请求。

 

 

 

一、安装BING并确认软件服务运行状态

1.安装DNS服务器软件bind(Berkeley Internet Name Domain)

     yum -y install bind

在安装完BIND后,系统会多一个用户named。

 

2.启动DNS服务

systemctl start named.service

 

3.查看named进程是否正常启动:

4.DNS采用的UDP协议,监听53号端口,主从DNS间用TCP 53, 进一步检验named工作是否正常:

netstat -an|grep :53

5.防火墙开放TCP和UDP的53号端口:

iptables -I INPUT -p tcp --dport 53 -j ACCEPT

iptables -I INPUT -p udp --dport 53 -j ACCEPT

firewall-config                     打开防火墙图形设置开启dns服务,将Configuration旁下拉勾选Permanent,然后勾选dns :

然后点击Options下的Reload Firewalld重新加载防火墙

firewall-cmd --list-all             查看是否修改成功,如图所示,dns服务已被防火墙允许:

 

systemctl restart named       重新启动dns服务

 

 

二、相关配置文件

1.配置文件 服务器主要运行参数etc/named.conf

 

 

===================================

 

[itsupport@BGK-DNS1 ~]$ cat /etc/named.conf

//

// named.conf

//

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

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

//

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

//

// See the BIND Administrator's Reference Manual (ARM) for details about the

// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

 

options {

        listen-on port 53 { 172.21.206.5; };

        #listen-on-v6 port 53 { ::1; };

        directory       "/var/named";

        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; };

        forward first;

        forwarders {

                        114.114.114.114;

                        223.5.5.5;

                };

#--全局转发………………………………………………………………………………#这个参数只表示如果 forwarders list 为非空,默认为first值,服务器首先请求 forwarders list ,如果 forwarders list 中的DNS主机不应答,该主机将自己去找应答,如果设置值为only,服务器将只会请求 forwarders中的DNS主机

        dnssec-enable no;

        dnssec-validation no;

 

        /*

         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.

         - If you are building a RECURSIVE (caching) DNS server, you need to enable

           recursion.

         - If your recursive DNS server has a public IP address, you MUST enable access

           control to limit queries to your legitimate users. Failing to do so will

           cause your server to become part of large scale DNS amplification

           attacks. Implementing BCP38 within your network would greatly

           reduce such attack surface

        */

        recursion yes;

 

        #dnssec-enable yes;

        #dnssec-validation yes;

 

        /* Path to ISC DLV key */

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

 

        managed-keys-directory "/var/named/dynamic";

 

        pid-file "/run/named/named.pid";

        session-keyfile "/run/named/session.key";

};

 

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

zone "." IN {

        type hint;

        file "named.ca";

};

#/var/named/named.ca,此文件是根域,全球共有13台根域服务器...当 DNS 服务器在自己的数据库找不到所需的信息时, 一定会去找 . ,那 . 在什么地方呢,所以就得要有记录 . 位置的 zone 才行,这个记录 .的 zone 的类型,就被我们称为hint 类型,这几乎是每个 DNS 服务器都得要知道的 zone

zone "hkt-bgk.com" {

        type forward;

        forwarders { 10.187.174.221; 10.187.174.222; };

};



zone "vip.sankuai.com" {

        type forward;

        forwarders { 10.10.10.10; };

#       forwarders { 10.10.10.20; }; ##Backup

};

#区域转发优先级大于全局转发。。。。。。。。。。。。。。。。。。。。。。。。。。发

 

 

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

include "/etc/named.root.key";

 

===============================================

 

检查语法并重启服务

[root@DNS-Slave chroot]# named-checkconf  /var/named/chroot/etc/named.conf
[root@DNS-Slave chroot]# systemctl restart named-chroot
[root@DNS-Slave chroot]#

 

2.配置辅助区域文件,主要指定要解析哪个域名/etc/named.rfc1912.zones

bind服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息

 

服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。将域名解析为IP地址的正向解析参数和将IP地址解析为域名的反向解析参数分别如图13-3和图13-4所示。

图13-3 正向解析参数

 

======================================================================================

[itsupport@BGK-DNS1 ~]$ cat /etc/named.rfc1912.zones

// named.rfc1912.zones:

//

// Provided by Red Hat caching-nameserver package

//

// ISC BIND named zone configuration for zones recommended by

// RFC 1912 section 4.1 : localhost TLDs and address zones

// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

// (c)2007 R W Franks

//

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

//

 

zone "localhost.localdomain" IN {

        type master;

        file "named.localhost";

        allow-update { none; };

};

 

zone "localhost" IN {

        type master;

        file "named.localhost";

        allow-update { none; };

};

 

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

        type master;

        file "named.loopback";

        allow-update { none; };

};

 

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

        type master;

        file "named.loopback";

        allow-update { none; };

};

 

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

        type master;

        file "named.empty";

        allow-update { none; };

};

 

zone "gssip.sh.sankuai.info" IN {

        type master;

        file "/var/named/gssip.sh.sankuai.info.zone";

};

 

zone "gssip.sjz.sankuai.info" IN {

        type master;

        file "/var/named/gssip.sjz.sankuai.info.zone";

};

 

zone "gssip.yz.sankuai.info" IN {

        type master;

        file "/var/named/gssip.yz.sankuai.info.zone";

};

========================================================

注意/var/named/下文件作用

Data 

dynamic 

 named.ca 

 named.empty 

 named.localhost正解模板文件

  named.loopback反解模板文件

  salaves

这部分不影响总体配置,节省点篇幅,是有需要可私信我探讨

 

3.配置数据文件,用来正向和反向的解析

 

(1)/var/named/named.localhost

$TTL 1D    # TTL设定,默认值为 86400
@       IN SOA  @ rname.invalid. (
                                        0       ; serial    # 配置文件修改版本,格式:年、月、日加上修改次数
                                        1D      ; refresh    # 设置辅助 DNS 与主 DNS 进行同步的时间间隔·
                                       
1H      ; retry    # 辅助 DNS 更新失败后,多久重试
                                        1W      ; expire    # 辅助 DNS 与主 DNS 同步失败后,多久清除对应记录
                                        3H )    ; minimum    # 默认最小 TTL 值,若之前没有设定 TTL 值则以此处为基准
        NS      @
        A      
127.0.0.1
       AAAA   

  • 9
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值