运维——DNS基础及实现

DNS :domain name service 域名服务 或

DNS:domain  name   system

作用:name resolving 名称解析   

解析类型:

    FQDN----->IP   正向解析

    IP----->FQDN   反向解析

    FQDN:full qualified  domain  name 完全合格(限定)域名

DNS服务器类型:

    主服务器:数据修改

    从服务器:请求数据同步

    缓存DNS服务器(转发器)


DNS服务器的实现


DNS的实现大致可分为 安装包——开启服务——配置文件——加载——实现


准备:用一台比较干净的虚拟机作为DNS服务器    IP:192.168.30.71

安装包:

1、安装包  yum install  bind  -y

运维——DNS基础及实现_第1张图片

如果出现以上安装错误可清理缓存  yum clean all 


然后再次安装

运维——DNS基础及实现_第2张图片



开启服务

  安装之后这时服务是没有开启的 ss -ntl 

运维——DNS基础及实现_第3张图片


运维——DNS基础及实现_第4张图片


配置文件

/etc/named.conf主配置文件
/etc/named.rfc1912.zones  存放域的数据库文件 等同于写入主配置文件

vim /etc/named.rfc1912.zones

运维——DNS基础及实现_第5张图片

注:格式可以仿照原有的格式只需增加内容即可

区域类型:

            主区域:master

            从区域:slave

            提示区域:hint

由于文件没有写绝对路径,系统默认会在/var/named/目录下去找相应的文件,所以最好把文件写在此目录下,格式可以仿照此目录下的named.localhost文件


cp /var/named/named.localhost   /var/named/zhongguo.zone

在配置此文件之前先了解此文件的格式  cat   zhongguo.zone模板如下:

运维——DNS基础及实现_第6张图片

模板中的每一个条目称为资源记录

资源记录格式:

 NAME    TTL    IN    RRT    VALUE

name:域名  可用@代替

TTL:生命周期 即缓存时长 开在开头定义,以下之间引用即可

IN :Internet

RRT: resource  record  type

VALUE:值


文件第一行必须是SOA(start of authority)起始授权记录格式如下:

ZONE NAME    TTL    IN    SOA    FQDN(

                                       serial序列号最长为10位

                                        refresh刷新时间

                                         retry重试时间

                                        expire过期时间

                                        minimum否定答案的TTL值

时间单位:M:分钟     H:小时    D:天    W:周

A(address):FQDN---->IPV4

AAAA:FQDN---->IPV6

PTR(pointer):IP---->FQDN

CANME(canonical  name):FQDN---->FQDN

了解模板的格式及内容后配置文件

vim /var/named/zhongguo.zone

运维——DNS基础及实现_第7张图片



加载

加载的方式有两种:

systemctl  reload  named   

rndc  reload



此时还可以通过两个工具对配置文件进行检查,确定是否存在错误


主配置文件检查:named-checkconf

解析库文件语法检查: named-chechkzone  "domain name"  path

运维——DNS基础及实现_第8张图片

两项检测都没有错误


实现

当配置文件格式和语法都没有出现错误,此时可以在另外一台主机上进行测试,

测试之前需要了解的三个测试工具

dig [-t type]  name  [@server]  [query  options]

host [-t type] name [server]

nslookup [-option]  [name|-] [options]  



错误1:连接超时如下



方案一:我们可以测试一下网络是否畅通ping 192.168.30.71

运维——DNS基础及实现_第9张图片

网络畅通,再去本机测试  出现同样的错误


查看属性  明显属组不同

运维——DNS基础及实现_第10张图片

更改属组 chgrp named zhongguo.zone

运维——DNS基础及实现_第11张图片

再次启动服务,状态正常

运维——DNS基础及实现_第12张图片

再次测试仍然失败,检查防火墙  关闭SELinux


再次在本机测试

运维——DNS基础及实现_第13张图片

显然在本机测试已经成功,但实现结果是在任何主机都能实现,在其他主机测试仍然失败

运维——DNS基础及实现_第14张图片


查看端口发现53的端口被绑定了,也就是说只能给绑定的IP解析,其他的主机不行

运维——DNS基础及实现_第15张图片


解决方案,只需在主配置文件中修改   vim /etc/named.conf

运维——DNS基础及实现_第16张图片

设置后重新加载  rndc  reload


再次在其他主机测试

用host测试

运维——DNS基础及实现_第17张图片运维——DNS基础及实现_第18张图片


用dig测试

运维——DNS基础及实现_第19张图片


一个简单的DNS服务就搭建好了


你可能感兴趣的:(linux运维)