此次我们的口号是:简单、有趣上手DNS服务

博主是一个言出必行de好人,(正经脸)上次转载了有关DNS的基础介绍,此次我们来通过实验搭建DNS服务器从而更好的了解DNS搭建过程

如何开始,且听我细细道来

首先我们通常使用bind来配置DNS服务器,何为bind,某百科曰:

BINDBerkeley Internet Name Domain)

是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。

懂了吧,bind是一个软件,我们需要安装使用....(路人:博主,我们不瞎,谢谢!)

咳咳,来,来点值钱的

实验一:主DNS服务器搭建(正向解析,反向解析)

实验环境:两台VMware下的虚拟机,

以CentOS7作为DNS服务端,用于配置DNS服务

以CentOS6作为DNS客户端,用于测试DNS服务

呃...不行,正经不过三行,哈哈哈

实验步骤:

1、安装DNS服务软件bind,

推荐使用yum安装方法可以将bind及其所需组件一次性全部安装。声明一下,不是博主懒,这叫优化

[root@centos7 ~]#yum install bind -y                
.....................
.....................
.....................
Installed:
  bind.x86_64 32:9.9.4-37.el7                                                

Complete!      ###成功安装bind

注意:安装完bind会自动创建named系统用户,以named用户运行服务而不是以root用户运行,目的是为了防止***的***服务从而获取权限,这样的话遭受******只会获取named用户的低权限,不会获取root用户的管理员权限。许多服务软件都会这样来保护系统的安全。

2、配置文件的处理

安装bind后会有许多DNS服务配置文件,(不是博主不懂那啥,而是..而是只介绍实验相关的,其他..其他不考虑了,嘿嘿)

首先我们打开主配置文件:

[root@centos7 ~]#vim /etc/named.conf  
//..........
//..........
options {
        ............
        }
logging {
        ............
        }
zone "." IN {              
        type hint;
        file "named.ca";
};
                          ##我们可以直接在主配置文件里面模仿文件中的zone来写自己所需要的zone域
include "/etc/named.rfc1912.zones";        ##或者可以在此处/etc/named.rfc1912.zones中编辑自己所需要的zone域
include "/etc/named.root.key";

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

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

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

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

DNS服务的端口号为53,我们必须确定端口的监听问题,才可以让客户机来进行测试。

options {
//      listen-on port 53 { 127.0.0.1; };      ##原端口的监听
        listen-on port 53 {localhost;};       ##修改端口的监听,localhost为DNS自带关键字,表示本机的所有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     { localhost; };      ##原允许查询的IP
        allow-query     { any; };        ##修改为允许所有IP均可查询,any也是DNS自带关键字,表示所有IP地址


为了更好的说明我们将正向解析(将域名解析为IP地址)的区域信息写在主配置文件中

是这个样子滴:

zone "." IN {
        type hint;
        file "named.ca";    #区域解析库文件存放于/var/named/下
};                    #模仿文件中的zone来编写我们需要解析的zone
zone "magedu.com" {          #此处键入需要解析的域名,域名,域名,(剩下的一遍自己说)
        type master;         #类型master表示此服务器为主服务器,稍后会介绍辅助DNS服务器
        file "magedu.com.zone";    #定义区域正向解析库文件
};

将反向解析(将IP地址解析为域名)的区域信息写在包含的配置文件/etc/named.rfc1912.zones中

这样这样滴:

[root@centos7 ~]#vim /etc/named.rfc1912.zones 
.............
zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};                      #许多配置我们都可以模仿着来写:模仿上文来写自己需要反向解析的区域信息
zone "136.168.192.in-addr.arpa" IN {    #此处键入需要反向解析的IP地址段
        type master
        file "192.168.136.zone"    #定义反向解析库文件
};

接下来就是处理正向和反向解析库文件

区域解析库是由众多RR(Resource Record资源记录) 组成的,其中有这样几种类型

敲黑板、啪啪啪

SOA Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA 记录,必须位于解析库的第一条记录

A internet Address ,将完整域名解析为IPv4地址 

AAAA: 将完整域名解析为IPv6地址

PTR: PoinTeR ,将IP地址解析为完整域名

NS: Name Server ,专用于标明当前区域的DNS 服务器

CNAME Canonical Name ,别名记录

 MX: Mail eXchanger ,邮件交换器

在/var/named下已经有许多区域解析库文件,我们可以拷贝一份,然后进行必要的修改,也可以自己创建解析库文件

注意:拷贝模板或者自己创建解析库文件时注意权限问题,单纯cp或者手动创建时文件的所属组为root,named用户无法访问,就会报错,错误详情:server can't find XXX mailmagedu.com :SERVFAIL

为了简单我们拷贝一份模板,(加上选项-p,保留原有属性)

正向解析库文件是这个样子滴:

[root@centos7 named]#cp -p named.localhost magedu.com.zone   ##注意文件名与配置文件里面定义的保持一致
[root@centos7 named]#vim magedu.com.zone 
$TTL 1D                                                ##TTL值:域名解析记录在服务器中的存留时间
@       IN SOA  dns1 mail.magedu.com. (         ##@可以引用当前区域的名字
                                        0       ; serial    ##此文件中;表示注释,serial:序列号,与从DNS服务器有关
                                        1D      ; refresh   ##刷新时间
                                        1H      ; retry     ##重试时间
                                        1W      ; expire    ##过期时间
                                        3H )    ; minimum   ##否定答案的TTL值
        NS      dns1
dns1    A       192.168.136.132
www     A       192.168.136.123
websrv  A       192.168.136.125

反向解析库文件这样滴:

[root@centos7 named]#cp -p named.localhost 192.168.136.zone
[root@centos7 named]#vim 192.168.136.zone 
$TTL 1D
@       IN SOA  dns1 mail.magedu.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.136.132
123     PTR     www.magedu.com.
125     PTR     websrv

文件保存,配置全部完成(开心)

实际上,还有专门的检查配置文件语法错误的命令,语法错误会导致服务启动失败:

[root@centos7 named]#named-checkconf    ##检查主配置文件/etc/named.conf文件的语法错误
.......                                 ##无错误的话什么都不显示,只会显示错误信息
[root@centos7 named]#named-checkzone magedu.com /var/named/magedu.com.zone      ##检查区域解析库文件,格式为:named-checkzone zone filename
zone magedu.com/IN: loaded serial 3
OK     ##检查无误

3、测试环节

利用CentOS6客户机进行测试,为确保实验正确,我们网络选择仅主机模式,不连接互联网,并且客户机的DNS须指向服务器端,如何指向服务器端呢??给个赞就告诉你(路人肌肉男:你再说一遍,你说什么??)

我说..我说确保客户机的DNS指向有两种方法:

(1)

[root@centos6 ~]# vim /etc/resolv.conf 
# Generated by NetworkManager
search 9magedu.com
nameserver 192.168.136.132           ##直接在此处添加域名解析服务的IP地址,不需要重启网络,立即生效
[root@centos6 ~]# host www.magedu.com  ##host测试命令,用于专门测试DNS域名,或者dig命令,显示的信息更为详细
www.magedu.com has address 192.168.136.123

(2)

[root@centos6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
........
........
DNS1=192.168.136.132                       ##在此处指定DNS指向
........
[root@centos6 ~]# service network restart   ##需要重启网络服务
........
[root@centos6 ~]# host www.magedu.com    
www.magedu.com has address 192.168.136.123
[root@centos6 ~]# dig -x 192.168.136.125   ##dig命令测试反向解析需要加-x
........

实验成功,是不是很值钱,啊,谁不服,不服搭建个(冯小刚状(嚣张):还有谁)

来,再来五毛的

倘若主服务器不小心宕机,那么就需要一个副手(辅助DNS服务器)

主DNS服务器就像上述一样配置,主要介绍配置从DNS服务器

实验二:辅助DNS服务器(从DNS服务器)搭建

实验环境:以CentOS7为主DNS服务器,CentOS6为从DNS服务器

实验步骤:

1、从DNS服务器端安装bind软件包

2、配置文件处理

方便客户机测试:

[root@centos6 ~]# vim /etc/named.conf 
.............
.............
options {
//      listen-on port 53 { 127.0.0.1; };    ##可以将其注释掉,默认监听本机IP
.............
//      allow-query     { localhost; };    ##注释掉,默认允许任何IP查询
.............

修改配置文件:

[root@centos6 ~]# vim /etc/named.conf 
.............
zone "." IN {
        type hint;
        file "named.ca";
};
zone "magedu.com" IN {
        type slave;               ##类型:slave(奴隶),同步主服务器解析库文件
        masters { 192.168.136.132; };     ##标明主DNS服务器地址
        file "slaves/magedu.com.zone.slave";   ##从DNS服务器区域解析文件放在/var/named/slavesxia
};
include "/etc/named.rfc1912.zones";           ##也可以修改此配置文件,效果一样

我们也需要对主DNS服务器区域解析库文件进行修改

[root@centos7 named]#vim /var/named/magedu.com.zone 
$TTL 1D
@       IN SOA  dns1 mail.magedu.com. (
                                        3       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2            ##添加从DNS服务器IP
dns2    A       192.168.136.131
dns1    A       192.168.136.132
www     A       192.168.136.123
websrv  A       192.168.136.125

配置完成,接下来....

[root@centos6 ~]# service named restart        ##重启服务
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@centos6 ~]# ls /var/named/slaves/        ##从主DNS服务器上同步过来的区域解析库文件
magedu.com.zone.slave

之前区域数据库文件的序列号用于表示主从服务器文件的不同,主服务器文件发生修改,主服务器序列号发生变化,从服务器也会随之更新同步

3、测试环节

找寻客户机进行测试:

[root@centos6 ~]# host websrv.magedu.com 192.168.136.131      ##指定DNS服务器地址
Using domain server:
Name: 192.168.136.131
Address: 192.168.136.131#53
Aliases: 

websrv.magedu.com has address 192.168.136.125
[root@centos6 ~]# host websrv.magedu.com 192.168.136.132       ##指定DNS服务器地址
Using domain server:
Name: 192.168.136.132
Address: 192.168.136.132#53
Aliases: 

websrv.magedu.com has address 192.168.136.125

测试成功,怎么样,值钱不,(可把我NB坏了,叉会腰)

好了,实验就此结束了,没有细细进行排错(因为博主没有出错(傲气)),倘若大家实验过程中出错,下方评论键,博主一定及时尽最大努力为其解决回复