DNS服务

一.DNS介绍

DNS应用层协议

Domain Name System 域名系统

作用:实现域名解析,解析主机名所对应的IP地址,

在网络环境中设备与设备之间要想相互通信只能依赖IP地址,DNS服务器的作用是实现域名解析。

如上图所示,DNS存在的目的,就是机器给DNS服务器发送请求,然后获取京东网址的IP地址,然后机器进行数据封装,随后给京东机器通信。

自己构建一台DNS服务器的作用:正向解析(根据主机名,返回主机名机器的IP)反向解析(根据IP地址解析对应的主机名)。(做垃圾邮件过滤需要反向解析。)

DNS服务内部要有域名信息存在,才可以实现主机名解析成IP地址的功能,每一条信息称之为一条记录,面对海量的互联网主机名对应的IP信息肯定不能每一条信息都记录,就算机器能存下所有的信息也会影响搜索效率。

如果只让一台DNS服务器来解析主机名,会大幅度地拖慢机器的搜索效率。

解决方案主要采用分层的思想,

不同级别的DNS服务器干不同的事情,

如上图所示,是DNS服务器的域名结构,比如www.baidu.com中的com是一级域名,baidu是二级域名,www是百度自己在baidu.com这个域名中的一个名称而已,完成的主机名结构应该是www.baidu.com.只不过最后的一个点从来不写,

不同的机器干不同事情其作用就是用来缓解DNS服务器的压力。

二.DNS核心概念

1.区域 zone

创建区域,一般这个区域就是二级域名,

linux.com创建好之后就意为着我们告诉这台DNS服务器你要去负责解析linux.com结尾的所有主机名,如果又创建了一个域名,a.rog也就是告诉机器将来你要去解析a.org结尾的所有主机名,

正向区域:本质上就是一个二级域名,比如linux.com就相当于是告诉服务器来说你要去负责解析linux.com的所有域名,(即解析主机名所对应的IP地址是什么。)

反向区域:不是必须的,只有希望DNS服务器实现反向解析功能的时候,才需要创建反向区域,并且反向区域的名称格式就是x.x.x.in-addr.arpa

前面这三个数字就是IP地址的前三位数字位置倒过来写的,

比如1.168.192.in-addr.arpa这个反向区域的作用就是将来DNS服务器要负责解析IP地址是192.168.1开头的所有IP地址,将这个些IP地址对应的主机名返回。

2.记录 record

即将来的DNS服务器能够解析那些主机名就需要我们事先将主机名所对应的IP地址写进DNS服务器中,这样的一行信息称之为是一条记录。

常见的记录类型

1.A记录

主要是用来记录主机名,IP地址的对应关系的,

www.baidu.com A 1.1.1.1 

即记录某一个主机名所对应的IP地址的。

2.PTR记录

反向指针记录,

用来记录IP地址,主机名的对应关系

1.1.1.1 PTR www.baidu.com

当DNS服务器需要所反向解析的时候,才需要PTR记录。

3.NS记录

用来标识某一个主机名所对应的服务器是DNS服务器,

NS test1.linux.com.

NS的作用是用来标识在网络中有一台DNS服务器,这台DNS服务器的主机名叫做test1.linux.com

NS记录不能单独存在,NS记录必须要跟A记录一起使用。

即NS test1.linux.com. 

test1.linux.com. A 2.2.2.2 

4.MX记录

用来标识邮件服务器的,MX 5 mail01.linux.com.

后面的mail01.linux.com.主机名代表的是一台邮件服务器,

在公司内部安全需求高的是不允许使用其他的邮件软件来发送邮件,都是使用公司内部的邮件服务器,此时收发邮件都是通过公司内部的邮件服务器来收发。

这个MX记录用的时候,也需要搭配A记录一起使用。

即先写MX  5  mail01.linux.com

mail01.linux.com.   A   4.4.4.4

如果公司内部没有邮件服务器那么这个MX记录就用不到。

其中数字5标识这个邮件服务器的优先级,数字越小,优先级越高,优先级越高,其他客户端越会首先使用数字小的邮件服务器来收发邮件。

MX 10 mail02.linux.com

mail02.linux.com.   A    5.5.5.5

数字越小优先级越高,

5.CNAME记录

中文叫做别名记录

给主机名起别名的,

也就是说,给主机名起一个别名,

如上图所示,比如www.baidu.com是www.a.shifen.com的别名,这样是为了好记。

给一个主机名起别名的时候可以起多个别名,但是没有必要啊。

书写形式如上。

3.DNS的查询类型

1.递归查询

指的是客户端只需要发送一次查询请求就可以获取结果。

2.迭代查询(实现迭代查询的前提是这台DNS服务器可以正常上网。)

指的是客户端需要发送多次查询请求才可以获取结果。

三.DNS的部署即DNS在Linux上的实现

软件:bind,bind-chroot

严格意思上说bind-chroot可以不安装,但是建议安装,为了增强DNS服务的安全性,

bind的配置文件都在/etc/保存着。

bind-chroot会给DNS进程生成一个伪根目录,即/var/named/chroot将来所有的配置都在这个为根目录下的配置文件书写。

也就是说把DNS服务的权限被限制在了伪根目录下,将来有一天这个DNS服务器被攻破了哪怕攻击者获取到了DNS服务器的运行权限也只能在这个伪根目录下进行操作,真正的重要的信息根本无法获取。

DNS经常被人攻破,要注意保护信息。

配置文件:伪根目录来说,

主配置文件:/var/named/chroot/etc/named.conf主要作用是用来定义区域,即正向区域还是反向区域,以及这个区域名称是什么。

记录文件:/var/named/chroot/var/named/*主要作用是用来写记录信息的。

搭建DNS服务器就是两件事创建区域,编写记录。

存放记录信息的文件名称可以随意。

但是

named.conf主配置文件:

定义区域:linux.com

记录文件:linux.com.zone

记录文件:/var/named/chroot/var/named/linux.com.zone

服务:named,named-chroot

端口:53/udp

四.配置DNS实现正向解析

需求实现:员工可以根据公司内部的DNS服务器实现主机名向IP地址转化的正向解析,

web.linux.com        192.168.1.1

ftp.linux.com                192.168.1.2

mail.linux.com        192.168.1.3

ns01.linux.com        192.168.183.10

如上图所示,创建区域,并且这个区域名称是linux.com

负责解析linux.com结尾的所有主机名,

1.关闭防火墙,SELinux,确保机器的时间一致

2.安装DNS相关软件

如上图所示,安装DNS所需要的软件,

3.编辑named.conf主配置文件,创建区域

如上图所示,在伪根目录下去创建这个主配置文件,

如上图所示,第一个文件路径表示的是记录文件的存放位置,

这个目录实际标识的是/var/named/chroot/var/named

如上图所示,第二个文件路径表示的是创建区域的名称,这个区域都是二级区域,

type master;表示的是这个区域是主区域,也就是说这个区域中记录信息可以根据自己的需要,随意添加修改记录信息。

也可以把区域类型修改为从区域,并且这个区域中的记录信息,都是不能直接操作的。需要从主区域来修改从区域中的内容。

文件名指定的就是区域的记录文件名称。

4.复制记录文件模板named.local host

如上图所示,就是记录文件模板,

5.添加记录信息

写管理员邮箱地址的时候把@改成点.

如上图所示,就是DNS服务器的记录文件。

6.记录named服务

如上图所示,启动DNS服务,并且配置DNS服务开机自启动。

如上图所示,通过查看进程以及查看DNS产生的UDP协议的端口号来验证DNS服务器是否启动成功。

7.检测DNS是否能够正向解析,即能否将主机名转化成IP地址

(测试DNS服务是否能够正常工作。)可以通过工具nslookup

如上图所示,指定需要哪个DNS服务器来解析主机名,

如上图所示,这时主机名解析正常。

随后exit退出即可。

DNS服务器的作用就只是解析这个主机名所对应的IP地址,但是这个机器能不能跟这个IP地址通信,跟这个DNS服务器没有关系。

五.配置DNS实现反向解析(如果要配置DNS服务器实现反向解析,必须要保证DNS的正向解析是正常的,需要在正向解析的基础上去进行反向解析。)

如上图所示,这个切换机器DNS服务器地址的行为只是临时的指定当退出这个nslookup软件的时候,DNS服务器指定的功能就失效了。

那么如何让其他机器使用你构建的DNS服务器的主机名呢?

 

如上图所示,可以把网卡的DNS服务器的地址修改为搭建的DNS服务器的IP地址,此时DNS在其他机器上能够成功生效。

如上图所示,就算是自己搭建的DNS服务器也可以去解析一些记录文件中没有的主机名,这里DNS服务器主要使用的是迭代查询。

这里的非权威应答是说的使用的是迭代查询。

当然DNS服务器能够使用迭代查询的条件是能上网。

如上图所示,此时要求DNS服务器进行反向解析是失败的。

 如果想要DNS能够做反向解析的话,就要求有反向区域,并且有对应的记录

1.编辑named.conf主配置文件,添加反向区域

创建反向区域解析IP地址所对应的主机名

如上图所示,因为这三个机器的IP地址前三位一样所以只要创建一个反向区域就可以了。

如上图所示,就是在DNS的主配置文件中所创建的反向区域。以及反向区域的记录文件名称。

2.添加反向区域对应的记录文件

如上图所示,首先复制记录文件的模板。

随后去修改这个复制的记录文件中的内容。

如上图所示,就是这个反向区域的记录文件中的内容。

3.重启DNS服务,测试

如上图所示,此时将机器的DNS指定为创建的DNS服务器地址,就可以实现反向解析了。

六.hosts文件的使用

一个客户端想获知一个主机名所对应的IP,除了有对应的DNS服务器之外还有另外的方式。

客户端系统内部有一个文件hosts,这个文件是用来记录某IP地址和主机名之间的关系的,先找的是hosts文件,找不到的话然后再找的是DNS服务器,

这就是在windows系统上用来保存IP地址和主机名对应关系的文件。

如上图所示,如果想修改这个文件的内容需要把这个文件拖到桌面上,然后以记事本形式打开,随后前面是IP地址,后面是这个IP地址所对应的主机名。

随后保存,随后将原来的hosts文件替换即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/427486.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英飞凌 PSoC6 RT-Thread 评估板简介

概述 2023年,英飞凌(Infineon)联合 RT-Thread 发布了一款 PSoC™ 62 with CAPSENSE™ evaluation kit 开发板 (以下简称 PSoC 6 RTT 开发板),该开发套件默认内置 RT-Thread 物联网操作系统。PSoC 6 RTT 开…

Matplotlib | 一文搞定Matplotlib从入门到实战演练!

文章目录 1 什么是Matplotlib1.1 Matplotlib的安装1.2 Matplotlib的基本使用 2 绘制直线3 绘制折线设置标签文字和线条粗细设置中文标题风格的设置 4 绘制曲线绘制曲线yx^2绘制正弦曲线和余弦曲线画布分区 5 绘制散点图绘制不同种类不同颜色的线 6 绘制条形图(柱状&…

计算机网络 ---- OSI参考模型TCP/IP模型

目录 一、OSI参考模型 1.1 学习路线 1.2 OSI参考模型和TCP/IP模型 1.3 具体设备与具体层次对应关系 1.3.1 物理层 1.3.2 数据链路层 1.3.3 网络层 1.3.4 传输层 1.3.5 会话层、表示层、应用层 1.4 各层次数据传输单位 二、TCP/IP模型 2.1 学习路线 2.2 TCP/I…

对 JavaScript 原型的理解

笔者看了一些有关 JavaScript 原型的文章有感而发,就将所感所悟画了下来如果有理解错误和不足的地方,欢迎各位大佬指出,笔者感激不尽

【Django5】django的helloworld

安装django pip install djangoDjango官方中文文档 https://docs.djangoproject.com/zh-hans/5.1/Github链接 https://github.com/django/django创建Django项目 cd到想要创建项目的文件夹下,输入以下命令创建项目 这行代码将会在当前目录下创建一个 mysite 目录 …

9月26日云技术研讨会 | SOA整车EE架构开发流程及工具实施方案

面向服务的架构(Service Oriented Architecture, SOA)实施需要复杂的基础技术作为支撑,伴随着整车硬件资源的集中化、车载以太网等高速通信技术在车内的部署,将在未来一段时间内成为行业技术研究和市场布局的热点。 近年来&#x…

AD域控服务器

1.AD域控服务器安装 2.客户端Windows10加入域环境 3.组织单位OU和域用户创建 目的是分部门管理用户和使用域用户登录客户端 4.域用户安全策略 5.当客户端密码锁住了,管理员解锁账户。 6.只允许域用户使用自己的电脑 7.域策略 7.1统一客户端桌面壁纸 7.2重定向用户配置文件路径…

【macOS】【zsh报错】zsh: command not found: python

【macOS】【zsh Error】zsh: command not found: python 本地已经安装了Python,且能在Pycharm中编译Python程序并运行。 但是,在macOS终端,运行Python,报错。 首先要确认你在macOS系统下,是否安装了Python。 如果安…

每日刷题(算法)

我们N个真是太厉害了 思路: 我们先给数组排序,如果最小的元素不为1,那么肯定是吹牛的,我们拿一个变量记录前缀和,如果当前元素大于它前面所有元素的和1,那么sum1是不能到达的值。 代码: #def…

ElK 8 收集 Nginx 日志

1. 说明 elk 版本:8.15.0 2. 启个 nginx 有 nginx 可以直接使用。我这里是在之前环境下 docker-compose.yml 中启动了个 nginx: nginx:restart: alwaysimage: nginx:1.26.1ports:- "80:80"- "443:443"volumes:#- ./nginx/html:/…

Eigen3 教程基础篇(三)

参考 Eigen3 主页,Eigen3 官网教程 矩阵的本质,通过多种矩阵的应用去感受矩阵本质 3Blue1Brown 的线性代数,用可视化方法来表现线性代数的特性,强推 如何理解复数和虚数,有动画方便理解复数的意义 相关文章 Eigen…

《ElementUI/Plus 踩坑》el-table + sortablejs 拖拽顺序错乱(Vue2/3适用)

如图所示: 把第一行拖到最后一行,鼠标up;该行莫名其妙的跳到倒数第二行; 最后发现没有设置 el-table 属性 row-key ,即行数据的 Key,用来优化 table 的渲染; 属性 row-key 描述如下&#xf…

YOLOv10轻量化快速涨点之改进AKConv

目录 1,什么是AKConv? 2,如何使用AKConv使YOLOv10快速长点? 2.1,在ultralytics-main/ultralytics/nn/modules/conv.py里面添加AKConv类 2.2,ultralytics-main/ultralytics/nn/modules/conv.py添加如下 2.3 在E:\czc\YOLOv10\ultralytics-main\ultralytics\nn\tasks.p…

算法.图论-并查集上

文章目录 1. 并查集介绍2. 并查集的实现2.1 实现逻辑2.2 isSameSet方法2.3 union方法(小挂大优化)2.4 find方法(路径压缩优化) 3. 并查集模板 1. 并查集介绍 定义: 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所…

1 elasticsearch安装

【0】官网参考 https://www.elastic.co/guide/en/elasticsearch/reference/7.11/targz.html 【1】Centos7 下载安装 【1.1】下载 官网:Download Elasticsearch | Elastic 选择好自己想要的相关版本即可; 【2】Centos7.X 前置环境配置(uli…

秦时明月6.2魔改版+GM工具+虚拟机一键端

今天给大家带来一款单机游戏的架设:秦时明月。 另外:本人承接各种游戏架设(单机联网) 本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。 教程是本人亲自搭建成功的,绝对是完整可运行…

【Vmware16安装教程】

📖Vmware16安装教程 ✅1.下载✅2.安装 ✅1.下载 官网地址:https://www.vmware.com/ 百度云盘:Vmware16下载 123云盘:Vmware16下载 ✅2.安装 1.双击安装包VMware-workstation-full-16.1.0-LinuxProbe.Com.exe,点击…

最新动态一致的文生视频大模型FancyVideo部署

FancyVideo是一个由360AI团队和中山大学联合开发并开源的视频生成模型。 FancyVideo的创新之处在于它能够实现帧特定的文本指导,使得生成的视频既动态又具有一致性。 FancyVideo模型通过精心设计的跨帧文本引导模块(Cross-frame Textual Guidance Modu…

C#和数据库高级:抽象类和抽象方法

文章目录 一、为什么使用抽象类和抽象方法?1.1、父类与子类的相互转换 二、抽象类和抽象方法2.1、抽象类的定义和方法声明规范2.2、使用继承多态的机制解决问题 三、抽象类的概念和使用特点总结 一、为什么使用抽象类和抽象方法? 1.1、父类与子类的相互…

考研数据结构——C语言实现有向图邻接矩阵

首先,定义了一些基本的数据结构和常量: VertexType:顶点的数据类型,这里定义为char。EdgeType:边的数据类型,这里定义为int,用于存储权重。MAXVEX:定义了图中最大顶点数为100。INFIN…