重庆思庄Oracle、、PostgreSQL、Redhat认证学习论坛
标题: rhel7上配置 dns服务器 [打印本页]
作者: 郑全 时间: 2015-8-4 23:20
标题: rhel7上配置 dns服务器
首先安装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";
};
这样添加好了之后,保存退出。
作者: 郑全 时间: 2015-8-4 23:26
注意:在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
$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了。
到目前为止已经可以正常运行了。
欢迎光临 重庆思庄Oracle、、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/) |
Powered by Discuz! X3.2 |