DNS服务基础(二)之Bind

一、BIND服务器简介

Bind(Berkeley Internet Name Domain Service),它是一款实现DNS服务器的开放源码软件,够提供双向解析,转发,子域授权,view等功能,是世界上使用最为广泛的DNS服务器软件,目前Internet上半数以上的DNS服务器有都是用Bind来架设的。

二、BIND基本安装与配置

1、Bind安装(最基本的bind:主程序、bind-libs:库文件、bind-utils:客户端工具三个组件)

#yum install bind

2、Bind主要文件

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

rndc配置文件:/etc/rndc.conf,remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1来连接named进程;提供辅助性的管理功能,端口:953/tcp

数据目录:/var/named/,/var/named/*.zone(区域解析库文件,其中的配置仅为当前区域有效)

2.1、配置文件named.conf简要注解

named.conf文件主要分两部分:全局配置和zone配置。

options {
listen-on port 53 { 127.0.0.1; }; #指定named监听的端口和IP。
listen-on-v6 port 53 { ::1; };   #IPV6监听设定。
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     { localhost; }; #允许查询本DNS的客户端地址或列表
recursion yes;   #是否允许去迭代查询。
dnssec-enable yes;  #支持验证DNS数据由效性的系统(注:建议测试时关闭dnssec)   
dnssec-validation yes; # 是否进行DNSSEC确认开关
/* Path to ISC DLV key */
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段,里面记录了世界互联网上的根域名服务器地址,在使用时需要更新
type hint;    #由于根服务器是权威的,根域也不是本DNS服务器自己主管的,所以类型用Hint
file "named.ca";   #指定了根区域文件
};
include "/etc/named.rfc1912.zones";  #定义正反解区域相关
include "/etc/named.root.key";  #实现事物签名的秘钥文件

     注:区域文件格式:

     zone "ZONE_NAME" IN {

     type {hint|master|slave|forward};        

     file "ZONE_FILE";

     };

     <从服务器>

     zone "ZONE_NAME" IN {                

     type slave;                 #指定类型为从服务器;

     file "slaves/ZONE_FILE";    #由于从服务器会从主服务器直接同步解析库,所以无需设置,但是还是要将同步文件指向存放到指定目录下。

     };

     <转发>

     zone "ZONE_NAME" IN {

     type forward;              #指定类型为转发。

     forward {only|first};      #指定转发的方式,only表示将指定范围内的所有查询都转发,first只转发一次,无回应则自己完成查询。

     forwarders { "acl" };        #指定转发的范围。

     };

    <view> #DNS view:能够智能地自动判断访问者的IP地址,然后根据不同的访问者把域名分别解析成不同的IP地址,从而让不同的IP指向在不不同网络上的主机,例如使网通用户会访问到

网通服务器,电信用户会访问到电信服务器。

    view [NAME] {                #如果在服务器上设定了view,则所有的区域设定都要包含在view中。

    match clients { "acl"; };    #指定view所负责的范围。

    zone "name" {};

     ...                            包含的区域。

    };

2.2、named.rfc1912.zones区域文件简要注解

// named.rfc1912.zones:
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {   #定义本本地的区域
type master;      #类型属于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;     #类型属于master、属于自己的
file "named.loopback";  #指定的文件
allow-update { none; };  #不允许任何人传送的
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};

三、实战Bind配置正反向解析、主从、VIEW

平台:centos 6.7

Bind版本:9.8

本地测试域名:daisy.com

服务器:node1:192.168.2.5(主DNS);node2:192.168.2.6(从DNS);测试机器:192.168.2.9

3.1、实战DNS正向解析

1)、编辑配置named.conf

        options {
                listen-on port 53 { any;  };    #允许
                directory       "/var/named";           zone文件存放目录。
                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; };     注释掉查询白名单,表示循序所有主机查询。
                recursion yes;          允许DNS服务器在不知道查询主机的情况下,去像其他服务器做迭代查询得到结果。
                dnssec-enable no;       关闭安全审查机制。
                dnssec-validation no;
                dnssec-lookaside no;
                /* Path to ISC DLV key */
        //      bindkeys-file "/etc/named.iscdlv.key";   使用key来加密,注释不使用。
        //      managed-keys-directory "/var/named/dynamic";    
        };
        logging {
                channel default_debug {
                        file "data/named.run";
                        severity dynamic;
                };
        };
zone "." IN {   
type hint;    
file "named.ca";   
};
include "/etc/named.rfc1912.zones";  
include "/etc/named.root.key";

2)、编辑named.rfc1912.zones添加域daisy.com区域管理

// named.rfc1912.zones:
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {   #定义本本地的区域
type master;      #类型属于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;     #类型属于master、属于自己的
file "named.loopback";  #指定的文件
allow-update { none; };  #不允许任何人传送的
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};

########以下新增daisy.com区域################

zone "daisy.com" IN {

type master;    #类型为主服务器

file "daisy.com.zone";    #指定资源解析库存放位置,这个路径是相对;named.conf中定义的directory的,即实际位置为/var/named/daisy.com.zone

};

3)、添加资源记录,创建文件/var/named/daisy.com.zone,并修改过权限和属主属组

==以下对资源记录简介,详解见“DNS服务基础(一)”篇章

#*********************************************************************

#** $TTL 43200;  #这里可以定义全局变量,如果没有定义TTL则继承这里的43200单位秒

#** #第一条记录必须为SOA记录

#** daisy.com. #区域名称,可以写成@直接引用当前区域名称

#** 86400  #TTL,可不定义,会直接继承全局的

#** IN #Internet,固定格式

#** SOA #记录类型

#** ns.daisy.com. #主服务器的FQDN

#** admin.daisy.com #管理员邮箱,因为@有特殊意义用点代替

#********************************************************************

$TTL 43200
@    86400    IN    SOA    ns.daisy.com.    admin.daisy.com. (
        201608270001 #serial number序列号
        1h    # refresh time 主辅之间刷新时间
        5m    # retry time 拉取信息不成功的重试时间
        7d    #expire time 过期时间,过期后辅服务器也将放弃解析
        1d )  # 否定答案的TTL
         
@  #引用当前域名,可省略 IN  NS  ns.daisy.com. 
    IN  MX  10  mail1.daisy.com.
    IN  MX  20  mail2 #相当于mail2.daisy.com.
ns  IN  A   192.168.2.5
www IN  A   192.168.2.6
webmail IN CNAME   mail2
mail1.daisy.com.  IN  A   192.168.2.6  
mail2.daisy.com.  IN  A   192.168.2.6

==修改一下权限和属主属组:

# chown root:named /var/named/daisy.com.zone

# chmod 640 /var/named/daisy.com.zone

4)、检查主配置文件和区域数据文件有没有语法错误

# named-checkconf    #这个是检查主配置文件语法的

# named-checkzone "daisy.com" /var/named/daisy.com.zone  #这个是检查区域数据文件语法的、指定区域和指定文件

zone daisy.com/IN: loaded serial 4039774385

OK

# service named configtest  #即检查区域、又检查主配置文件的

# service named start|restart|stop #启动服务

  [[email protected] named]# dig -t NS daisy.com @192.168.2.5  #检查解析
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t NS daisy.com @192.168.2.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15587
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1  #标志aa(authority answer)权威答案
;; QUESTION SECTION:
;daisy.com.INNS
;; ANSWER SECTION:
daisy.com.43200INNSns.daisy.com.
;; ADDITIONAL SECTION:
ns.daisy.com.43200INA192.168.2.5
;; Query time: 24 msec
;; SERVER: 192.168.2.5#53(192.168.2.5)
;; WHEN: Sat Aug 27 16:35:27 2016
;; MSG SIZE  rcvd: 60

3.2、实战DNS反向解析

1)、编辑named.rfc1912.zones添加域2.168.192.in-addr.arpa区域管理

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

type master;

file "192.168.2.zone";

};

2)、添加资源记录,创建文件/var/named/192.168.2.zone,并修改过权限和属主属组

注意:上面的正向解析A记录,反向解析要有相应的的PTR记录

$TTL 43200
@   86400   IN  SOA ns.daisy.com. admin.daisy.com. (
        201608270001
        1h
        5m
        7d
        1d )
 
    IN  NS  ns.daisy.com.    # NS记录是必须的
    IN  MX  10  mail1.daisy.com.
    IN  MX  20  mail2.daisy.com.
5   IN  PTR ns.daisy.com.
6  IN  PTR www.daisy.com.
6  IN  PTR mail1.daisy.com.
6  IN  PTR mail2.daisy.com.

注意:正向cname不用反向解析

==修改一下权限和属主属组:

# chown root:named /var/named/192.168.2.zone

# chmod 640 /var/named/192.168.2.zone

3)、改一下NDS服务器的指向192.168.2.5、域名和查询都指向daisy.com、编辑/etc/resolv.conf,重启服务named。

domain daisy.com

search daisy.com

nameserver 192.168.2.5

# named-checkzone "2.168.192.in-addr.arpa" 192.168.2.zone  #检查zone区域

zone 2.168.192.in-addr.arpa/IN: loaded serial 1

OK

#service named restart

[[email protected] named]# dig -x 192.168.2.5 @192.168.2.5  #检查解析
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 192.168.2.5 @192.168.2.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43842
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; QUESTION SECTION:
;5.2.168.192.in-addr.arpa.INPTR
;; ANSWER SECTION:
5.2.168.192.in-addr.arpa. 86400 INPTRns.daisy.com.
;; AUTHORITY SECTION:
2.168.192.in-addr.arpa.86400INNSns.daisy.com.
;; ADDITIONAL SECTION:
ns.daisy.com.86400INA192.168.2.5
;; Query time: 1 msec
;; SERVER: 192.168.2.5#53(192.168.2.5)
;; WHEN: Sat May 14 13:26:12 2016
;; MSG SIZE  rcvd: 125

3.3、实战DNS主从服务器

这里假定node2主机(192.168.2.6)DNS从服务器

1)、node1节点主DNS服务器,/var/named/daisy.com.zone正向解析zone添加多一条备用NS、A资源记录如下:

$TTL 43200
@    86400    IN    SOA    ns.daisy.com.    admin.daisy.com. (
        201608270001
        1h   
        5m  
        7d  
        1d )  
         
@   IN  NS  ns.daisy.com. 
    IN  NS  ns1.daisy.com.  #新添加NS记录
    IN  MX  10  mail1.daisy.com.
    IN  MX  20  mail2 
ns  IN  A   192.168.2.5
ns1 IN  A   192.168.2.6   #新增A记录
www IN  A   192.168.2.6
webmail IN CNAME   mail2
mail1.daisy.com.  IN  A   192.168.2.6  
mail2.daisy.com.  IN  A   192.168.2.6

注:node1节点主DNS服务器,/var/named/192.168.2.zone反向解析zone添加多一条备用NS、PTR资源记录如下:

$TTL 43200
@   86400   IN  SOA ns.daisy.com. admin.daisy.com. (
        201608270001
        1h
        5m
        7d
        1d )
 
    IN  NS  ns.daisy.com.    
    IN  NS  ns1.daisy.com.   #新增NS记录
    IN  MX  10  mail1.daisy.com.
    IN  MX  20  mail2.daisy.com.
5   IN  PTR ns.daisy.com.
6   IN  PTR ns1.daisy.com.  #新增PTR记录
6  IN  PTR www.daisy.com.
6  IN  PTR mail1.daisy.com.
6  IN  PTR mail2.daisy.com.

2)、node2服务器安装Bind、修改/etc/named.conf配置(同node1操作),编辑/etc/named.rfc1912.zones解析库新增如下:

zone "daisy.com" IN {

type slave;  #slave 配置为从服务器

masters { 192.168.2.5; };   #需要同步主dns服务器IP

file "slaves/daisy.com.zone";   #默认保存在/var/named/salves文件中

};

#service named start #启动服务

注:这里只配置正向从DNS服务器

3)、检查同步

[[email protected] named]# rndc reload  #同步载入

server reload successful

[[email protected] named]# cd slaves/

[[email protected] slaves]# cat daisy.com.zone  #查看/var/named/salves/daisy.com.zone文件,是否正常同步了daisy.com.zone正向解析库

$ORIGIN .
$TTL 43200
@    86400    IN    SOA    ns.daisy.com.    admin.daisy.com. (
        201608270001
        1h   
        5m  
        7d  
        1d )  
         
@   IN  NS  ns.daisy.com. 
    IN  NS  ns1.daisy.com.  
    IN  MX  10  mail1.daisy.com.
    IN  MX  20  mail2 
ns  IN  A   192.168.2.5
ns1 IN  A   192.168.2.6   
www IN  A   192.168.2.6
webmail IN CNAME   mail2
mail1.daisy.com.  IN  A   192.168.2.6  
mail2.daisy.com.  IN  A   192.168.2.6

测试主DNS修改增加记录,是否及时同步到从DNS服务器

注意:序列必须增加1

==node1增加1条A记录,并且使用rndc reload(同步载入) 如下:

$TTL 43200
@    86400    IN    SOA    ns.daisy.com.    admin.daisy.com. (
        201608270002 #修改序列号
        1h   
        5m  
        7d  
        1d )  
         
@   IN  NS  ns.daisy.com. 
    IN  NS  ns1.daisy.com.  
    IN  MX  10  mail1.daisy.com.
    IN  MX  20  mail2 
ns  IN  A   192.168.2.5
ns1 IN  A   192.168.2.6   
www IN  A   192.168.2.6
webmail IN CNAME   mail2
mail1.daisy.com.  IN  A   192.168.2.6  
mail2.daisy.com.  IN  A   192.168.2.6
*   IN  A  192.168.2.5  #新增A记录泛解析

==再次查看/var/named/salves/daisy.com.zone文件,是否正常同步新增记录

$ORIGIN .
$TTL 43200
@    86400    IN    SOA    ns.daisy.com.    admin.daisy.com. (
        201608270002
        1h   
        5m  
        7d  
        1d )  
         
@   IN  NS  ns.daisy.com. 
    IN  NS  ns1.daisy.com.
*   IN  A   192.168.2.5    #新同步的A记录
    IN  MX  10  mail1.daisy.com.
    IN  MX  20  mail2 
ns  IN  A   192.168.2.5
ns1 IN  A   192.168.2.6   
www IN  A   192.168.2.6
webmail IN CNAME   mail2
mail1.daisy.com.  IN  A   192.168.2.6  
mail2.daisy.com.  IN  A   192.168.2.6

注:反向解析从DNS服务器,类似正向解析从DNS服务这里不再做演示。

时间: 2024-07-30 23:55:11

DNS服务基础(二)之Bind的相关文章

DNS服务基础及bind基础配置和应用

DNS服务基础及bind基础配置和应用  DNS服务基础011.DNS:Domain   Name  Service,  ( 应用层协议)2.tld:Top Level Domain 顶级域(1)顶级域中的组织域.com  (company).net    网络组织.org非盈利型组织   org:other  organizations.gov  government.edu    教育机构.mil   military军事的,军队,军人...(2)顶级域中的国家域.tw   .hk  .cn

DNS服务器之二:从服务器的实现

DNS从服务的搭建 一.安装  [[email protected]~]# yum install bind 二.修改主配置文件  [[email protected]~]# cat /etc/named.conf 将以下三行注释掉 //               listen-on port 53 { 127.0.0.1; }; //               listen-on-v6 port 53 { ::1; }; //               allow-query     {

DNS服务基础原理介绍

FQDN 全称域名 localhost(主机名或者是别名).localdomain(域名)    FQDN=主机名.域名 根域               . 顶级域名       .com   .net    .org 二级域名 www  一般是代表一台主机的别名 DNS服务基础原理 1.小型规模  适用于企业内部网络 2.DNS解析原理 DNS解决方案 1.bind           使用最广泛 2.Unbond DNS:Domain Name Service 应用层协议 1.udp  5

DNS 服务相关概念 (二)

DNS 服务相关概念(二) 我们知道一共有13台根服器,如果它们每台根服务器上的内容不能保持一致会出现什么情况呢~?比如第1台根服务器知道 .com  而第2台根服务器不知道,那么有人找第2 台服务器去查找 .com  显然是找不着的~ .所以每个域为了保证其安全性和稳定性这个域可能有多台服务器,而且每台服务器的内容必须保持一致.那么这就意味着每当我们在根域当中添加 1台新的服务器(NS服务器)时,是不是这13台根服务器必须得同时修改~.是自动完成修改呢,还是手动完成修改呢? 显然自动完成修改要

DNS服务基础知识

一.DNS的基本概念 DNS:domain name server域名:www.baidu.com(主机名,FQDN,full qualified domain name,完全限定域名) 二.DNS的类型主DNS服务器:数据的修改 DNS服务器类型辅助DNS服务器:请求数据的同步serial numberrefreshretryexpirenagative answer TTL 缓存dns服务器转发器 三.资源记录 数据库中的,每一个条目称作一个资源记录(resource record RR)资

DNS服务基础(一)

一.DNS简介 DNS(Domain Name System,域名系统),它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网.DNS使用TCP和UDP(无连接协议)口53,主要使用UDP,TCP协议使用服务器之间备份.对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符. 二.DNS域名结构 1.DNS数据库中的名称形成一个分层树状结构称为域命名空间.域名空间常见组织方式:根域-->顶级域-->第二层域-->子域-->主机.域名只是逻辑概

Linux的DNS服务基础概念

DNS的查询方式 1.递归 递归的意思就是 客户端只需要问一次,如果上级DNS服务器不知道,那么上级DNS服务器会自己去找自己的DNS服务器. 2.迭代 迭代的意思就是客户端需要自己一个DNS服务器 一个DNS服务器自己去问. DNS名称解析方式 正向解析  输入域名找IP 方向解析 输入IP找域名 主备DNS服务器 备DNS服务器的DNS记录需要不停的跟主DNS服务器数据库进行同步. 对DNS记录的改变只能在主DNS服务器上. "复制"操作的实施方式: 序列号:也是数据库的版本号,每

2、DNS服务基础及进阶

参考: http://www.178linux.com/67736 https://zhuanlan.zhihu.com/p/60917672 https://www.cnblogs.com/f-ck-need-u/p/7367503.html DNS服务器的类型: 主DNS服务器 它是特定域所有信息的权威性信息源.它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服务器具有管理权的一部分域结构的最精确信息.主服务器是一种权威性服务器,因为它以绝对的权威去回答对其管辖域的任何查

DNS服务基础

原文地址:http://blog.51cto.com/13587169/2066566