最近在学Linux,课上老师出了一道测试题
dns.smart.com |
A |
192.168.0.10 |
www.smart.com |
A |
192.168.0.20 |
ftp.smart.com |
A |
192.168.20.10 |
mail.smart.com |
A |
192.168.0.30 |
注:使用nslookup验证域名解析(包括逆向解析)。
解题思路:
- 从表中可以看出是一个正向区域名为smart.com
- 第二列可以看出DNS资源记录类型的A记录(ps:IPv4地址,A记录是名称解析的重要记录,用于将计算机合格域名映射到对应主机ip上)
- 第三列看出需要配置两个反向区域,一个是192.168.0,另一个是192.168.20(PS:之前,做的时候,只想到了一个,虽然启动DNS成功,但是客户端验证时,解析反向区域PTR记录,192.168.20.10解析失败,后来从新审题,知道了如何修改错误。)
项目环境
虚拟机:VMware® Workstation 15 Pro
Linux版本:rhel-server-6.2(红帽)
两个Linux系统
一个为DNS主服务器端(已安装yum源)
一个为DNS测试客户端服务器
解决过程:
- 设置网络配置ip与外部主机互联,采用仅主机模式(PS:虚拟机可以和物理主机互相访问,但虚拟机无法访问外部网络)
- 关闭防火墙(注意:必须关闭,否则开启服务时,会报错)
[root@localhost etc]#iptables –F
[root@localhost etc]#setenforce 0
3 .安装bind软件包(PS:bind提供了域名服务主要程序,及相关文件)
[root@localhost /]#yum install -y bind
4. 配置DNS主服务器端配置文件
在/etc/named下进行配置。命令如下:
[root@localhost etc]# cd /etc
[root@localhost etc] # vim named.conf # 配置主配置文件
options {
listen-on port 53 { any; }; #修改为1为any,允许任何ip访问
allow-query { any; };
# 添加的正向解析区域
zone "smart.com" IN {
type master; #类型为master(主服务器)
file "smart.com.hosts"; #区域数据名为smart.com.hosts
};# 添加的反向解析区域(测试题中有两个网段,添加两个)
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.rev";
};
zone "20.168.192.in-addr.arpa" IN {
type master;
file "192.168.20.rev";
};include "/etc/named.root.key";
正向区域文件配置
#cd /var/named
[root@localhost named]# vim smart.com.hosts
$TTL 86400 //TTL配置用于设置默认生存周期,即缓存结果的有效时间
@ SOA smart.com. root.smart.com. ( //SOA记录部分用于设置区域名称,管理邮箱,以及为从域名服务器指定更新参数。
20191129 //更新序列号
4H //刷新时间:重新下载数据的间隔
30M //重试延时:下载失败的重试间隔
12H //失效时间:超过该时间下载则放弃
1D //无效解析记录的生存周期
)
@ IN NS dns.smart.com.
dns IN A 192.168.0.10 //DNS服务器IP地址
www IN A 192.168.0.20
ftp IN A 192.168.20.10
mail IN A 192.168.0.30
@ IN MX 10 mail.smart.com.
注意:域名最后面以"."结尾,比如dns.smart.com.
@代表本域,如果域名表示就是smart.com.
反向区域文件配置
[root@localhost named]# vim 192.168.0.rev
$TTL 86400
@ SOA smart.com. root.smart.com. (
20191129
4H
30M
12H
1D
)
@ IN NS dns.smart.com.
10 IN PTR dns.smart.com.
20 IN PTR www.smart.com.
30 IN PTR mail.smart.com.
[root@localhost named]# vim 192.168.20.rev
$TTL 86400
@ SOA smart.com. root.smart.com. (
20191129
4H
30M
12H
1D
)
@ IN NS ftp.smart.com.
10 IN PTR ftp.smart.com.
[root@localhost named]# named-checkconf -z /etc/named.conf //检查文件配置是否正确,并启动named服务
[root@localhost etc]# service named start //启动
启动 named: [确定]
客户端验证配置
- 修改为仅主机模式
- 关闭防火墙
[root@localhost 桌面]# iptables -F
[root@localhost 桌面]# setenforce 0
3.设置namesever参数指向服务器IP地址,使得客户端能从DNS服务器处解析记录
[root@localhost 桌面]# vim /etc/resolv.conf
namesever 192.168.129
[root@localhost 桌面]# nslookup
> 192.168.0.10
Server: 192.168.10.129
Address: 192.168.10.129#53
10.0.168.192.in-addr.arpa name = dns.smart.com.
> dns.smart.com
Server: 192.168.10.129
Address: 192.168.10.129#53
Name: dns.smart.com
Address: 192.168.0.10
> 192.168.20.10
Server: 192.168.10.129
Address: 192.168.10.129#53
10.20.168.192.in-addr.arpa name = ftp.smart.com.
> ftp.smart.com
Server: 192.168.10.129
Address: 192.168.10.129#53
Name: ftp.smart.com
Address: 192.168.20.10
当然,这是成功的配置结果,新手刚开始不会立马成功,下面是启动DNS失败的展示,希望后来者借鉴!
分析:通过解读这个错误,可以看出是反向配置文件192.168.20.rev第11行出现问题,找不到它,导致DNS服务启动失败,后来打开出错文件发现多写个字母R,修改之后,从新启动就可以了。
PS:一定要细心细心再细心,空格,中英文,大小写等都有可能是引起错误的原因!