Linux-DNS学习记录02-DNS搭建以及正反向解析

搭建目标

本次部署服务器使用情况
服务器 IP
CentOS7-1 192.168.2.100
CentOS7-2 192.168.2.101
web服务器 192.168.2.128

最终目标:利用 bind9 软件,配置CentOS-1 为主 DNS 服务器,采用 rndc 技术提供 不间断的 DNS 服务;配置 CentOS-2 为备用 DNS 服务器,同时为所有主机提供冗余 DNS 正反向解析服务。

本章目标:采用Chroot监牢模式搭建正反向解析DNS服务器

Bind9 基础介绍

Bind9 项目官网: https://www.isc.org/bind/ 

什么是Bind9?

1984年,加州大学伯克利分校的几个学生完成了Unix名称服务的实现,起名叫做,目前,它是互联网上使用最为广泛的DNS服务软件。
BIND9 是开源的、多功能、经典的、完整的名称服务器软件; BIND9 已发展成为一个非常灵活,功能齐全的DNS系统。其根据MPL 2.0许可获得许可, 用户可以自由地向BIND 9添加功能。

为什么要使用BIND 9?

无论您的应用程序是什么,BIND 9可能都具有必需的功能。作为第一个最古老最常用的解决方案,与其他任何系统相比,已经有更多熟悉BIND 9的网络工程师。
从发布(由DNSSEC签名)的DNS根区域和许多顶级域到发布具有许多小区域的非常大的区域文件的主机提供商,以及具有内部(私有)和外部区域的企业的所有应用程序,BIND均可成功用于所有应用程序中到具有大型解析器场的服务提供商。 

Bind9 软件包包括以下三个部分? 

1.DNS服务器: 它是一个叫做named的程序代表的简写, 它根据DNS协议标准的规定响应收到的查询, 默认Bind的配置文件为,在每一次named启动与挂起时都会被读取。。   
2.DNS解析库(resolver library) : 一个解析器等于一个程序,通过发送请求到合适的服务器并且对服务器的响应做出合适的回应, 来解析对一个域名的查询。一个解析库是程序组件的集合可以在开发其它程序时使用,为这些程序提供域名解析的功能。
3.软件测试工具 : 例如 dig、host 等DNS测试软件; 

Bind9 版本说明? 

BIND 的当前代码库为 BIND9 ,当前Current-Stable为9.16.9;
BIND 稳定版,开发版,扩展支持(ESV)和订阅(支持的预览版标记为-S)。

Tips: bind服务需要开放的端口和说明():

  • UDP 53 port 用于常规解析;
  • TCP 53 port 用于bind同步数据等作用;
  • TCP 953 port 用于IPv6解析; 

Bind9 安装方式

描述: 安装Bind服务软件的几种方式说明

# (1) 包管理工具
- Redhat 家族
  yum install -y bind bind-chroot
  rpm -qa | grep bind   # 查看被安装的Rpm包
  rpm -ql bind | more   # 本地的文件路径

-  Ubuntu 家族
  apt-get install bind9 bind9utils bind9-doc -y
  dpkg --list | grep "bind9"
  # ii  bind9-dnsutils                       1:9.16.1-0ubuntu2.4               amd64        Clients provided with BIND 9
  # ii  bind9-host                           1:9.16.1-0ubuntu2.4               amd64        DNS Lookup Utility
  # ii  bind9-libs:amd64                     1:9.16.1-0ubuntu2.4               amd64        Shared Libraries used by BIND 9

# 采用光盘安装
vim  /etc/yum.repos.d/base.repo
[RHEL6]
name= base
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0

# (2) 编译安装
https://downloads.isc.org/isc/bind9/9.16.9/bind-9.16.9.tar.xz

# (3) 容器安装
官方镜像: https://hub.docker.com/r/internetsystemsconsortium/bind9

Tips : 但是在生产环境中您很可能会有其他限制,包括:

  • 已经安装并正在运行BIND版本-在准备好之前,您不希望覆盖它。
  • 在升级后出现意外情况时,通常希望保留选择切换回以前版本的选项。
  • 您可能需要在另一台计算机上构建BIND,因为您的生产环境未安装编译器。
  • 您可能正在集中构建BIND,以将其分发到许多分散的生产机器。

Tips : 编译安装 bind9 有一个麻烦之处(), 所有的配置文件都得自己去建立比如/var/named/这个目录、编译安装时连这个目录都不会存在、得自己去创建这个目录、里面的各种配置文件、区域文件、像根的、甚至连
service启动脚本都没、所以不到万不得以最好别去编译它,所以建议采用操作系统中软件管理包进行自动安装;

DNS部署

DNS安装

[root@localhost ~]# yum -y install bind bind-chroot

bind DNS  主程序包

bind-chroot DNS安全报,改变默认DNS根目录,将DNS运行在监牢模式

bind-chroot是bind的一个功能,使bind可以在一个chroot的模式下运行.也就是说,bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已.这样做的目的是为了提高安全性.因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步提升,进入到系统的其他目录中。bind的默认启动方式就是chroot方式。

DNS启动

方法一:不使用chroot模式启动DNS

开启开机启动

[root@localhost ~]# systemctl enable named

启动DNS服务

[root@localhost ~]# systemctl start named

方法二:使用chroot模式DNS

将对应的文件移动到chroot目录

主配文件

[root@localhost ~]#  cp -p /etc/named.conf /var/named/chroot/etc/

区域数据库文件

[root@localhost ~]#  cp -p /var/named/named.* /var/named/chroot/var/named/

 开机启动

[root@localhost ~]# systemctl enable named-chroot.service

启动服务

[root@localhost ~]# systemctl start named-chroot

        使用chrooot模式后,DNS根的路径将会变为 /var/named/chroot/ 而chroot刚开始的时候并没有相关文件所以需要将原本的文件拷贝到chroot的根目录下,拷贝到同时需要注意将权限组一同拷贝。

Linux-DNS学习记录02-DNS搭建以及正反向解析_第1张图片

 相关权限和权限组,如果不对请进行权限的修改

Tips: cp -p 可以将权限一并拷贝

DNS配置文件详情

默认情况下,如果不安装named-chroot这个包,配置文件的路径如下:

        配置文件:/etc/named.comf

        区域数据库文件:/var/named/

由于我们安装了named-chroot这个用于改变默认DNS配置文件的路径的包,所以相应的配置文件的路径也发生了变化。

变化如下:

        配置文件:/var/named/chroot/etc/named.conf

        区域数据库文件:/var/named/chroot/var/named/

域名解析

正向解析

我们对test123.com域名做解析,解析要求如下:

        www解析为A记录IP地址为:192.168.2.128

        news做别名解析CNAME解析为www

Tips:主配置文件在由我们从/etc/named.conf 复制到 /var/named/chroot/etc/named.conf ,所以我们只需要编辑 /var/named/chroot/etc/named.conf即可。

在named.conf配置文件中,创建正向解析需要定义一个主域,以下是创建模板:

//定义一个主域
//注意每行都要;结尾
zone "test123.com" IN {
//类型为master
    type master;
//区域数据库文件名称
    file "test123.com.zone";
};

Tips:区域数据库文件的名字可以随便命名,但是一定要有意义,同时我们需要在/var/named/chroot/var/named/处创建一个名字相同的区域数据库文件,而这个区域数据库文件我们需要修改等情况需要先复制当前目录的模板进行创建。

[root@localhost ~]# cat /var/named/chroot/var/named/test123.com.zone 
$TTL 1D
//$TTL 为缓存周期 1D代表一天
test123.com.    IN SOA  ns1.test123.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1.test123.com.
ns1     A       192.168.2.100
www     A       192.168.2.128
news    CNAME   192.168.2.128 //CNAME 为别名
vip     A       192.168.2.128
dmcc    A       192.168.2.128

【正在编写中】


 

正向解析主配文件

域名解析命令

反向解析

你可能感兴趣的:(Linux,学习笔记,linux,学习,服务器)