一、DNS 介绍

  DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,DNS协议运行在UDP协议之上,使用端口号53(Domain), 953(mdc)。这两个端口号。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

二、安装

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

  DNS的主程序 bind,还有一个是bind-utils。为了DNS安全考虑,引入了bind-chroot.

  chroot是通过将相关文件封装到一个伪根目录内,已达到安全防护的目的,一旦该程序被攻破,将只能访问到伪根目录内的内容,而并不是真实的根目录。安装了chroot这个服务,DNS服务的配置文件都会被安装到我们的伪根里面,会在里面生成一个与原来服务完全相同的一个目录体系结构。该服务的根目录就会把 /var/named/chroot 当成是自己的根目录,这样就可以对我们的真实根目录进行保护,所以建议大家在安装网络服务时最好都附带安装上chroot这个程序。

三、配置

  BIND 的一些服务文档位置和模板:

    /usr/share/doc/bind-9.8.2/sample

  BIND的主配置文件通常是保存在两个位置:

    /etc/named.conf  -BIND服务主配置文件

    /var/named/  -域的zone配置文件

  安装了 bind-chroot 这个程序以后,BIND的主配置文件存放位置就变了,此时BIND的主配置文件会被封装到一个伪根目录内,此时的配置文件位置为:

    /var/named/chroot/etc/named.conf  -BIND服务主配置文件

    /var/named/chroot/var/named  -域的zone配置文件  

  复制模板

[root@dns ~]# cp /etc/named.conf /etc/named.rfc1912.zones /var/named/chroot/etc/
[root@dns ~]# cp -rv /usr/share/doc/bind-9.8.2/sample/var/* /var/named/chroot/var/

  修改配置:

  1、声明要解析的域名

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

options {
listen-on port 53 { 192.168.1.200; }; #监听本地IP的53端口
//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 { any; }; #接受任何人的DNS解析请求
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";
}; logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
}; zone "." IN {
type hint;
file "named.ca";
}; //This is my DNS configuration zone "123.com" {                  //域名正向解析配置,建议写在 named.rfc1912.zones 文件中
type master;                // 指定我们要配置的是域主DNS服务器
file "123.com.zone";          // 指定域名的zone文件为123.com.zone ,一般都是以域名.zone 命名
allow-update { none; };
};        // ;号一定要加上,否则会报错 zone "2.168.192.in-addr.arpa" { //域名反向解析配置,建议写在 named.rfc1912.zones 文件中,格式一定为 xx.xx.xx.in-addr.arpa
type master;
file "192.168.2.zone";
allow-update { none; };
}; // End my configuration

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

  2、配置域名和IP的对应关系。

[root@dns etc]# cd /var/named/chroot/var/named
[root@dns etc]# cp named.localhost 123.com.zone
[root@dns etc]# vim 123.com.zone
$TTL 1D
@ IN SOA @ 123.com. ( ; “.”号必须加上
; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
IN MX 10 mail.123.com.   ; MX 添加一条 邮件记录,邮件记录后面要跟域名,它会递归的解析这个域名,所以该域名的资源记录一定要有,后面的 “.” 一定要写上
www IN A 192.168.2.10            ;添加A记录
c1   IN A 192.168.2.11
c2   IN A 192.168.2.12

  【注意:MX记录一定要定义资源记录的最前面,否则就会解析不成功

  $TTL = 1D(默认生存时间=1D、缓存服务器保存记录的时间是1天。也就是告诉缓存服务器保存域的解析记录为1天)

  serial = 2017012501 (序列号=2017012501、我用配置日期作为序列号。这个序列号的作用是当辅域名服务器来复制这个文件的时候,如果号码增加了就复制)

  refresh = 1D (刷新=1D、辅域名服务器每隔24小时查询一个主服务器)

  retry = 1H (1 hour) (重试=3600秒、当辅域名服务试图在主服务器上查询更新时,而连接失败了,辅域名服务器每隔1小时访问主域名服务器)

  expire = 1W (7 days) (到期=604800秒、辅域名服务器在向主服务更新失败后,7天后删除中的记录。)

  3、配置反向解析

[root@dns etc]# cp named.localhost 192.168.2.zone
[root@dns etc]# vim 192.168.2.zone
$TTL 1D
@ IN SOA @ 123.com. (
; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
10 IN PTR www.123.com.
11    IN    PTR  c1.123.com.
12    IN    PTR  c2.123.com.

  

  4.启动DNS服务

    [root@dns etc]# service named restart

    Stopping named:           [ OK ]
    Starting named:            [FAILED]   

  查看日志:

    [root@dns etc]# tail -f /var/log/messages

    权限问题,查看named.rfc1912.zones 发现 其他用户 没有 r 权限.

    添加权限   

      [root@dns etc]# chmod o+r /var/named/chroot/etc/named.rfc1912.zones

  

   [root@dns etc]# service named restart

    Stopping named:           [ OK ]
    Starting named:            [ OK ]   

   5.测试,在自己PC上配置DNS,通过nslookup 进行测试。

  

												

centos 6.5 DNS服务器 搭建的更多相关文章

  1. Linux下dns服务器搭建

    Linux下dns服务器搭建1-环境Red Hat Enterprise Linux Server release 6.7 (Santiago)2-配置本地yum源安装dns相关包yum -y ins ...

  2. CentOS笔记——配置DNS服务器

    前话 咳咳,这次Linux系统的DNS服务器搭建我不得不记下来.,这错误真的太蛋疼了,我整整弄了两天才解决问题(抱歉我很蠢). 也许有人会和我犯同样的错误,给大家分享一下经验. 首先总结一下知识点: ...

  3. DNS服务器搭建(主、从、缓)

    主dns服务器搭建 在本机上搭建一个管理hngd.com域名的域名服务器1. 确保安装好以下bind域名服务器 [root@主人 ~]# rpm -qa |grep ^bindbind-chroot- ...

  4. 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)

    点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...

  5. 架构师成长之路6.5 DNS服务器搭建(添加记录、负载均衡、DNS视图)

    点击返回架构师成长之路 架构师成长之路6.5 DNS服务器搭建(添加记录.负载均衡.DNS视图)  部署主DNS : 点击 部署从DNS : 点击 1.添加A记录.CNAME记录.MX记录.PTR记录 ...

  6. 架构师成长之路6.4 DNS服务器搭建(部署主从DNS)

    点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署主从DNS)  部署主DNS : 点击 部署从DNS : 如下步骤 1.与主DNS一样,安装bind yum -y install ...

  7. 架构师成长之路6.3 DNS服务器搭建(部署单台DNS)

    点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署单台DNS) 1.安装bind yum -y install bind-utils bind bind-devel bind-chr ...

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

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

  9. DNS服务器搭建与配置

    DNS服务器搭建与配置目录 1.DNS查询方式 2.DNS服务器类型 3.DNS主要配置文件组 4.name.conf文件配置介绍 5.DNS的资源记录格式 6.DNS服务器和客户端配置 7.简单搭建 ...

随机推荐

  1. MYeclipse 和 flex 环境配置

    1安卓JDK  运行 jdk-6u27-windows-i586 安装于 d:/programe/java,注意JRE和JDK安装在一起 测试是否安装成功,运行,CMD,javac 回车.或者java ...

  2. hadoop-eclipse插件编译及windows下运行wordcount项目

    参考文章:http://www.360doc.com/content/16/0227/18/10529016_537828949.shtml, 配置修改:http://blog.csdn.net/lo ...

  3. leetcode986

    class Solution: def judgeIntersection(self,a:'Interval',b:'Interval'): #返回值1,bool类型,是否有交集:True-有交集,F ...

  4. 利用STM32CubeMX来生成USB_HID_Mouse工程

    硬件开发板:STM32F103C8 软件平台 好了现在开始利用STM32CubeMX来生成我们的工程 1.新建工程 选择MCU的型号 选择选择时钟 开启usb的模块 选择USB的类 配置时钟树(主要是 ...

  5. js 监听组合键盘事件

    有些时候,我们需要在网页上,增加一些快捷按键,方便用户使用一些常用的操作,比如:保存,撤销,复制.粘贴等等. 我们所熟悉的按键有这么集中类型: 单独的按键操作,如:delete.up.down等 两位 ...

  6. itnba试做

    http://www.itnba.com/ 首先标题.ico添加 <link href="title.ico" rel="shortcut icon" / ...

  7. docker之数据卷管理

    转自:https://www.cnblogs.com/jsonhc/p/7777811.html docker之数据卷的备份和还原 1.现在利用镜像创建一个nginx的服务容器,并挂载一个数据卷 [r ...

  8. python流程控制for循环

    流程控制 for循环 #首先我们用一例子看下用while循环取出列表中值的方法 l=['a','b','c'] i=0 while i<len(l): print(l[i]) i+=1 #whi ...

  9. 遍历DOM树,获取父节点

    通过获取父节点,还可以获取父节点的父节点. 有3个常用方法: 方法  说明  parent()  选取父节点  parents()  选取所有父节点  parentsUntil("div&q ...

  10. it工程师常用英文自我介绍常用用语

      Good morning ! It is really my honor to have this opportunity for an interview, I hope i can make ...