域名解析详解

域名解析系统——DNS 服务器大型专题引用:DNS (英文单词的全称是:Domain Name System,域名系统), DNS是因特网的一项核心服务, 它作为可以将域名和IP 地址相互映射的一个分

域名解析系统——DNS 服务器大型专题

引用:

DNS (英文单词的全称是:Domain Name System,域名系统), DNS是因特网的一项核心服务, 它作为可以将域名和IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP 数串。

引用:

DNS 原理

· WINS 服务器和DNS 服务器有什么区别? (1楼)

· 新手入门——了解DNS 服务基本原理 (2楼)

· 来龙去脉分析 深入研究DNS 原理(图) (3楼)

· 应用层DNS :域名系统 (4楼)

· 微软的AD 与非动态DNS(图) (5楼)

· 问答之间:六个问答解除DNS 疑惑 (6楼)

· DNS 服务器工作原理 (7楼)

DNS 安装

· Windows Server 2003 DNS服务安装篇(图) (8楼)

· 图文并茂一步步教你配置DNS 服务 (9楼)

· 分离的DNS 服务及其部署(组图) (10楼)

· Windows Server 2003下DNS 架设攻略 (11楼)

· 详细讲解如何谨慎架设DNS 服务器 (12楼)

· 个人服务器之Win2000 DNS服务器的设置 (13楼)

· DNS 专题---Windows 客户端的配置和解析 (14楼)

DNS 应用

· 针对中小企业的AD 域控与DNS 建设方案(图) (15楼)

· 妙用DNS 解析实现防火墙客户的重定向(图) (16楼)

· Windows 服务器宝典一式NS 调教技巧(图) (17楼)

· 微软交流:关于DNS 的不完全总结 (18楼)

· 资深网管教你如何操作DNS 最安全(图) (19楼)

· Windows 2000 Server DNS维护一点通 (20楼)

· Win2000动态DNS 的安全应用策略 (21楼)

· Windows 2003上网配置DNS 的技巧 (22楼)

· Win 2k“秘密武器”之DNS 工具(一) (23楼)

· 一步步从Win2k DNS 移植到 Linux 下 (24楼)

· 在Win 2003中为Web 站点配置DNS 记录 (25楼)

· 在Win 2003中为DNS 配置Internet 访问 (26楼)

DNS 故障

· 网管经验之Windows 服务器DNS 故障问题 (27楼)

· [服务器维护经验谈]DNS巧解网络故障 (28楼)

· 怎样减少丢包对DNS 服务器的影响? (29楼)

· 解答:巧设DNS 提高系统登录速度 (30楼)

,

· 详细讲解如何进行DNS 故障排除 (31楼)

· 主要省份城市的DNS 服务器地址 (32楼)

· DNS 专题---诊断工具和实用程序 (33楼)

WINS 服务器和DNS 服务器有什么区别?

对于许多人来说,WINS 服务器和DNS 服务器之间的关系还是一件神秘的事情。不过,我们希望用你的问题澄清这个事情。

首先,DNS 指的是“域名服务器”,而WINS 指的是“Windows 互联网名称服务”。两者都是用来解析域名的,但是,使用的方法完全不同!

为了帮助说明这个问题,我准备使用一个例子,保证让你正确地了解这两种服务的情况。

考虑一个名为“Jupiter ”的文件服务器和下面两个指令:

Ping Jupiter.space.net

Net use * jupiter mainshare

上面两个指令看起来很相似。第一个指令是向我们的文件服务器发送一个ping (icmp echo) 数据包,确认这个服务器在工作。而第二个指令呼叫同一台服务器(jupiter),以便连接到一个名为“mainshare ”的共享文件夹。

虽然这两个指令都指向同一台服务器(Jupiter),但是,它们之间的区别是很重要的。

这里的“Ping ”使用DNS 把Jupiter.space.net 解析为一个IP 地址,如204.45.12.1。而“net use”指令使用WINS 把NetBIOS 名称“Jupiter ”解析为一个IP 地址。

这样,你也许会感到疑惑,为什么有两种不同的服务实际上在完成同一个任务?

这个问题的答案是,这两种服务的每一种服务都依靠不同的协议。他们只是以不同的方式工作。

WINS 是微软网络拓扑的一个重要的组成部分。在过去,你需要在Windows 网络中运行一个WINS 服务器以避免域名解析的问题。当时的这种NetBIOS(Windows机器名称) 协议只能在NetBEUI 传输协议上工作。如果你曾经使用过Windows 95,你会记得NetBEUI 协议经常出现在你的网络属性中。在网络属性中,TCP/IP协议也是一个选项。

目前,DNS 取代了WINS 。由于微软对NetBIOS 做了修改,允许它使用TCP/IP堆栈

,

完成其工作(TCP/IP协议上的NetBIOS) ,大多数DNS 服务器都能够处理NetBIOS 的请求。这就是WINS 服务器变得越来越少的原因。

简言之,DNS 把TCP/IP主机名称映射为IP 地址,WINS 把NetBIOS 主机名称映射为IP 地址。

新手入门——了解DNS 服务基本原理

我们已经知道,既可以使用主机名标识一台主帆,也可以使用IP 地址标识。人们更愿意使用便于记忆的主机名标识符,而路由器则只愿使用长度固定并有层次结构的IP 地址。

我们可以通过多种方法来识别一个人。例如,通过出生证明上的姓名,还可以通过社会安全编号、通过驾驶执照编号。尽管这些标识都可以用来识别人,但是在某种背景下会有一种标识比其他的标识更加恰当。例如,IRS(美国的一个税收机构) 中的计算机喜欢使用固定长度的社会安全编号而不是出生证上的姓名来标注。另——方面,日常生活中人们喜欢用更好记的出生证上的姓名而不是社会安全编号〔确实,你能想象出如果一个人说“嗨,我的名字是132—67—9875,请找一下我丈夫,178—87—1146”会是何等滑稽的场景) 。

因特网中的主机就像人一样能以多种力式标识。标识方法之一是使用主机名(hostname)。主机名(例如cnn.com , )

是助记性的,人们更愿意使用。然而主机名几乎没有提供关于主机在因特网中的位置信息(主机名为sina.com.cn 的主机也许是在中国境内,此外不再有别的位置信息了) 。另外,主机名是由可变长度的字母数字字符构成的,路由器处理起来有困难。因此因特网中的主机也使用所谓的IP 地址标识。我们将在以后深入讨论IP 地址,这里只简单地说明一下。IP 地址由4个字节构成,具有严格的层次结构。IP 地址一般以点分十进制数格式表示,也就是说所有4个字节都以0—255之间的十进制数表示,各个字节之间以点号分隔,例如121.7.106.83。IP 地址具有层次结构,当从左到右扫描某个地址时,我们得到关于其主机在因特网中所在位置的越来越明确的信息。这就像从下到上扫描某个邮政地址时,我们得到关于住宅所在位置的越来越明确的信息一样。

DNS 提供的服务

我们已经知道,既可以使用主机名标识一台主帆,也可以使用IP 地址标识。人们更愿意使用便于记忆的主机名标识符,而路由器则只愿使用长度固定民有层次结构的IP 地址。为调解这两种不同的偏好,我们需要一个把主机名转换成IP 地址的目录服务。这就是因特网的域名系统(Domain Name System,DNS) 的主要任务。DNS 既是一个在由名称服务器主机构成的层次结构中实现的分布式数据库,又是一个允许客户主机和名称服务器主机通信以使用域名转换服务的应用层协议。名称服务器主

,

机通常是运行Berkeley Internet Name Domain(简称BIND) 软件的UNIX 主机。DNS 协议运行在UDP 之上,使用端口号53。

其他应用层协议(例如HTTP ,SMTP,FTP) 普遍使用DNS 把由用户提供的主机名转换成IP 地址。作为例子,我们考虑某个用户使用运行在本地主机上的一个浏览器(也就是HTTP 客户) 请求

时会发生什么。为了把HTTP 请求消息发送到名为

的web 服务器主机,浏览器必须获悉这台主机的IP 地址。我们知道,差不多每台主机都运行着DNS 应用的客户端。浏览器从URL 中抽取出主机名后把它传递给本地主机上的DNS 应用客户端。DNS 客户于是向某个DNS 服务器发出一个包含该主机名的DNS 查询消息。DNS 客户最终收到一个包含与该主机名对应的IP 地址的应答消息。浏览器接着打开一个到位于该IP 地址的HTTP 服务器的TCP 连接。从这个例子中可以看出,DNS 给使用它的因特网应用引入了额外延迟(有时还相当大) 。所幸的是,正如我们即将讨论的那样. 预期的主机名—IP 地址对应关系往往高速缓存在就近的DNS 名称服务器主机中,从而帮助降低了DNS 访问延迟和DNS 网络流量。

除了从主机名到IP 地址的转换,DNS 还提供其他一些重要的服务:●主机别名(hody aliasing)。具有复杂主机名的主机还可以有一个或多个别名。例如,

主机名为relay1.west-coast.enterprise.com 的主机有两个别名:enterprise.com和

。这种情况下,主机名relay1.west-coast.enterprise.com 特称为正规主机名(canonical hostname) ,另外两个主机名则是别名主机名(alias hostname)。

别名主机名往往比正规主机名更便于记忆。应用可以调用DNS 获取所给定别名主机名的正规主机名和IP 地址。

●邮件服务器别名(mall server aliasing)。电子邮件地址显然要求便于记忆。例如,如果Bob 有一个hotmail 账号,那么他的电子邮件地址可能是简单的

。然而hotmail 邮件服务器的主机名要比hotmail.com 复杂且不易记住。电子邮件应用可以调用DNS 获取所给定别名主机名的正规主机名和IP 地址。事实上,DNS 允许一个公司的邮件服务器和Web 服务器使用相同的别名主机名。例如,某个公司的web 服务器和邮件服务器可以都称为enterprise.com 。

●负载分担(load distribution)。DNS 还越来越多地用于执行在多个复制成的服务器(例如复制成的Web 服务器) 之间的负载分担。像cnn.com 那样的繁忙站点往往把Web 服务器复制成多个,每个服务器运行在不向的端系统上,具有不同的IP 地址。对于复制成的多个Web 服务器,与其单个正规主机名相关联的是一组IP 地址。DNS 数据库中保存着这组IP 地址。客户发出针对映射到一组IP 地址的某个主机名的DNS

,

查询后,服务器响应以整组IP 地址,不过每次响应的地址顺序是轮转的。既然访问web 站点时,浏览器一般把HTTP 请求消息发送给内DNS 客户否询到的一组IP 地址中的第一个,DNS 轮转于是把web 站点的访问负载分担在所有复制成的服务器上。电子邮件应用也可以使用DNS 轮转,这样多个邮件服务器可以有相同的别名。近来,有些公司已经以更为复杂的方式使用DNS 提供web 内容分发服务。

DNS 在RFC 1034和RFC 1035中有详细说明,并在另外若干个RFC 中作了更新。DNS 是一个复杂的系统,我们只在这儿讨论其操作的关键方面。感兴趣朗读者可以参见协议文档。

来龙去脉分析 深入研究DNS 原理(图)

计算机在网络上进行通讯时只能识别如“201.51.0.73”之类的IP 地址,而不能认识域名. 但是,当打开浏览器,在地址栏中输入域名后,就能看到所需要的页面,这是因为有一个叫“DNS 服务器”的计算机自动把我们的域名“翻译”成了相应的IP 地址,然后调出IP 地址所对应的网页。

什么是DNS

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它主要是用来通过用户亲切而友好的名称代替枯燥而难记的IP 地址以定位相应的计算机和相应服务。因此,要想让亲切而友好的名称能被网络所认识,则需要在名称和IP 地址之间有一位“翻译官”,它能将相关的域名翻译成网络能接受的相应IP 地址。DNS 就是这样的一位“翻译官”,它的工作原理可用图1来表示。

图1

如何建立DNS

在校园网内部使用DNS ,可以建立内部的DNS 服务,使我们的校园网络的应用更加具有人性化。

1、欲实现的目标

某学校由于工作的需要,想配置一名为sjsgz.net 的域,如图2所示。

,

图2

在这个域中,为了使用户在浏览器地址栏中键入相应的主机名就会找到相应的服务,为此,需要设置相应的DNS 服务器。

2、DNS 服务的安装

我们从guanli.sjsgz.net 开始,准备在这台计算机上安装DNS 服务器服务。安装DNS 的步骤如下:

(1)选“开始→设置→控制面板”,打开“添加/删除程序”。

(2)单击“添加/删除Windows 组件”,等待Windows 组件向导启动。

(3)单击[下一步]按钮弹出Windows 组件清单。

(4)单击[网络服务],然后再单击[详细情况]按钮。

(5)单击“DNS(域名系统) ”旁的复选框。

(6)单击[确定]按钮返回“Windows 组件”对话框。

(7)单击[下一步]安装相应的服务,然后逐一单击[完成]和[关闭]按钮即可完成。

不需要重新启动计算机,单击“开始→程序→管理工具→DNS ”,出现如图3所示的窗口,此时可以在左边的窗口中看到代表你的服务器的图标(guanli)。

3、创建“sjsgz.net ”区域

(1)用鼠标单击图3中“guanli ”旁边的“ ”号,然后用鼠标右键单击“guanli ”,选“新建区域”以进入新建区域向导中。

(2)当向导提示到要让选择“区域类型”时,此处应该选“标准主要区域”,而在“正向或反向搜索区域中”应选“正向搜索区域”,单击“正向搜索区域”旁边的“ ”号,用鼠标右键单击“正向搜索区域”,单击[下一步]按钮。

(3)屏幕出现询问“区域名”,则在“名称”后的文字框中输入“sjsgz.net ”,接着向导进入到“区域文件”提示窗口中,默认的,系统会自动选中“创建新文件,文件名为”一项,并在其后的文字框中自动填有“sjsgz.net.dns ”的名字(如图4所示) ,单击[下一步]按钮,然后单击[完成]即可完成区域创建,此时在DNS 管理器的左边的“guanli →正向搜索区域”里可以看到“sjsgz.net ”区域(如图3所示) 。

,

图3

注意:创建正向搜索区域的目的是为了将主机名翻译为IP 地址,你也可以创建反向搜索区域,便于将IP 地址翻译成相应的主机名,创建方法和正向搜索区域的创建相似。

4、创建主机

下面我们将以创建图2中Web 服务器( )

主机为例说明如何创建主机。

(1)在图3所示窗口中的“sjsgz.net ”区域上单击右键,选“新建主机”,在其后的对话框中的“名称”栏中输入主机名“www ”,在“IP 地址”栏输入“10.88.56.2”。

(2)单击[添加主机]按钮,即成功地创建了主机地址记录

,在“新建主机”窗口再选“完成”便可回到DNS 管理器中。

(3)上述记录建好以后,就可以在DNS 管理器中看到相关的DNS 映射记录表(如图4所示) ,这样,就在“

”与“10.88.56.2”之间建立了映射关系。

图4

5、测试配置

DNS 服务器配置完以后,如何检测它是否配置正确呢? 可以用一个称作“Nslookup ”的诊断程序来进行检测。下面我们就用这个命令对“guanli.sjsgz.net ”DNS 服务器进行测试。

(1)在命令提示符下输入:Nslookup,启动该程序。此时系统会响应它当前翻译名字所使用的DNS 服务器的IP 地址。

(2)然后在命令提示符下输入:ls - d sjsgz.net。这个命令的功能是让DNS 服务器列

,

出它所知道的有关sjsgz.net 的每一条信息。

(3)在命令提示符下输入:Exit,即可退出Nslookup 命令。

注意:在安装“DNS 服务器”之前,必须用静态的IP 地址配置计算机。

在校园网中安装、配置DNS 服务器的目的是为了更好地应用网络为教育教学服务、更好地提供一个具有人性化的应用环境。但是有一点需要注意的是,为了配置DNS 的动态更新功能,必须配置DNS 和DHCP 服务器。

应用层DNS :域名系统(DNS :Domain Name Systems)

DNS :域名系统(DNS :Domain Name Systems)

域名系统协议(DNS )是一种分布式网络目录服务,主要用来把主机名转换为 IP 网络地址,并控制因特网的电子邮件的发送。大多数因特網服务器依赖于 DNS 而工作,一旦 DNS 出错,就无法下载 Web 站点并且中止电子邮件的发送。

DNS 有两个主要方面:

详述域名语法和规范,以授予域名权限。基本语法是:local.group.site ; 详述分布式计算机系统的实现,将域名转换成地址。

DNS 命名格式中,域名空间的授权以及域名与地址的转换采用的都是分层和分布式结构,一些授权的机构可以各自转换其权限以内的名字和 IP 地址。DNS 的命名是为全球性的网络设备分配名字,由分布式名字服务器组实施。

理论上,DNS 协议中的域名标准阐述了一种任意标签值的分布式抽象域名空间。任何组织都可以建立域系统,为所有分布结构选择标签,但大多数 DNS 协议用户遵循用于因特网系统慣用域名系统。常见的顶级域是:COM 、EDU 、GOV 、NET 、ORG 、BIZ ,另外还有一些带国家代码的顶级域。

分布式 DNS 模式支持有效且可靠的名字与 IP 地址转换。多数名字可以在本地转换,合作式多站点服务器组能够解决大网络的名字与 IP 地址的转换问题。单个机器的故障不会阻止 DNS 的正确操作,DNS 是基本目标协议,并不受网络设备名限制。

协议结构

ID – 用于连接查询和答复的16bit 。

Q – 识别查询和答复消息的1位字段。

Query – 描述消息类型的4位字段:

0 标准查询(由姓名到地址);

,

1 逆向查询;

2 服务状态请求

A – 命令回答:1位字段。当设置为1时,识别由命令名字服务器作出的答复。 T – 切断。1位字段。当设置为1,表明消息已被切断。

R – 1位字段。由名字服务器设置为1请求递归服务。

V –1位字段。由名字服务器设置表示递归服务的实用性。

B –3位字段。备用,必须设置为0。

Rcode – 响应代码,由名字服务器设置的4位字段用以识别查询状态。 Question count – 16位字段用以定义问题部分的登陆号。

Answer count – 16位字段,用以定义回答部分的资源记录号。

Authority count – 16位字段,用以定义命令部分名字服务器的资源记录号。 Additional count – 16位字段,用以定义附加记录部分的资源记录号。

微软的AD 与非动态DNS(图)

微软的AD 对DNS 的要求可以总结为以下3点:(有点儿絮叨)

a 、在DNS 名字空间中支持下划线,因为在AD 中有些重要的子域需要在其名字中使用下划线。这一点在教程中没提。

b 、支持SRV 记录,不用说为什么了。

c 、动态DNS (也可以使用不支持动态DNS ,后面就有讲解)

有的时候我们也可以采用一些其他公司的DNS 产品来代替2000/2003的动态DNS 服务。如支持SRV 记录(RFC2782)和动态更新(RFC2136)的Linux 系统上运行的BIND ,或者Lucent 公司的QIP DNS/DHCP系统。(后者没用过,不知道是个什么样儿,只在其他书籍中提过)但有的时候动态的DNS 在某中情况中会给我们带来一些安全的隐患。AD 与非动态DNS 的结合实际上也是可行的。例如在以下文字中如果DNS 支持SRV 和下划线,但不支持动态DNS ,仍然可以使用一个名字为Netlogon.dns 的文件来实现AD 。

每台支持DDNS 功能的计算机都会在DDNS 中亲自写入一条自己的A 记录。但是AD 实际上需要依靠所有这些SRV 记录,并且他们是由Netlogon 服务写入区域文件的。每当重新启动一台DC 或者重新启动Netlogon 服务、或者过了一段时间没有更新的时候,Netlogon 服务会与主DNS 服务器联系,并注册自己的SRV 记录。但DC 上的Netlogon 服务还做了其他的事情,它可以把这些SRV 记录写入一个名为Netlogon.dns 的ASCII 文本文件。该文件存储在WindowsSystem32Config中———进入任何一台DC ,使用记事本可以查看该文件中有大量的SRV 记录。

如下图

,

利用以上的说明就可以利用一台不支持动态升级的DNS 实现支持AD 。

a 、首先在DNS 服务器上(不支持动态升级,如NT4.0)建立一个区域jzlld.vicp.net 作为主要区域。将这个区域文件命名为jzlld.vicp.net.dns 。

b 、为jzlld.vicp.net 域中的每台DC 输入A 记录。

c 、进入jzlld.vicp.net 域中的每台DC ,然后启动它的Netlogon 服务。

d 、把该DC 上的WindowsSyytem32ConfigNetlogon.dns文件放到一张软盘或者网络上。

e 、取得所有DC 的Netlogon.dns 文件后,在jzlld.vicp.net 的主DNS 服务器上把它们合并成一个大ASCII 文件。

f 、在这台DNS 服务器上,停止DNS 服务。

g 、在SystemFilesSystem32DNS中,用notepad 打开文件jzlld.vicp.net.dns 。、

h 、在额外的行中添加你把所有的Netlogon.dsn 记录项合并成jzlld.vicp.net.dns 这个文件时收集的SRV 记录。

i 、保存这个文件。

j 、重新启动DNS 服务。

这台不支持动态工薪的DNS 服务器以及它的任何辅助服务器现在可以支持AD 了:)

缺点:

a 、收集所有DC 的Netlogon.dns 文件需要做大量的工作。

b 、并不具有很好的动态性,如果删除DC 或DC 脱机都需要手工删除DNS 上的的Netlogon.dns 文件中的相应SRV 记录。

问答之间:六个问答解除DNS 疑惑

问:什么是“DNS ”?其中文为何?

标签: