DNS服务相关知识

DNS服务概述

  DNS是一个分布式名称管理与映射系统,它的主要工作就是IP地址与域名之间的相互翻译及其对域名地址映射数据库的管理。DNS采用树状结构对域名进行管理。域名的形成往往如下所示:

     www.baidu.com

  其中,“com”称为顶级域名,“baidu”称为二级域名,“www”称为三级域名。每级之间可以用符号“.”相隔。从中可以看出域名采用逆序,即越靠后,域名等级越高,越靠前,域名等级越低。

DNS服务器分类

DNS服务器主要分成一下几类:
1、主DNS服务器
  主DNS服务器为其所负责的区域提供DNS服务。
2、辅助DNS服务器
  辅助DNS服务器分担主DNS服务器查询工作。
3、高速缓存DNS服务器
  这种高速缓存DNS服务器使用缓存的DNS信息进行域名转换,因而速度比较快。
  辅助DNS服务器和高速缓存DNS服务器可以在一定程度上减轻主DNS服务器的负荷,并且在主DNS服务器出现故障时,可以接替主服务器的工作。

DNS查询模式与域名解析

  DNS查询模式主要分成递归查询和迭代查询两种。
1、递归查询
  当DNS客户机向服务器发出DNS解析请求时,假设该DNS服务器在缓存或者区域数据库文件中无法解析该请求,那么如果由它向另一个DNS服务器发送该请求,则这种插叙模式被称为递归查询。
2、迭代查询
  当DNS客户机向服务器发出DNS解析请求时,假设该DNS服务器在缓存或者区域数据库文件中无法解析该请求,那么如果由客户机向另一个DNS服务器发送该请求,则这种查询模式被称为迭代查询。
  两种查询模式的区别主要在于当前DNS服务器无法解析域名时,又睡向另一台服务器发起新的解析请求。如果由当前服务器向另一台服务器发起新的解析请求,那么该查询请求称为递归查询。反之,如果由客户机向领一台服务器发起新的请求,则称为迭代查询。
  另外,域名解析过程又分为正向解析过程和反向解析过程。正向解析过程指的是由域名向IP地址的解析过程。反向解析过程指的是由IP地址向域名解析的过程

资源记录

  在DNS服务器的域名数据库文件中包含着许多的DNS域资源信息的记录被称为资源记录。资源记录主要包含以下几种类型:
1、SOA资源记录
  SOA(Start of AUthority,起始授权)资源记录用于定义整个区域的全局设置,一个区域文件只允许存在一个SOA记录。
2、NS资源记录
  NS(Name Server,名称服务器)资源记录用来指定某一个区域的权威DNS服务器,每个区域至少有一个NS记录。
3、A资源记录
  A(Address,地址)资源记录用于FQDN(Fully Qualified Domain Name,全称域名)映射为IP地址。
4、PIR资源记录
  PTR(Pointer,指针)资源记录用于将IP地址映射为FQDN。
5、CNAME资源记录
  CNAME(Canonical Name,别名)资源记录用于为FQDN起别名。
6、MX资源记录
  MX(Mail Exchange,邮件交换)资源记录用于为邮件服务器提供DNS解析。

hosts文件

  当没有DNS服务器时,hosts文件可以用来处理当前主机的域名解析请求。hosts文件由一系列的域名-IP地址对组成。将常用的域名-IP地址对加入hosts 文件可以加快域名解析的速度。linux系统中,hosts文件位于/etc/ 目录下 ;windows系统中,hosts文件位于 C:\Windows\system32/drivers\etc 目录下。


实验环境:

物理机操作系统:windows 10
VMware版本:VMware Workstation16
镜像版本:CentOS-7-x86_64-DVD-1611

实验目的:

1、了解DNS服务相关知识
2、掌握DNS服务的安装
3、掌握DNS服务的配置
4、了解DNS服务常见故障排除方法

实验基本配置命令: 启动、停止、重启及自启DNS服务

1、查询DNS服务状态

 查询DNS服务状态,可以使用以下命令:

[root@Dai ~]# systemctl status named

上述命令有两种执行结果,分别表示DNS服务是启动还是停止状态

Active: inactive (dead)      //未运行

● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: inactive (dead)      #未运行

Active: active (running)     //运行中

● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2021-05-11 07:25:10 CST; 5s ago       #运行中

2、启动DNS服务

 安装完毕后,可以通过以下命令启动DNS服务:

[root@Dai ~]# systemctl start named //启动named守护服务

3、停止DNS服务

 启动后,可以通过以下命令停止DNS服务:

[root@Dai ~]# systemctl stop named //停止named守护进程

4、重启DNS服务

 如果需要重启DNS服务,可以使用如下命令:

[root@Dai ~]# systemctl restart named //重启named守护进程

5、重新加载DNS服务配置

 如果需要重新加载DNS服务配置,可以使用如下命令:

[root@Dai ~]# systemctl reload named

6、查询DNS版本

 如果要查询DHCP是否安装,那么可以用如下命令:

[root@localhost~]#rpm -qa|grep bind

 rpm 软件包的管理工具

 -q 查看

  -qa查看所有

 |查看类似结果

 grep :正则表达式匹配

[root@Dai ~]# rpm -qa|grep bind
bind-license-9.11.4-26.P2.el7_9.5.noarch
rpcbind-0.2.0-38.el7.x86_64
bind-libs-9.11.4-26.P2.el7_9.5.x86_64
bind-utils-9.11.4-26.P2.el7_9.5.x86_64
keybinder3-0.3.0-1.el7.x86_64
bind-9.11.4-26.P2.el7_9.5.x86_64
bind-export-libs-9.11.4-26.P2.el7_9.5.x86_64
bind-libs-lite-9.11.4-26.P2.el7_9.5.x86_64

0x00:实验开始

拍摄快照

开始之前建议拍摄快照,这样即使虚拟机被玩坏了或者出现无法逆转的操作,可以还原到原始状态。

1、虚拟机→快照→拍摄快照

2、管理快照 "CTRL+M"

3、点击“拍摄快照"后,建议不要做任何操作,等待虚拟机左下角 “正在保存”完成后,即可

centos7关闭openssH centos7关闭dns_服务器


centos7关闭openssH centos7关闭dns_IP_02


0x01 CentOS7 连接网络

1、先通过虚拟机的NAT模式或者桥接模式 ,连接网络安装DHCP服务

虚拟机→设置→网络适配器→NAT模式

centos7关闭openssH centos7关闭dns_DNS_03

2、正常来说现在应该可以ping通 外网了。

centos7关闭openssH centos7关闭dns_服务器_04


3、当然,也有很多不正常的情况,出现ping不同的情况。这个时候还原 “虚拟网络编辑器”,也许就O了。

编辑→设置→虚拟网络编辑器→还原默认设置

注:目前了解到windows 10,进入“虚拟网络编辑器”后,需要点击右下角“更改设置”,才能修改网络配置

centos7关闭openssH centos7关闭dns_DNS_05

0x02 安装DNS服务

1、yum方法

使用yum安装DNS服务可以使用命令:

[root@locahost~]#yum install bind -y //安装DHCP服务

如果成功安装,会有如下提示:

已安装:
  bind.x86_64 32:9.11.4-26.P2.el7_9.5            
完毕!

2、图形化方法

1、应用程序→ 系统工具→软件

2、在搜索框中 搜索“bind”

3、勾选“The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server”→应用更改

centos7关闭openssH centos7关闭dns_服务器_06


0x03 搭建DNS服务器

案例描述

  授权DNS服务器管理JQE.com区域,并把该区域的文件命名为JQE.com.zone。DNS服务器是192.168.3.5,Mail服务器是 192.168.3.6,www 服务器是 192.168.3.7.

本例需要2台CentOS7 虚拟机,一台作为服务器,一台作为客户机

实训开始:

1、修改“虚拟网络编辑器中”

将Vmnet1 类型 修改为 自定义模式

编辑→虚拟网络编辑器→“VMnet2”→

□ 将主机虚拟适配器连接到此网络

□使用本地DHCP服务将IP地址分配给虚拟器→

应用

如图所示:

centos7关闭openssH centos7关闭dns_DNS_07

2、修改网络连接

将 网络适配器 自定义 VMnet1

虚拟机→设置→网络适配器→自定义→Vmnet1→确定

centos7关闭openssH centos7关闭dns_服务器_08

3、配置DNS服务器网卡

地址(A)

地址:192.168.3.5

网络掩码:255.255.255.0

网关:192.168.3.5

DNS

服务器:192.168.3.5

centos7关闭openssH centos7关闭dns_centos7关闭openssH_09

4、修改DNS主配置文件,增加正向解析区域和反向解析区域

[root@Dai ~]# vim /etc/named.conf

listen-on port 53 { any; };    //“127.0.0.1” 改成 “any”

allow-query { any; };      //“localhost” 改为 “any”

dnssec-enable no;       //“yes” 改为 “no”

dnssec-validation no;    //“yes” 改为 “no”

尾部添加一下内容

zone "JQE.com" {

  type master;

  file "JQE.com.zone";

};

zone "3.168.192.in-addr.arpa" {

  type master;

  file "3.168.192.in-addr.arpa.zone";

};

具体如下

options {
        listen-on port 53 { any; };  //“127.0.0.1” 改成 “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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; }; //“localhost” 改为 “any”
		recursion yes;
        dnssec-enable no;   //“yes” 改为 “no”
        dnssec-validation no;  //“yes”  改为 “no”
        bindkeys-file "/etc/named.root.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "JQE.com" {  //增加正向解析区域“JQE.com”
        type master; //类型为 “master”
        file "JQE.com.zone"; //区域解析文件为 “/var/named/JQE.com.zone”
};
zone "3.168.192.in-addr.arpa" {  //增加反向解析区域 “3.168.192.in-addr.arpa”
        type master; //类型为“master”
        file "3.168.192.in-addr.arpa.zone"; //区域解析文件为 “/var/named/3.168.192.in-addr.arpa.zone”
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

5、添加正向区域

复制样例文件 并修改 文件名为 “JQE.com.zone”

[root@Dai ~]# cp -p /var/named/named.loopback /var/named/JQE.com.zone

编写 文件

[root@Dai ~]# vim /var/named/JQE.com.zone

修改内容如下:

$TTL 1D
@       IN SOA JQE.com.root.JQE.com (  
                                        20210511 
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@ IN NS dns.JQE.com.
dns IN A 192.168.3.5
mail IN A 192.168.3.6
www IN A 192.168.3.7
@ IN MX 5 mail.JQE.com.

centos7关闭openssH centos7关闭dns_centos7关闭openssH_10

MX优先级数字越小,优先级越高。同一域名两个MX服务器,低优先级的作为高优先级的备份

6、添加反向区域

复制样例文件 并修改 文件名为 “JQE.com.zone”

[root@Dai ~]# cp -p /var/named/named.empty /var/named/3.168.192.in-addr.arpa.zone

编写 文件

[root@Dai ~]# vim /var/named/3.168.192.in-addr.arpa.zone

修改内容如下:

$TTL 3H
@       IN SOA  3.168.192.in-addr.arpa.   root.JQE.com (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@ IN NS dns.JQE.com.
@ IN MX 5 mail.JQE.com.

5 IN PTR dns.JQE.com.
6 IN PTR mail.JQE.com.
7 IN PTR www.JQE.com.

centos7关闭openssH centos7关闭dns_DNS_11

在区域文件中,@代表区域。因此,邮件地址root.JQE.com不能写成 root@JQE.com。

7、修改相应文件所属组为 named

[root@Dai ~]# chgrp named /etc/named.conf

[root@Dai ~]# chgrp named /var/named/JQE.com.zone

[root@Dai ~]# chgrp named /var/named/3.168.192.in-addr.arpa.zone

named 守护进程的默认属组是named,为了让进程能正常读取文件,因此需要修改文件的属组

8、开启DNS服务

[root@Dai ~]# systemctl start named

9、关闭防火墙

[root@Dai ~]# systemctl stop firewalld.service

检验配置结果:

步骤一:准备另一台 linux 虚拟机,将网络连接 修改为 “VMnet1”

centos7关闭openssH centos7关闭dns_centos7关闭openssH_12


步骤二:修改IP地址 ,一定要有 DNS服务器在同一个网段

centos7关闭openssH centos7关闭dns_服务器_13


步骤三:测试客户机是否与 DNS服务器 相通

centos7关闭openssH centos7关闭dns_服务器_14


步骤四:测试DNS服务器是否正常工作

nslookup 是一个程序的名字
是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。

[dai@localhost ~]$ nslookup   //域名查询
> server
Default server: 192.168.3.5
Address: 192.168.3.5#53
> 192.168.3.5
Server:		192.168.3.5
Address:	192.168.3.5#53

5.3.168.192.in-addr.arpa	name = dns.JQE.com.
> mail.JQE.com
Server:		192.168.3.5
Address:	192.168.3.5#53

Name:	mail.JQE.com
Address: 192.168.3.6

以上

由于博主目前还是大二学生,水平有限。文章中难免有疏漏或不当之处,敬请各位大神以及读者不吝赐教