重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2543|回复: 2
打印 上一主题 下一主题

rhel7上配置 dns服务器

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-4 23:20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

 

首先安装bind ,使用Yum或者rpm包安装。我使用Yum的安装办法,将DNS需要的组件一次性全部装好。安装好之后,使用rpm -ql |grep bind 查看都装了哪些文件。

找到bind的配置文件,/etc/named.conf,在修改配置文件之前,有一些选项参数需要先了解清楚。

 

// 后面接的都是注释语句,类似于普通配置文件中的 #

options 后面接的是全局配置选项,dns全局参数都在这里配置。

 

logging 定义日志的记录范围,一般默认不修改。

 

zone 定义一个区域声明,比如区域文件名,类型等。

 

好,了解这些之后,我们根据自己的需求来修改named.conf配置文件。

 

//
// named.conf
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
listen-on port 53 { any; }; //
开启侦听端口53,接受任意IP连接
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 { 0.0.0.0/0; }; ////
允许任意IP查询这里也可以修改为any如果不修改会在nslookup出现错误refused被拒绝

recursion yes;
dnssec-enable no;  //
默认为 yes
dnssec-validation no; //
默认为 yes
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};

 

zone “sztech.com” IN // 添加正向解析区域信息

type master ;

file "sztech.com.zone";

};

zone "0.168.192.in-addr.arpa" IN { // 添加反向解析区域信息

type master;

file "192.168.0.zone";

};

这样添加好了之后,保存退出。





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2015-8-4 23:26:11 | 只看该作者
注意:在named.conf中,每一行最后都要有;(冒号结尾),如果没有,启动的时候会有提示信息的。启动会失败。

 

下面到/var/named/目录下面添加正向和反向区域解析文件。在添加区域文件的前提,同样有一些参数需要理解下。

;在这里,这个分号是注释符,相当于前面的 // 号,后面跟的都是注释语句。

@ 表示是在当前域,就是区域文件定义的那个域。

() 表示允许数据跨行,一般用的不多。

* 用在name字段的通配符。

资源管理器 简称RR :

基本格式 : [ name ] [ ttl ] [ class ] type data

1、name 字段,可以是相对域名或者全域名,也可以是单独某台主机的名字。

2、ttl timed to live,生命值,一般忽略不写。

3、class 字段,用于指定网络类型,可选的值有IN、CH和HS,其中IN (intelnet)是广泛使用的一种

4、type 字段 , 用来指定RR资源的类型,常用的有如下几种:

区记录: SOA (start of authority ) SOA标记,一个授权区定义的开始。

NS (name server )标记区域的域名服务器以及授权子域

基本记录: A ( address ) A记录,将主机名转换成IP地址,一个主机只有一个A记录

PTR (poin teR )与A记录相反,将IP转换成主机名,反向解析操作

MX (mail exchanger) 邮件交换记录,定义邮件服务器的域名

了解这些,现在开始建立正常和反向解析区域文件了。首先我们根据上面named.conf配置里知道,区域配置文件都在/var/named/目录下面。进入到该目录之后:

新建区域文件 vim sztech.com.zone //文件的名字一定要和你前面配置文件里一样
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2015-8-4 23:27:09 | 只看该作者
 
$TTL 600
@ IN SOA www.sztech.com. zhengquan.sztech.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns1.sztech.com. //根据上面开始的提示,这个是定义区的域名服务器。
 
mail IN A 192.168.0.254 //设置A记录,mail主机对应的IP地址
ns1 IN A 192.168.0.254
www  IN A 192.168.0.254
www IN CNAME mail // 设置一个别名,方便以后搭建www服务器
 

OK。正向解析区域文件就建好了,保存退出,下面同样的办法建立反向解析文件。
vim 192.168.0.zone
$TTL 600
@ IN SOA ns1.sztech.com. root.mail.sztech.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns1.sztech.com.
 
254        IN PTR ns1.sztech.com. //做一个反向解析指针。
254      IN PTR www.sztech.com.
254      IN PTR mail.sztech.com
 
 
OK。同样,一个简单的反向解析文件也做好了,需要其他信息就让里面加就可以了。这样之后,所有的配置文件都配置好了,启动DNS服务,
[root @ mail ~] # systemctl restart  named //我习惯用restart
如果正常没问题的话,没有任何提示。
 
我们可以查看一下dns的状态
[root@dbserver named]# systemctl status named.service
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; enabled)
   Active: active (running) since Tue 2015-08-04 23:06:33 CST; 1min 4s ago
  Process: 3526 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 3538 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 3536 ExecStartPre=/usr/sbin/named-checkconf -z /etc/named.conf (code=exited, status=0/SUCCESS)
 Main PID: 3540 (named)
   CGroup: /system.slice/named.service
           3540 /usr/sbin/named -u named
Aug 04 23:06:33 dbserver named[3540]: zone 0.in-addr.arpa/IN: loaded serial 0
Aug 04 23:06:33 dbserver named[3540]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Aug 04 23:06:33 dbserver named[3540]: 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: lo...erial 0
Aug 04 23:06:33 dbserver named[3540]: zone sztech.com/IN: loaded serial 0
Aug 04 23:06:33 dbserver named[3540]: zone localhost.localdomain/IN: loaded serial 0
Aug 04 23:06:33 dbserver named[3540]: zone 0.168.192.in-addr.arpa/IN: loaded serial 0
Aug 04 23:06:33 dbserver named[3540]: zone localhost/IN: loaded serial 0
Aug 04 23:06:33 dbserver named[3540]: all zones loaded
Aug 04 23:06:33 dbserver named[3540]: running
Aug 04 23:06:33 dbserver systemd[1]: Started Berkeley Internet Name Domain (DNS).
Aug 04 23:06:33 dbserver named[3540]: zone sztech.com/IN: sending notifies (serial 0)
Hint: Some lines were ellipsized, use -l to show in full.
[root@dbserver named]#
 
这样我们的DNS服务器就正常启动起来了,如果有问题,则根据提示语句找到相应的问题。
 
服务器搭建好了,下面进行的就是测试咯,啦啦啦,终于搭建完了。下面开始测试DNS服务器。测试服务器之前有个地方别忘记设置了,那就是客户端的DNS,也就是把/etc/resolv.conf下面的name server改成自己这服务器的IP了。然后重启网络服务。
测试DNS最简单的命令就是 nslookup了,下面使用我们的nslookup测试我们的DNS服务器看是否能正常解析。
C:\Users\zhengquan>nslookup
默认服务器:  UnKnown
Address:  125.62.12.254
> server 192.168.0.254
默认服务器:  [192.168.0.254]
Address:  192.168.0.254
> ns1.sztech.com
服务器:  [192.168.0.254]
Address:  192.168.0.254
DNS request timed out.
    timeout was 2 seconds.
名称:    ns1.sztech.com
Address:  192.168.0.254
> www.sztech.com
服务器:  [192.168.0.254]
Address:  192.168.0.254
名称:    www.sztech.com
Address:  192.168.0.254
>
 
如果出现这个,那说明我们的服务器正常运行了,但是事实并不是这么美好的,你在测试的时候,很有可能会得到这样的结果:
server can't find www.sztech.com.sztech.com :SERVFAIL
根据提示是无法找到对应的区域。遇到问题了,那就去解决,首先看错误提示,然后再看日志,发现问题应该是在找不到配置文件,但是明明都配置好了的啊。来回对照了好几遍都没发现问题啊,百思不得其解,最后根据提示不停的百度谷歌,最后,黄天不负有心人,终于让我找到了,原来是/var/named/目录下面的配置文件的所属组的问题,根据ll,可以看出系统自动生成的文件所有者是root,但是所属组是named。而我们自己创建的文件,所有者和所属组都是属于root,所以named服务无法读取我们的配置文件,造成无法正常访问。把权限和宿主改过来重启服务就OK了。
到目前为止已经可以正常运行了。
 


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-10 05:47 , Processed in 0.098304 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表