基于 RedHat 5 DNS服务器的架设详细步骤

1.DNS产生背景

​ 我们知道ip地址一开始是32位的,分成四段,用点分十进制表示,我们在浏览器上浏览文章时,我相信大家应该没有见过在地址栏中出现ip地址吧,这样是因为数字不太容易记住,人脑更喜欢记忆符号化的数据。

​ 网络上的数据需要通过ip地址来进行路由,最终传送到目的地,比如ip报文中首部的源地址和目的地址,没有ip地址是不行的,但为了解决难记忆的问题,人们想到把ip地址映射到一个主机名,这样访问该主机名就相当于访问该ip地址 ,那就是 /etc/hosts 这个档案的用途了。

​ 可惜的是,这个方法还是有缺憾的,那就是主机名与 IP 的对应无法自动于所有的计算机内更新, 且要将主机名加入该档案仅能向 INTERNIC 注册,若 IP 数量太多时,该档案会大到不象话,也就更不利于其他主机同步化了。

​ 为了解决这个日益严重的问题,柏克莱大学发展出另外一套阶层式管理主机名对应 IP 的系统, 我们称它为 Berkeley Internet Name Domain, BIND 这也是目前全世界使用最广泛的领域名系统 (Domain Name System, DNS)

2.DNS与BIND

DNS 是一种因特网的通讯协议名称, 至于 Bind 则是提供这个 DNS 服务的软件 。

3.FQDN(完整主机名)、领域名、主机名

领域名底下还可以记录各个主机名, 领域名和主机名组合起来才是完整的主机名 (FQDN)

域名限制了范围,而主机名显示了对象,加在一起就是完整路径。比如北京(领域名)的小海(主机名),完整主机名(FQDN)就是 小海.北京.(注意最后的小数点,代表根域名)

例如下面的或许更形象

在这里插入图片描述

4.使用传输层协议

通常 DNS 查询的时候,是以 udp 这个较快速的数据传输协议来查询的, 但是万一没有办法查询到完整的信息时,就会再次的以 tcp 这个协定来重新查询的 。

5. DNS 数据库的记录:正解, 反解, Zone 的意义
  • 从主机名查询到 IP 的流程称为:正解

  • 从 IP 反解析到主机名的流程称为:反解

  • 不管是正解还是反解,每个领域的记录就是一个区域 (zone),每一个区域对应一个解析文件。

    另外,每一部 DNS 服务器都可以管理多个领域,不管是正解还是反解。

6.架设BIND

要架设好 BIND 需要什么设定数据呢?基本上有两个主要的数据要处理:

  • BIND 本身的配置文件:主要规范主机的设定、zone file 的所在、权限的设定等;

  • 正反解数据库档案 (zone file):记录主机名与 IP 对应等。

    本次搭建服务器基于redhat 5

7.caching-nameserver

dns配置文件模版

8.服务安装
[root@localhost ~]#yum install bind
[root@localhost ~]#yum install bind-chroot
[root@localhost ~]#yum install caching-nameserver-9.3.4-6.P1.el5.i386.rpm  //dns配置文件模版
9.搭建目标

DNS服务主机IP:192.168.1.224 名称 dns.example.com

管理员邮箱:master@domin.com

正向解析:

www.example.com 192.168.1.10

mail1.example.com 192.168.1.20

mail2.example.com 192.168.1.21

web.example.com 是 www.example.com的别名 (访问前者等于访问后者)

NAME                    TYPE   VALUE
--------------------------------------------------
web.example.com.        CNAME  www.example.com.
www.example.com.        A      192.168.1.10

反向解析

192.168.1.224 反向解析 dns.example.com

192.168.1.10 反向解释 www.example.com

192.168.1.20 反向解析 mail1.example.com

192.168.1.21 反向解析 mail2.example.com

10.修改主配置文件
[root@localhost ~]#vim    /var/named/chroot/etc/named.caching-nameserver.conf **     

//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver 
// (as a localhost DNS resolver only). 
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on 
// caching-nameserver package upgrade.
//

options {

```bash
listen-on port 53 { any; };  //any     #修改点
```

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";
query-source    port 53;
query-source-v6 port 53;

```bash
allow-query     { any; };   //any      #修改点
```

};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

view localhost_resolver {

```bash
match-clients     { any; };			 #修改点
match-destinations { any; };	      #修改点
```

recursion yes;
include "/etc/named.rfc1912.zones";
};
11.修改DNS区域配置文件
**[root@localhost ~]#vim  /var/named/chroot/etc/named.rfc1912.zones** 

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package 
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// 
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "." IN {
type hint;
file "named.ca";
};


zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};


zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};


zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};

zone "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 {
type master;
file "named.ip6.local";
allow-update { none; };
};


zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};


#新建以下内容


zone "example.com" IN {    
type master;
file "example.com.zone";   #这里的文件名和后面的正向解析文件名相对应
allow-update {none;};
};

zone "1.168.192.in-addr.arpa" IN {  
type master;
file "192.168.1.local";   #这里的文件名和后面的反向解析文件名相对应
allow-update {none;};
};


12配置正向解析文件
[root@localhost ~]#cd /var/named/chroot/var/named 
[root@localhost named]#cp -a named.local example.com.zone  
[root@localhost named]#cp -a named.local 192.168.1.local 
#cp命令的时候,谨记带上参数-a,因为文件有权限方面问题,如果不是-a可能无法启动DNS服务器
[root@localhost named]#vim  example.com.zone  


$TTL 86400


@     IN SOA dns.example.com.    master.domin.com. (   


 #这里的邮箱@符号用 “. ”号代替,因为@在文件中代表本域 即 example.com.
42; serial (d.adams)
3H; refresh
15M; retry
1W; expiry
1D); minimum


@                              IN        NS          dns.example.com.
 dns.example.com.              IN	     A 	         192.168.1.224

@                              IN       MX      10   mail1.example.com.   #10代表优先级,越小优先级越高

@                              IN       MX      20   mail2.example.com.

mail1.example.com.             IN        A           192.168.1.20

mail2.example.com.             IN        A           192.168.1.21

www.example.com.               IN        A           192.168.1.10

web                            IN       CNAME        www.example.com.
一定从行首开始所有设定数据一定要从行首开始,前面不可有空格符。若有空格符,代表延续前一个 domain 的意思~非常重要~
@这个符号代表 zone 的意思!例如写在 example.com.zone 中,@ 代表 example.com.,如果写在 192.168.1.local档案中,则 @ 代表 1.168.192.in-addr.arpa. 的意思
.这个点 (.) 很重要!因为他代表一个完整主机名 (FQDN) 而不是仅有 hostname 而已。举例来说,在 example.com.zone 当中写 www.example.com 则代表 FQDN 为 www.example.com.@ ==> www.example.com.example.com. 喔!因此当然要写成www.example.com. 才对!最后一行没有写全,系统会为我们自动加上example.com. (@) 最终成为web.example.com. 这是一种简化的写法
13.配置反向解析文件
[root@localhost named]#vim 192.168.1.local

$TTL 86400

@     IN SOA dns.example.com.    master.domin.com. (   

 #这里的邮箱@符号用 “. ”号代替,因为@在文件中代表本域 即 example.com.
42; serial (d.adams)
3H; refresh
15M; retry
1W; expiry
1D); minimum

@                    IN        NS           dns.example.com.

224                  IN	       PTR	        dns.example.com.

20                   IN        PTR          mail1.example.com.  

21                   IN        PTR          mail2.example.com.

10                   IN        PTR          www.example.com.  
14.启动DNS
[root@localhost ~]# /etc/init.d/named restart 
15.检测
[root@localhost ~]# vim /etc/resolv.conf 

nameserver  192.168.1.224
[root@localhost ~]# dig www.example.com
;; ANSWER SECTION:
 www.example.com.       86400           IN      A       192.168.1.10
[root@localhost ~]# dig -x 192.168.1.10
;; ANSWER SECTION:
10.1.168.192.in-addr.arpa. 600 IN    PTR     www.example.com.
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值