centos6.5环境DNS-本地DNS服务器bind的搭建

域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
 
开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“x.台湾”这样的域名可以在地址栏直接输入,而不需要安装插件。但是,由于英语的广泛使用,使用其他语言字符作为域名会产生多种问题,例如难以输入,难以在国际推广等。
 
BIND(Berkeley InternetName Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
 
我们使用的DNS软件就是BIND。

实验环境:

CentOS release 6.5(Final)  两台
IP地址:
192.168.3.17      DNS1        DNS服务器端
192.168.3.18      DNS2        测试机
我们要架设一个本地DNS服务器一般需要下面三个软件程序包:
bind-libs.x86_64      #提供库文件
bind-utils.x86_64     #提供工具包
bind.x86_64         #提供主程序包
 
我还没使用安全套件,所以没有使用bind-chroot程序包。
chroot 环境为了系统的安全性考虑,一般来说目前各主要 distributions 都已经自动的将你的 bind 相关程序给他 chroot 了。

一.安装bind程序包

使用yum源安装:
yum install -y bind-libs bind-utils bind.x86_64

检查安装情况:
rpm -qa bind*
bind-libs-9.8.2-0.47.rc1.el6.x86_64
bind-utils-9.8.2-0.47.rc1.el6.x86_64
bind-9.8.2-0.47.rc1.el6.x86_64

二.配置Bind

Bind的配置文件存放在/etc/目录下:
/etc/named.conf                #主配置文件
/etc/named.rfc1912.zones       #正反向区域文件
 
我们首先配置主配置文件:/etc/named.conf
cat /etc/named.conf
===========================================================================
options {
listen-on port 53 { 127.0.0.1; };
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; };
recursion yes;

pid-file        "/var/run/named/named.pid"; //存着named的pid
forwarders     { 168.95.1.1; 139.175.10.20; }; // 如果域名服务器无法解析时,将请求交由168.95.1.1; 139.175.10.20来解析
allow-query    { any; };   //指定允许进行查询的主机,当然是要所有的电脑都可以查啦
allow-transfer { none; }; //指定允许接受区域传送请求的主机,说明白一点就是辅dns定义,比如辅dns的ip是192.168.139.5,那么可以这样定义{ 192.168.139.5; },要不然主辅dns不能同步,当然,{}里的也可以用下面提到的acl(智能dns会用到动态ip库,acl文件存储着ip列表)。
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;

/* 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 { #正向解析
type hint;
file "named.ca";
};

zone "0.0.127.in-addr.arpa" IN { #反向解析
        type master;
        file "named.loopback";
        allow-transfer { none; };
};

view localhost_resolver { //定义一个视图
        match-clients      { any; }; //查询者的源地址,any表示localhost_resolver视图对任何主机开放,如果写成{ acl1; },那么就只有acl1表里的ip可以递归查询了
        match-destinations { any; }; //查询者的目标地址,这里也可以写成{ localhost; acl1; }
        recursion yes;  //设置进行递归查询
        include "/etc/named.rfc1912.zones"; //包含文件,这里也就是载入/etc/named.rfc1912.zones,正反向解析配置文件
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
===========================================================================
配置文件中的三个文件named.ca、named.localhost、named.loopback上面已经提供有一个了named.ca了、还有这两个named.localhost、named.loopback、同样我们也得提供、也是在/var/named目录下创建:

# vim /var/named/named.localhost

$TTL 86400    ;定义宏
@       IN      SOA     localhost       admin.localhost. (
                        2014031101    ;序列号
                         2H            ;刷新时间
                         10M            ;失败时重试间隔时间
                         7D            ;过期时间
                         1D)            ;否定答案的时间
                 IN      NS      localhost.
localhost.       IN      A       192.168.3.1

================================
$TTL 86400 
@       IN      SOA     localhost       admin.localhost. (
                        2014031101    ;
                         2H            ;
                         10M            ;
                         7D            ;
                         1D)            ;
                 IN      NS      localhost.
localhost.       IN      A       192.168.3.1
================================

然后复制一份改写named.loopback的文件:
   # cp /var/named/named.localhost /var/named/named.loopback
   # vim named.loopback
$TTL 86400
@       IN      SOA     localhost       admin.localhost. (
                         2014031101
                         2H
                         10M
                         7D
                         1D )
                 IN      NS      localhost.
1                IN      PTR     localhost.

三.区域解析库文件配置

1.区域解析库文件的简要说明:

常见的正解文件 RR 相关信息
[domain]        IN           [[RR type]                 [RR data]]
主机名.         IN            A                    IPv4 的 IP 地址
主机名.         IN            AAAA                 IPv6 的 IP 地址
区域名.         IN            NS                   管理这个领域名的服务器主机名字.
区域名.         IN            SOA                  管理这个领域名的七个重要参数(如上说明)
区域名.         IN            MX     顺序数字      接收邮件的服务器主机名字
主机别名.       IN            CNAME                实际代表这个主机别名的主机名字.
单位:W=周、D=日、H=小时、M=分钟。
  
$TTL   86400             宏定义全局TTL时间
@      IN     SOA    ns.chinasoft.com.  root ( # ns.chinasoft.com. 是DNS服务器的名称
                         0               ; serial (d. adams) 仅作为序列号而已
                        1D               ;refresh          服务器的更新时间
                        15M              ; retry           重新更新时间间隔
                        1W               ; expiry          多久之后宣布失败
                        1H )             ;minimum          相当于缓存记忆时间
@      IN              NS                ns.chinasoft.com.
@      IN              MX      5         mail.chinasoft.com.(5为优先级别)
ns     IN              A                 172.16.31.3
www    IN              A                 172.16.31.3
www    IN              A                 172.16.31.3
mail   IN              A                 172.16.31.3

2.配置正向解析库文件:
vim /var/named/chinasoft.com.zone

$TTL 43200#定义宏,通用变量,单位为秒
@       IN      SOA     dns.chinasoft.com   admin.chinasoft.com. (
                        2014031101    ; #序列号
                         2H            ; #刷新时间
                         10M            ; #失败重试时间
                         7D            ;  #过期时间
                         1D)            ; #否定答案时间
@                 IN      NS      dns
@                 IN      MX   10  mail
dns     IN      A       192.168.3.17
mail    IN      A       192.168.3.10
www     IN      A       192.168.3.11
pop     IN      CNAME   mail #mail别名
ftp     IN      CNAME   www  #www别名

3.配置反向解析库文件:
vim /var/named/3.168.192.zone

$TTL 43200
@       IN      SOA     dns.chinasoft.com.  admin.chinasoft.com. (
  2014031202
  2H
  10M
  7D
  1D )
       IN      NS      dns.chinasoft.com.
87     IN      PTR     dns.chinasoft.com.
10     IN      PTR     mail.chinasoft.com.
11     IN      PTR     www.chinasoft.com.

四.更改目录权限及属组

cd /var/named
更改文件属组:
chown :named chinasoft.com.zone
chown :named 3.168.192.zone
更改文件权限:

chmod 640 chinasoft.com.zone
chmod 640 3.168.192.zone
检查防火墙,selinux状态:
service iptables status
iptables: Firewall is not running.
getenforce
Disabled
检测区域解析库配置文件语法:

named-checkzone "chinasoft.com" chinasoft.com.zone
zone chinasoft.com/IN: loaded serial 2014121001
OK

五.启动服务

service named restart 
这两个配置好之后还要改一下你的NDS服务器的指向、编辑/etc/resolv.conf:
# vim /etc/resolv.conf

domain chinasoft.com
search chinasoft.com
nameserver 192.168.3.86

六.测试DNS服务器的域信息是否正常:

dig命令:
测试正向区域解析情况:

  1. # dig -t SOA chinasoft.com @192.168.3.17
  2. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t SOA chinasoft.com @192.168.3.17
  3. ;; global options: +cmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20339
  6. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
  7. ;; QUESTION SECTION:
  8. ;chinasoft.com.         IN  SOA
  9. ;; ANSWER SECTION:
  10. chinasoft.com.      43200   IN  SOA dns.chinasoft.com.chinasoft.com. admin.chinasoft.com. 2014031101 7200 600 604800 86400
  11. ;; AUTHORITY SECTION:
  12. chinasoft.com.      43200   IN  NS  dns.chinasoft.com.
  13. ;; ADDITIONAL SECTION:
  14. dns.chinasoft.com.  43200   IN  A   192.168.3.17
  15. ;; Query time: 0 msec
  16. ;; SERVER: 192.168.3.17#53(192.168.3.17)
  17. ;; WHEN: Tue Sep 13 10:49:41 2016
  18. ;; MSG SIZE  rcvd: 125

测试反向区域解析情况:
dig -x 192.168.3.11

报错:
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 192.168.3.11
;; global options: +cmd
;; connection timed out; no servers could be reached

修改:/etc/named.conf
修改下面两个句子
options {
listen-on port 53 { 192.168.3.17; }; (我就是在这里出问题的默认此处是127.0.0.1,就是因为没把此次IP改为本机IP所以一直解析不到)
allow-query { any; };  (这里可能也要改默认是localhost)


host命令:
检测正向解析库;

  1. # host -t A www.chinasoft.com 192.168.3.17
  2. Using domain server:
  3. Name: 192.168.3.17
  4. Address: 192.168.3.17#53
  5. Aliases:
  6. www.chinasoft.com has address 192.168.3.11

检测反向解析库:
# host -t ptr 192.168.3.11 192.168.3.17
Using domain server:
Name: 192.168.3.17
Address: 192.168.3.17#53
Aliases:

11.3.168.192.in-addr.arpa domain name pointer www.chinasoft.com.

# host -t ptr 192.168.3.10 192.168.3.17
Using domain server:
Name: 192.168.3.17
Address: 192.168.3.17#53
Aliases:

10.3.168.192.in-addr.arpa domain name pointer mail.chinasoft.com.

(转)centos6.5 bind-DNS服务器bind的搭建详解的更多相关文章

  1. Centos7 搭建DNS服务器与原理配置详解

    在搭建我们自己DNS服务器之前,先必须了解下DNS服务器的作用和原理. DNS是在互联网上进行域名解析到对应IP地址的服务器,保存互联网上所有的IP与域名的对应信息,然后将我们对网址的访问,解析成IP ...

  2. centos6.5环境DNS-本地DNS服务器bind的搭建

    centos6.5环境DNS-本地DNS服务器bind的搭建 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库, ...

  3. 【转】在CentOS 8 / RHEL 8上配置主/从BIND DNS服务器

    转自: https://zh.codepre.com/centos-2700.html 前言 本指南描述了在CentOS 8 / RHEL 8 Linux上配置BIND DNS服务器所需的步骤.在Ce ...

  4. Linux下DNS服务器搭建详解

    Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析 ...

  5. DNS技术和NAT技术详解

    DNS技术和NAT技术详解一.DNS(Domain Name System)1.什么是DNS2. 了解域名3.域名解析过程4.使用dig工具分析DNS过程5.浏览器输入URL后发生什么事?二.ICMP ...

  6. 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法

    转载的服务器TIME_WAIT和CLOSE_WAIT详解和解决办法

  7. CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解

    CAS (6) -- Nginx代理模式下浏览器访问CAS服务器网络顺序图详解 tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1. ...

  8. nginx高性能WEB服务器系列之四配置文件详解

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  9. http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误)

    http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误) 一.总结 服务器内部错误可能是服务器中代码运行的时候的语法错误或者逻辑错误 二.http500:服务器内部错误案例详解 只是一 ...

随机推荐

  1. 一些常用的排序算法(C版)

    1. 直接插入排序(稳定排序) 简单的说就是将序列分为有序序列和无序序列.每一趟排序都是将无序序列的第一个元素插入有序序列中.R[1… i-1] <- R[i…n] , 每次取R[i]插入到R[ ...

  2. java架构师之路--推荐书籍

    1.大型网站技术架构:核心原理与案例分析 本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选 ...

  3. mha error

    MasterFailover.pm 1473 $ret =1474 $_server_manager->change_master_and_start_slave( $target, $late ...

  4. 黄聪:C#如何Json转字符串;字符串转Json;Newtonsoft.Json(Json.Net)学习笔记(转)

    Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库(下载地址http://json.codeplex.com/). 下面是Json序列化和反序列化的简单封装: /// & ...

  5. JS和AS交互

    这个话题在网上应该说很好找,有很多这方面的资料.比者也看过一些,不过大部分都是AS2与JS进行交互.很少提到AS3,即使有,也让人感觉浅尝辄止.很多东西并没有介绍的太清楚.所有笔者萌生了写这样一篇教程 ...

  6. C++11--随机数引擎和随机数分布<random>

    /* 随机数引擎: * 有状态的随机数发生器,生成在预定义的最大小值之间的随机数 * 不是真正的随机数--伪随机 */ int main () { std::default_random_engine ...

  7. C/C++基础----关联容器

    基本属性 与顺序容器的差别,按照关键字来保存和访问,而顺序容器是按照容器中的位置来顺序保存和访问. map:每个元素是一对键值(key-valye)组合:set每个元素只包含关键字.. 每个根据关键字 ...

  8. 窗口事件onresize

    在做自适应布局的时候,我们常常需要根据窗口不同的分辨率给出不同布局和样式,今天说的onresize便能帮我们实现这一效果. onresize事件在窗口或者框架的大小发生改变的时候会被调用,下面我们用一 ...

  9. 服务容错保护断路器Hystrix之二:Hystrix工作流程解析

    一.总运行流程 当你发出请求后,hystrix是这么运行的 红圈 :Hystrix 命令执行失败,执行回退逻辑.也就是大家经常在文章中看到的“服务降级”. 绿圈 :四种情况会触发失败回退逻辑( fal ...

  10. 指定分隔符连接数组元素join()

    join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回一个字符串,该字符串把数组中的各个元 ...