Windows server——部署DNS服务

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Windows server——部署DNS服务

前言

在Internet中使用IP地址来确定计算机的地址,这种以数字表示的IP地址不容易记忆,为了便于对网络地址的管理和分配,人们采用了域名系统,引入了域名的概念。本章主要介绍DNS的基本概念,DNS域名解析的原理,在理解的基础上安装配置DNS服务器。


本章重点

  1. 理解DNS域名解析的原理和模式
  2. 安装DNS服务器
  3. 掌握转发器的配置方法

一.DNS概述

1.DNS的诞生


在早期的TCP/IP网络中,名称解析通常由一台计算机负责,它维护了一份主机名称与IP地址对应的清单(Hosts文件),当网络中主机间通信时,源主机会通过查询Hosts文件,将目的主机的主机名解析成P地址,以便进行通信,这种方法虽然简单,但是随着主机数目的增多,会产生以下问题。


主机名称重复,Hosts文件是平面结构,主机多了容易重名。

主机维护困难,在一个平面结构的文件中维护所有的主机记录,这样文件会很大,而且当主机记录增加或更新时很难维护。

c8b79ece520c41e5bcb76e1d22e7db9f.png


为了解决以上问题,早期的网络应用人员计划将巨大的信息量按层次结构规划成许多较小的部分,将每部分存储在不同的计算机上,形成层次性,分布式的特点。


这样,一方面实现了信息的统一:另一方面信息数据的分布面变广,不会形成瓶颈,有利于提高访问效率,于是DNS(Domain Name System.域名系统)应运而生。


6a52ad5bee684ed8b64698d1d34de719.png


二.DNS的功能

DNS最初的设计目标是“用具有层次名称空间.分布式管理、扩展的数据类型,无限制的数据库容量和具有可以接收性能的,轻型、快捷,分布的数据库取代笨重的集中管理的Hosts文件系统”。


DNS是一组协议和服务,它允许用户在查找网络资源时使用层次化的对用户友好的名称取代IP地址,简单地讲,DNS协议的基本功能是在主机名与对应的P地址之间建立映射管理。例如,新浪网站的IP地址是202.106.184.200.几乎所有的浏览该网站的用户都使用www.sina.com.cn.而并非使用IP地址来访问。


594681bb8f8148bda01d77789ec91bb0.png


使用域名访问具有以下优点

与直接使用IP地址相比,使用主机名(域名)访问具有以下优点


主机名便于记忆。

数字形式的P地址可能会由于各种原因而改变,而主机名可以保持不变。

举例:

当需要给某人打电话时,你可能知道这个人的名字,而不知道他的电话号码。这时可以通过查看电话号码簿查他的电话号码,从而与他进行通话。由此可以看出,电话号码簿的功能便是建立姓名与电话号码之间的映射关系.而DNS的功能与电话号码簿很类似。


73f53ba0801f425990006dd62a06b9d4.png


三.DNS的组成

组成DNS系统的核心是DNS服务器,它是提供域名查询服务的计算机.用来维护DNS名称数据并处理DNS客户端主机名的查询。DNS服务器保存了包含主机名和相应P地址的数据库。


ef582b119acb4e469f28838608d526ae.png


DNS是一种看起来与磁盘文件系统的目录结构类似的命名方案,域名通过使用句点"."分隔每个分支来标识一个域在逻辑DNS层次中相对于其父域的位置。


但是当定位一个文件位置时是从根目录到子目录再到文件名.如C:\WiNDOWS\explorer.exe;


而当定位一个主机名时.是从主机名到父域再到根域,如news.sine.com.cn


b58d0b4dc8b243b3b86287ca0cae7a5a.png


在DNS中,域名包括根域,顶级域.二级域和主机名。


35ebf35b98f44b818325905e4baf0182.png



三级域名下面还可以有四级城名、五级域名等。但是域名层级用得越多,域名越复杂,所以实际使用中一般不会超过五级。


1.根域

根(Root)域就是“.”(点号),它由hternet名称注册授权机构管理,该机构把域名空间各部分的管理责任分配给了连接到lnternet的各个组织。


2.顶级域

DNS根域的下一级是顶级域,由lnternet名称授权机构管理,有两种常见类型。


①组织域

组织域采用三个字符的代号,标识DNS域中所包含的组织主要功能或活动,如表2-1所示。

c48e320d42734dca8e8c241f2cd9d694.png


②国家或地区顶级域

国家或地区顶级域采用两个字符的国家或地区代号,如表2-2所示。

6ecbfdb1498f4b628262f9a3e90fcb4c.png



3.二级域名

二级域是注册到个人.组织或公司的名称。


这些名称基于相应的顶级域,如google.com”.就是基于顶级域”.com”.

二级域下可以包括主机和子域,如“google.com”可包含子域“mail.google.com”这样的主机,

也可以包含如“news.google.com”这样的子域,

而该子域还可以包含如“printer.news.google.com”这样的主机.

5e03c5c8e1494fc28abb0065755d9979.png

3.主机名

主机名处于城名空间结构中的最底层,主机名和前面讲的城名(DNS扩展名)


结合成FODN(Full Qualified Dornain Name,完全合格域名/全称城名).

主机名是FODN最左端的部分.如"aaa.bbb.com”,

其中的“asa”是主机名,“bbb.com”称为DNS扩展名。

用户在访问网络上面的Web.FTP.Mail等服务时.通常使用FODN进行访问.如www.google.com.

但是FODN并不能真正定位目标服务器的物理地址,而是需要DNS服务器将FODN解析成P地址。FODN是指一个系统的完整名称而非其主机名称。


四.DNS的区域

DNS的区域(Zone),是指域名空间树型结构的一部分,它能够将域名空间根据用户需要划分为较小的区域,而非域(Domain),以便于管理,一个区域内的主机数据(包括主机名和对应的IP地址)必须存放在DNS服务器内。而用来存放这些数据的文件称为区域文件,一台DNS服务器内可以存放多个区域文件,同一个区域文件也可以存放到多合DNS服务器中。


1.DNS域划分为多个区域

为了将网络管理的工作分散开来,可以将一个DNS域划分为多个区域。


将域abc.com划分为区域1和区域2.其中区域1包含子域product.abc.com,区域2包含子域abc.com和address.abc.com。

每个区域都存在一个区域文件,区域1的文件包含域内所有主机(dep1到dep30)的数据;而区域2的文件包含域内所有主机(abc1到abc20和add1到add40)的所有数据。

两个区域文件可以存放在同一个DNS服务器中,也可以分别放在不同的DNS服务器中。

c1f689f13ede497f81fb8505b8fdbb39.png


一个区域所包含的范围在一个域名称空间中是连续的,否则无法构成一个区域,如图2.2所示的区域中,不能创建包含prodoct,abc.com和address.abc.com两个子城的区域,因为这两个子域位

于不连续的名称空间。


五.DNS服务器的分类


DNS 服务器是整个DNS的核心,DNS服务器严格地讲应该是DNS名称服务器它保存着域名称空间中部分区域的数据。当一个DNS服务器中存放域名称空间内的一个或多个区域的数据时,就将这合DNS服务器称为授权名称服务器(Authoritative Name Server),授权名称服务器负责维护和管理所辖区域中的数据,为DNS客户端提供数据查询,根据工作方式的不同,授权名称服务器可分为主要名称服务器,辅助名称服务器,主控名称服务器和Cache-Only名称服务器。


0fd51c239ebd434eb931b84fc9381ab0.png


1.主要名称服务器


主要名称服务器是用于存放该区域中相关设置的DNS服务器,当在一合DNS服务器上建立一个

区域文件时,有关该新建区域内的主机数据都直接存放到该DNS服务器中。主要名称服务器存放的是区域文件的正本数据。


2.辅助域名服务器

当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的。


在一个区域中设置辅助名称服务器具有以下优点


当一台DNS服务器发生故障时,由辅助名称服务器提供服务。

分担主要名称服务器的负担。

加快查询速度,例如,一个公司分别位于相对较远的两个地方,这时可以在其中一处设置一台辅助名称服务器,当地的DNS客户端直接从本地的辅助名称服务器进行查询即可。

3.主控名称服务器


主控名称服务器(Master Narme Server)是指提供区域数据复制的DNS.服务器,它既可以是该区

城内的主要名称服务器,也可以是该区域内的辅助名称服务器。


例如:当一合辅助名称服务器从一台主要名称服务器中复制数据时,将提供数据复制服务器的这台主要名称服务器称为辅助名称服务器的主控名称服务器。


4.Cache-Only名称服务器


Cache-Only名称服务器只负责查询数据,并将曾经查询到的数据保存在高速缓存中,当下一次

DNS客户端查询数据时,如果高速缓存内存在该数据。则它可以快速地将数据提供给客户端。


Cache-Only名称服务器不负责管辖域名称空间内的任何DNS服务器,不创建任何区域、它只帮

助DNS客户端向其他的DNS服务器进行查询,再将查询到的数据存储一份到高速缓存中,响应DNS客户端的查询请求。


Cache-Only名称服务器不但可以分担网络的工作量,而且可以让DNS客户端直接快速地进行查询。


六.DNS的查询过程及相关知识

1.DNS的查询过程


下面通过查询www.banet.com的例子来学习DNS的查询过程。具体步骤如图2.3所示.


b253b65d485f4ce1a25e3d43e966f762.png


客户机将查询www.benet.com的信息传递到自己的首选DNS服务器。

DNS客户机的首选DNS服务器检查区域数据库,由于此服务器没有benet.com域的授权记录,因此它将查询信息传递到根域DNS 服务器,请求解析主机名称。

根域DNS服务器把负责解析“com”顶级域的DNS服务器的IP地址返回给DNS客户机的首选DNS 服务器。

首选DNS服务器将请求发送给负责“com”域的DNS服务器。

负责“com”域的服务器根据请求将负责“benet.com”域的DNS服务器的IP地址返回给首选 DNS 服务器。

首选DNS服务器向负责“benet.com”区域的DNS服务器发送请求。

由于此服务器具有www.benet.com的记录,因此它将www.benet.com的P地址返回给首选 DNS服务器。

客户机的首选DNS服务器将www.benet.com的IP地址发送给客户机。

域名解析成功后,客户机将http请求发送给Web服务器。

Web服务器响应客户机的访问请求,客户机便可以访问目标主机。

如果DNS客户机的首选DNS服务器没有返回给客户机wwww.benet.com的IP地址,那么客户机将尝试访问自己的备用DNS服务器。


为了提高解析效率,减少查询开销,每个DNS服务器都有一个高速缓存,存放最近解析过的域名和对应的P地址.这样,当有用户查找相同的域名记录时,便可以跳过某些查找过程,由DNS服务器直接从缓存中查找到该记录的地址,从而大大缩短了查找时间,加快了查询速度。


4149e2aa24dd4961b02a881d7ab949e8.png



2.DNS的查询方式


当DNS客户端向DNS服务器查询IP地址,或DNS服务器向另一台DNS服务器查询IP地址时,DNS的查询过程分为两种类型:递归查询和迭代查询。


1)递归查询


当DNS客户端按照它的DNS服务器列表向DNS 服务器发出查询请求时,接收查询请求的DNS服务器和客户端之间的查询关系一般都是递归查询,该DNS服务器会查询自己的区城文件、缓存。如果没有找到结果,就向别的DNS服务器查询,递归查询时客户端得到的结果只能是成功或失效。接收查询的DNS服务器必须告诉客户端请求查询的P地址或告诉客户端找不到请求的地址和找不到的原因(查询超时或通到错误)DNS客户端和它的首选DNS服务器之间就是递归查询。


68a25244349d45a9b70e68bfedb8605f.png


不是所有的查询都是递归查询,在使用转发器时出现的是递归查询,否则将进行选代查询。


2)迭代查询


迭代查询又称为简单查询,是指DNS服务器根据自己的高速缓存或区域的数据,以最佳结果作

答,如果DNS服务器无法解析,它可能返回一个指针,指针指向可能有目标域名记录的DNS服务器。继续该过程,直到找到拥有记录的DNS服务器,或直到查询出错或超时为止,在图2.3中,步骤 2一步骤 5 就属于迭代查询。


cd2fabc4db6f4152976b2ba00f650494.png


因为递归查询比较占用系统资源,有安全方面的隐患,所以可以设置DNS服务器不接收递归查询。这时该服务器将向转发器中的DNS服务器发送递归查询请求。如果没有设置转发器,该服务器将向根提示中的根服务器发送选代查询的请求。(转发器和根提示将在2.3节中讲解)


DNS服务器的域名查询根据查询内容可以分为两种形式:正向查询和反向查询。


正向查询是由域名查找P地址。

反向查询是由P地址查找域名。

反向查询要求对每个域名进行详细搜索,这需要花费很长时间,为了解决该问题,DNS标准定义了一个名为“in-addr.arpa”的特殊域(反向域),“in-addr.arpa”域遵循域名空间的层次命名方案它是基于IP地址的,而不是基于域名的,其中P地址8位组的顺序是反向的。例如,客户机要查找172.168.10.1的FQDN.就查询反向域10,168.172.in-addr.arpa中的PTR指针记录。


目录
相关文章
|
1月前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
26 2
基于bind软件部署DNS服务器
|
1月前
|
网络安全 虚拟化 Windows
windows 11安装openSSH server 遇到的"kex_exchange_identification: read: Connection reset"问题
windows 11安装openSSH server 遇到的"kex_exchange_identification: read: Connection reset"问题
|
2月前
|
开发者 图形学 iOS开发
掌握Unity的跨平台部署与发布秘籍,让你的游戏作品在多个平台上大放异彩——从基础设置到高级优化,深入解析一站式游戏开发解决方案的每一个细节,带你领略高效发布流程的魅力所在
【8月更文挑战第31天】跨平台游戏开发是当今游戏产业的热点,尤其在移动设备普及的背景下更为重要。作为领先的游戏开发引擎,Unity以其卓越的跨平台支持能力脱颖而出,能够将游戏轻松部署至iOS、Android、PC、Mac、Web及游戏主机等多个平台。本文通过杂文形式探讨Unity在各平台的部署与发布策略,并提供具体实例,涵盖项目设置、性能优化、打包流程及发布前准备等关键环节,助力开发者充分利用Unity的强大功能,实现多平台游戏开发。
55 0
|
2月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
98 0
|
2月前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
36 0
|
2月前
|
API C# Shell
WPF与Windows Shell完美融合:深入解析文件系统操作技巧——从基本文件管理到高级Shell功能调用,全面掌握WPF中的文件处理艺术
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的关键组件,用于构建 Windows 桌面应用程序。WPF 提供了丰富的功能来创建美观且功能强大的用户界面。本文通过问题解答的形式,探讨了如何在 WPF 应用中集成 Windows Shell 功能,并通过具体示例代码展示了文件系统的操作方法,包括列出目录下的所有文件、创建和删除文件、移动和复制文件以及打开文件夹或文件等。
46 0
|
2月前
|
数据库 Windows
超详细步骤解析:从零开始,手把手教你使用 Visual Studio 打造你的第一个 Windows Forms 应用程序,菜鸟也能轻松上手的编程入门指南来了!
【8月更文挑战第31天】创建你的第一个Windows Forms (WinForms) 应用程序是一个激动人心的过程,尤其适合编程新手。本指南将带你逐步完成一个简单WinForms 应用的开发。首先,在Visual Studio 中创建一个“Windows Forms App (.NET)”项目,命名为“我的第一个WinForms 应用”。接着,在空白窗体中添加一个按钮和一个标签控件,并设置按钮文本为“点击我”。然后,为按钮添加点击事件处理程序`button1_Click`,实现点击按钮后更新标签文本为“你好,你刚刚点击了按钮!”。
105 0
|
2月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
38 0
|
2月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
40 0
|
2月前
|
数据库连接 Apache Java
【独家揭秘】图书管理系统的奇幻之旅:一文看透Apache Wicket如何从想法萌芽到服务器上翩翩起舞?
【8月更文挑战第31天】本文通过实战案例,详细介绍从概念到部署的Apache Wicket应用开发全流程。以在线图书管理系统为例,涵盖应用概念定义、项目创建、架构设计、首页编写、数据库交互及应用部署等关键步骤。通过Maven或Gradle引入Wicket依赖,设计包结构,并使用JPA或Hibernate处理数据持久化。最终,将应用配置并部署到Tomcat或Jetty服务器,帮助你全面掌握Wicket开发技巧。
32 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    无影云桌面