热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxCentOS7配置与管理DNS服务器

DNS服务相关知识DNS服务概述  DNS是一个分布式名称管理与映射系统,它的主要工作就是IP地址与域名之间的相互翻译及其对域名地址映射数据库的管理。DNS采用树状结构对域名进行管

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

在这里插入图片描述

在这里插入图片描述




0x01 CentOS7 连接网络

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








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

在这里插入图片描述

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

在这里插入图片描述

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








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

在这里插入图片描述


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”→应用更改

在这里插入图片描述




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地址分配给虚拟器→

应用

如图所示:

在这里插入图片描述


2、修改网络连接


将 网络适配器 自定义 VMnet1










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

在这里插入图片描述


3、配置DNS服务器网卡









地址(A)

地址:192.168.3.5

网络掩码:255.255.255.0

网关:192.168.3.5

DNS

服务器:192.168.3.5

在这里插入图片描述


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.

在这里插入图片描述


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.

在这里插入图片描述


在区域文件中,@代表区域。因此,邮件地址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”

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

步骤四:测试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


以上


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



推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 场景1.IE,Firefox浏览器访问不了网站,谷歌浏览器可以,返回错误码DNS_PROBE_POSSIBLE.2.pingwww.qq.com可以ping通,ping局域 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
usually111131
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有