前话

咳咳,这次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. windows下配置Apache2.4一些改变

    下载地址: http://www.apachelounge.com/download/http://www.apachehaus.com/cgi-bin/download.plx Apache更新到2 ...

  2. lex&yacc

    LEX: yytext 数组包含匹配模式的文本; 使词法分析程序工作的两条规则是:1. lex 模式只匹配输入字符或字符串一次.2. lex 执行当前输入的最长可能匹配的动作. 由 lex 产生的词法 ...

  3. Linux C SMTP POP3 极简陋邮件客户端

    以前以为协议非常高神,但做了这个之后发现还好,没想象的那么艰难. 先要了解邮件的原理 再者就是上面2协议 可以先用telnet测试一下,以初步了解那2协议:http://hi.baidu.com/34 ...

  4. [DOM]有一种节点叫做文本节点

    HTML可以看成是由节点(node)组成的树结构 我们一般都是在<p>节点里面写字符串. 在上图中,<p>节点和字符串之间有一个text, 这个text就是文本节点. 我们可以 ...

  5. get post

    浅谈HTTP中Get与Post的区别 2009-03-31 14:51 by hyddd, 248341 阅读, 74 评论, 收藏, 编辑 Http定义了与服务器交互的不同方法,最基本的方法有4种, ...

  6. Unity学习笔记(1):认识Unity

    Unity是什么? Unity是patterns & practices团队开发的一个轻量级.可扩展的依赖注入容器,具有如下的特性: 它提供了创建(或者装配)对象实例的机制,而这些对象实例可能 ...

  7. C#实现网络传输数据加密

    1. 分组密码 分组密码是将明文消息编码表示后数字序列划分成长为n的分组,各组分别在密钥的作用下进行变换输出等长的数字序列,即密文.一次加密一个数据组,加解密所使用的是同一密钥,故其通常也称为对称加密 ...

  8. 如何实现phpcms v9_4X版本tag的伪静态?

    这两个月来写的文章越来越少了,不是懒,因为太忙了--为客户赶做网站.因为客户指定要使用phpcms v9,还要求使用phpcms v9_42版本实现tag伪静态,在接手的时候phpcms v9_42是 ...

  9. ubuntu12.04 server + apache2 + wsgi + django1.6 部署

    最近在学Python和Django,想自己部署一个服务器试试 环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi 在网 ...

  10. 找不到 com.google.zxing.ResultMetadataType 异常解决

    在 https://github.com/zxing/zxing 下载二维码扫描 将 android 导入,code打成jar包运行时 报 06-14 23:43:08.690: E/AndroidR ...