前话

咳咳,这次Linux系统的DNS服务器搭建我不得不记下来。,这错误真的太蛋疼了,我整整弄了两天才解决问题(抱歉我很蠢)。

也许有人会和我犯同样的错误,给大家分享一下经验。

首先总结一下知识点:

  • DNS文件配置(named.conf)

  • 正向解析文件配置(xxx.zone)

  • 反向解析文件配置(xxx.rev)

  • 配置文件检查

  • Named服务启动

  • 务必记得关闭系统防火墙!!!我就死在两天了!!!

下面开始配置实例。


配置实例

为了方便下面的理解,我这里列出参与测试的虚拟机

系统 角色 域名 IP
CentOS7 DNS服务器 192.168.217.130
Window Server 2003 网站服务器 pwc.cn 192.168.217.101
Window Server 2003 DNS客户机 192.168.217.131

第一步,安装DNS服务

命令行输入以下命令:

yum -y install bind-chroot.x86_64

回车键后yum会自动下载安装服务以及其依赖文件,等待下载完成,安装完成示例如下:

为了方便后面测试,我们需要安装其余两个命令行工具,分别输入以下命令

yum -y install net-tools.x86_64

yum -y install bind-utils.x86_64

到这里,我们启动一下DNS服务试试,输入以下命令:

service named start

启动成功,接着我们关闭DNS服务。

到这里,DNS服务安装完成

第二步,配置DNS文件

首先,我们找到/etc/named.conf文件并进入其所在目录,输入命令行 vi named.conf进行查看编辑,named.conf文件内容如下 :

options { //服务器的全局配置选项及一些默认设置
listen-on port 53 { 127.0.0.1; }; //监听IP和端口,此处监听本地IP
listen-on-v6 port 53 { ::1; }; //对ip6支持
directory "/var/named"; //区域文件存储目录
dump-file "/var/named/data/cache_dump.db"; //dump cach的目录directory
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
forwarders { 1.1.1.1; 2.2.2.2; }; // 如果域名服务器无法解析时,将请求交由1.1.1.1;2.2.2.2来解析
allow-query { localhost; }; //指定允许进行查询的主机
allow-transfer { none; }; //指定允许接受区域传送请求的主机,说明白一点就是辅dns定义,比如辅dns的ip是3.3.3.3,那么可以这样定义{ 3.3.3.3; },要不然主辅dns不能同步
recursion yes;
dnssec-enable yes;
dnssec-validation yes; bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic"; pid-file "/var/run/named/named.pid"; //存着named的pid
session-keyfile-direction "/run/named/session.key";
}; logging { //指定服务器日志记录的内容和日志信息来源
channel default_debug {
file "data/named.run";
severity dynamic;
}; zone "." IN { //根域名区域,下面指定file文件中包含全球13个根域名服务器地址
type hint;
file "name.ca";
}; include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

要添加自己的解析域,只需在内容后面添加zone即可。

另外,我们要注意zone内的type,该type值有三种,如下:

  • hint,存根区域
  • master,主要区域
  • slave,辅助区域

下面,我们对其进行修改,加上自己的域名解析,修改后内容如下(只展示需修改和添加的部分):

options { //服务器的全局配置选项及一些默认设置
listen-on port 53 { any; }; //修改为any,表示监听本机所有IP
allow-query { any; }; //修改为any,表示接收所有DNS解析请求
}; zone "." IN { //根域名区域,下面指定file文件中包含全球13个根域名服务器地址
type hint;
file "name.ca";
}; //下面我们自己添加解析域 zone "cn" IN { //正向解析
type master;
file "cn.zone";
}; zone "217.168.192.in-addr.arpa" IN { //反向解析,注意
type master;
file "cn.rev";
}; include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

这时,我们命令行键入如下命令进行DNS配置文件检查:

named-checkconf /etc/named.conf

如果回车键后没有错误提示,表示改配置没有错误

到这里,我们就配置好了DNS配置文件。但是还没结束,下面我们要创建新添加的两个zone区域文件,分别是cn.zone正向解析文件,和cn.rev反向解析文件

第三步,正向解析文件配置

首先,我们进入文件夹 /var/named,然后我们创建一个名为 cn.zone 的文件,键入如下命令:

vi cn.zone

进入编辑模式,添加如下内容:

$TTL 3H          //M/H/D/W分别代表分/时/天/周,纯数字表示秒
@ IN SOA luoyefengqiao. root. (
2016011701;serial
1D; refresh
1H; retry
1W; expire
3H ) ; minimum ; ‘;’作为注释的开头 ; Zone NS records
; @ NS luoyefengqiao. ;
; Zone records
; pwc A 192.168.217.101
www.pwc CNAME pwc.cn.

保存推出后,我们键入如下命令对其配置进行检查:

named-checkzone cn /var/named/cn.zone

如果返回 ok 表示没有错误。

到这里,我们的正向解析配置文件基本完成。

第四步,反向解析文件配置

我们在同样目录创建一个名为 cn.rev 的文件,键入如下命令:

vi cn.rev

进入编辑模式,添加如下内容:

$TTL 3H
@ IN SOA luoyefengqiao. root. (
2016011701;serial
1D; refresh
1H; retry
1W; expire
3H ) ; minimum @ NS luoyefengqiao. 101 PTR pwc.cn.

保存退出,然后我们同样键入检查命令:

named-checkzone cn /var/named/cn.rev

输出 ok 表示没有错误

到这里,反向解析文件配置完成。

第五步,启动DNS服务

  1. 我们需要修改 /etc/resolv.con 文件,该实例添加内容 nameserver 192.168.217.130

  2. 我们输入命令 service named start



    输出了如上内容,好像成功了。

    接着我们试试 nslookup pwc.cn,然而解析不出pwc.cn的IP。

  3. 我们输入命令 service named status -l ,然后我们可以看到如下信息:



    看到红色文字,原来是正向反向解析文件访问受限。

    所以我们输入命令 chmod -R 777 cn.* 对两个文件赋予最大权限。

    接着我们输入命令 service named restart 重启DNS服务,然后再输入 service named status -l 检查状态。



    输出如上,说明DNS服务启动基本成功。

  4. 我们在DNS服务器中输入命令 nslookup pwc.cnnslookup www.pwc.cn ,DNS服务器本机解析基本没问题。



    然而,我们在DNS客户机dos命令窗口输入 nslookup pwc.cn 或者 nslookup www.pwc.cn 却请求DNS解析失败

解析失败!!!为啥!!!

这个问题困扰了我两天,客户机 ping DNS服务器可以连通啊,为啥客户机对DNS服务器请求解析错误???

DNS服务器检查了没有iptables防火墙服务啊,selinux服务也关闭了啊,为啥为啥为啥???

最后一步,关闭firewalld防火墙

最后找了好久,终于找到真理,centos7的默认是不带iptables防火墙的,它带的是firewalld防火墙服务。所以,输入以下命令:

service firewalld stop

要永远关闭它自行谷歌百度:)

然后客户机dos输入 nslookup www.pwc.cn 或者 nslookup pwc.cn 或者浏览器输入都可以成功解析。

感想

最后能够解决问题感觉真好。

CentOS笔记——配置DNS服务器的更多相关文章

  1. 烂泥:centos安装及配置DNS服务器

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要在centos配置DNS服务器,要先安装DNS软件BIND.当然我们也可以安装其他的DNS软件,比如国内的开源DNS软件DNSPod. 在此我们以通过 ...

  2. 在Debian上用Bind 配置DNS服务器

    1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,D ...

  3. 如何配置DNS服务器(局域网——域名指向某个IP地址)

    单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器.   如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器.   在“操作”菜单上 ...

  4. 配置DNS服务器IP

    #############################脚本功能及说明#################### #该脚本用来在本地服务器上配置DNS服务器IP #创建时间:2014-10-22 ## ...

  5. Linux下搭建Oracle11g RAC(2)----配置DNS服务器,确认SCAN IP可以被解析

    从Oracle 11gR2开始,引入SCAN(Single Client Access Name) IP的概念,相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCAN IP和SCAP IP  ...

  6. centOS7配置DNS服务器

    世上无难事只怕有心人,遇事千万千万不要抵触,消极的情绪是失败之母,一点一滴,踏踏实实是通往幸福的捷径. 历经激动,受挫,抵触和鼓励以及征服,终于配好了让我欢喜让我忧的dns.在这里记录下来,希望能够给 ...

  7. CentOS7安装和配置dns服务器

    (1)dns介绍 1.基本介绍 名字解析: NetBIOS名:localhost wins hosts FQDN:完全限定域名,www.baidu.com hosts文件: 作用:实现名字解析,主要为 ...

  8. Ubuntu/CentOS使用BIND配置DNS服务器

    ------ubuntu server 12---------- 1.安装bind9 sudo apt-get -y install bind9 bind9utils 2.配置  /etc/bind/ ...

  9. Centos 5.2安装配置DNS服务器

    BIND安装配置(主从)我的系统环境:centos 5.2 作者:哈密瓜 主:我采用的是yum安装[root@linux src]#yum -y install bind* 生成rndc控制命令的ke ...

随机推荐

  1. sqlplus 可以登录 plsql 不能登录

    最开始我以为是system用户被锁定了,但是解锁后仍然不可以登录.大神指导之后可以了,说是缺少监听器,解决过程如下: 1.将“tnsnames.ora”和“listener.ora”两个文件里的“lo ...

  2. vim 跳转命令

    基本跳转: hjkl:左下上右 HML:当前屏幕顶.中.底部 web:下一单词词首.下一单词词尾.前一单词词首 gg:文件首  G:文件末尾  ngg/nG:第n行 ta:移动到所在行之后第一个字符a ...

  3. Linux 文件系统 相关

    鸟个讲得很详细啦:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem_1.php 重要知识点:磁盘,文件系统,超级区块 (superblock ...

  4. log4j配置只打印指定jar或包的DEBUG信息

    有的时候查问题的时候需要打印第三方jar里面的debug信息,假如全部jar都打印的话日志文件会很大,这个时候可以配置log4j只打印指定jar的debug信息或者包,同时输出到了一个新的文件中. 比 ...

  5. 一些值得思考的"小题"一

    如下是我们查找数组中某个元素的一种通常做法 const int *Find(const int *array, int length, int x) { const int *p = array; ; ...

  6. L012-oldboy-mysql-dba-lesson12

    L012-oldboy-mysql-dba-lesson12 graphite监控mysql可以达到秒级别 Zabbix for mysql NagiosXI daemontools linux    ...

  7. JQ批量控制form禁用

    <script type="text/javascript" src="http://www.joy-city.com.cn/templets/default/sc ...

  8. Android 控件收集

    SwipeMenuExpandableListView   https://github.com/tycallen/SwipeMenu-Expandable-ListView

  9. Spark Streaming揭秘 Day35 Spark core思考

    Spark Streaming揭秘 Day35 Spark core思考 Spark上的子框架,都是后来加上去的.都是在Spark core上完成的,所有框架一切的实现最终还是由Spark core来 ...

  10. 如何在eclipse中配置Selenium

    1, Install python 33.(Python 27也可以) 2, Setup Selenium If you did not install Easy_install module, yo ...