(一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf、/var/named)设置实现和解释

2015年3月24更新 添加了要加的配置域名解析器(否则会找不到域名)
 
 
一、创建该实验的的模型
 
配置完gate虚拟机的两张网卡后,就启动gate的转发
[root@localhost root]# vi /etc/sysctl.conf
...
net.ipv4.ip_forward = 1
...
 
修改成以上的形式,net.ipv4.ip_forward=1是指表示转发,0表示不转发
 
vm1和vm2要添加到达对方的路由
vm1上:
# route add -net 192.168.128.0/24 gw 10.10.10.8
 
vm2上:
# route add -net 10.10.10.0/24 gw 192.168.128.8
 
通过ping命令互相ping通
 
 
二、开始BIND的设置:
 
1、打开/etc/name.conf
[root@localhost root]# vi /etc/named.conf

   
添加上了后面一段
zone "gr.org" IN {                    //指定一个域名为gr.org的正向区域
        type master;
        file "gr.org.db";                //指定文件名是gr.org.db
};
 
 
区域Type:
master: 主域服务
slave: 从域服务
stub: 只复制主域的NS记录,属于BIND特有功能.
hint: 设定初始化设置根域服务器所用的参数.
forward: 域转发设置
2、添加域名解析文件
添加一个gr.org的区域(zone),类型为主机(master,还有两种是slave和hint)
文件就在option定义的目录下/var/named
在该目录下创建gr.org.db文件
创建该文件,并插入以下的内容
[root@localhost root]# vi /var/named/gr.org.db
 
 
TTL
time to live 生存时间,默认为秒
@

表示相应的域名,表示一个域名定义的开始
这里代表gr.org

IN

表示后面的数据使用的是INTERNET标准

SOA

表示授权开始

ns.gr.org.

该域的主域名服务器

root.gr.org.

管理员邮件地址(这里的邮件地址中的用.来代替常见的邮件地址的@.)

20150317

serial(d. adams)表示配置文件的修改版本,格式是年月日当日修改的次数,每次修改时都应该修改这个数字,

要不然所做修改的不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你你的所配置

的DNS服务器数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就

不会反映出你的更新,也就对他们来说你更新是没意义的

6H

refresh,定义以单位(M分,H时,W周,默认是秒即不带单位)的刷新频率,即规定从域名服务器多长时间查

询一个主服务器,以服务器的数据的是最新的

30M

retry,以30分钟的时间间隔重试,即当从服务器试图在主服务器上查询更新时,而连接失败了,则这个值规定

了从服务器多长时间后重试

1W

expire,规定从服务器在向主服务器更新失败之后清除记录的时间

15M

minimum TTL,规定缓冲服务器不能与主服务器联系上的清除记录时间

NS

net server,表示该主机是域名服务器

A

address,定义了一条A记录,表示该主机名到IP地址的对应记录

MX

mail exchange,定义一条邮件记录

CNAME

定义了对应主机的一个别名

PTR

指一条反向域名解析PTR记录,类似A记录(PTR指针记录由IP地址提供商提供)

 (图表2016-11-02更新)
{
配置域名解析器
#cat > /etc/resolv.conf
nameserver 10.10.10.10
DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。
resolv.conf的关键字主要有四个,分别是:
nameserver //定义DNS服务器的IP地址
domain //定义本地域名
search //定义域名的搜索列表
sortlist //对返回的域名进行排序
此处是2015/3/24完善的}
 
3、测试设置是否完成
设置完成后,可用cat命令查看是否设置完整,确认后
使用命令
 
# service named start
启动服务,提示成功启动即可使用下面的命令来查看是否能连接到本机设置的DNS
{
如果要开机启动就是用下面的命令
chkconfig named on
此处是2015/3/24完善的}
(1)测试vm1上能否查询到该域名
# nslookup -sil www.gr.org
如果出现
**  server can't find www.gr.org: SERVFAIL
可以查看/etc/named.conf和/var/named/下的相关文件,这里是gr.org.db是否设置出错,一个地方出错都不会执行
 
(2)测试vm2上能否查询到该域名
成功之后,可以在vm2上查看是否存在
[root@localhost root]#  nslookup -sil www.gr.org
;; connection timed out; no servers could be reached
出现这个问题,很大程度上是由于gate机器上已经关掉该端口了,所以就使用关掉防火墙的简单方法开启该端口(53)。
在gate虚拟机上
# service iptables stop
 
(3)测试Windows上能否查询到该域名
使用Windows系统测试是否存在
先试试ping www.gr.org
看可不可以ping的通,一般可以的(应为我们也有这个网址被用了),那么如何判断是否是连我们的vm1的?
那就要断掉本地网络再试试ping命令
发现ping www.gr.org是不通的,而ping 10.10.10.10是通的,原因是没有设置DNS,设置方法如下:
1.关闭本地网络(以太网)
2.把vm1的DNS改为vm1的ip
再试试
>ping www.gr.org
 
4、在上面的基础上进行添加反向域名解析
(1)下面就要我们加上反向域名解析域区
# vi /etc/named.conf 
添加以下的语句(内容)
zone "10.10.10.in-addr.arpa" IN{                    //定义一个ip是10.10.10.*的反向域区
        type master;
        file "10.10.10.db";
};
注:如果在file下面加上一句allow-transfer {192.168.6.4;};
就是说指定从服务器,从服务器上面就要加上主服务器的ip即加上
master {192.168.6.3;};
 
(2)添加反向域名解析文件和配置
再用命令# vi /var/named/10.10.10.db
添加如下的配置信息
$TTL 86400
@       IN      SOA     ns.gr.org       root.gr.org.(
                20150317  6H  30M  1W  15M)
          IN      NS      ns.gr.org.
10      IN      PTR     ns.gr.org.
10      IN      PTR     www.gr.org.
11      IN      PTR     mail.gr.org.
 
注:
PTR        指一条反向域名解析PTR记录,类似A记录(PTR指针记录由IP地址提供商提供)
 
注:这里刚好是对称的,不容易看出,其实就比如192.168.133.0/24(就是用133.168.192的特殊域),后面的10,11就类似于用192.168.133.0/24的来表示就是10.133.168.192.in-addr.arpa(也就是192.168.133.10),这里是10.10.10.10.in-addr.arpa和11.10.10.10.in-addr.arpa
 
(3)测试配置是否完成
使用命令# rndc reload重启域名服务
通过# nslookup -sil 10.10.10.10
(在vm2也可以看到一样的信息)
就可以看到了信息
Server:         10.10.10.10
Address:        10.10.10.10#53

10.10.10.10.in-addr.arpa        name = www.gr.org.
10.10.10.10.in-addr.arpa        name = ns.gr.org.
有两条,证明我们的反向域名解析也配置好了
 
注:有什么意见或建议可以在评论区回复
posted @ 2015-03-20 14:22  慕容木木  阅读(17616)  评论(0编辑  收藏  举报