DNS中SRV记录
SRV记录是服务器资源记录的缩写,是DNS服务器的数据库中支持的一种记录服务器提供的服务资源的记录,主要作用是说明一个服务器能够提供什么样的服务。
简单来说,SRV记录了哪台计算机提供了哪个服务这么一个简单的信息。
SRV记录是DNS记录中的新鲜面孔,在RFC2052中才对SRV记录进行了定义,因此很多老版本的DNS服务器并不支持SRV记录。
RFC2782
概述和理由
目前,必须知道服务器的确切地址才能联系它或者广播问题。
SRV RR允许管理员为单个域名使用多个服务器,轻松地将服务从一个主机移动到另一个主机,并将某些主机指定为服务的主服务器,将其他主机指定为备份。
客户端要求特定域名的特定服务/协议(这里使用的词汇"域名"是RFC 1034上严格定义的),并获取任何可用服务器的名称。
请注意,在本文档引用“地址记录”时,它表示A RR,AAAA RR或其最现代的等价物。
RFC定义的格式
RFC2782中定义的格式是:
|
|
各字段详细说明:
字段 | 说明 |
---|---|
Service | 所需服务的符号名称。在Assigned Numbers或本地定义。服务标识符前面加上下划线_ ,以避免与自然界中出现的DNS标签发生冲突。 |
Proto | 所需协议的符号名称。前面加下划线_ ,以防止与自然界中出现的DNS标签发生冲突。 _TCP 和_UDP 目前是该字段最常用的值,但可以使用由Assigned Numbers或本地定义的任何名称。 Proto不区分大小写。 |
Name | 此RR所指的域名。在这个域名下SRV RR是唯一的。(英文原文好像有些语法问题) |
TTL | |
Class | |
Priority | |
Weight | |
Port | 服务在目标主机上的端口。所需协议的符号名称,前面加下划线(_),以防止与自然界中出现的DNS标签发生冲突。 _TCP和_UDP目前是该字段最有用的值,但可以使用由Assigned Numbers定义的任何名称或本地的(如Service)。 Proto不区分大小写。范围是0-65535。 这是网络字节顺序中的16位无符号整数。 通常在Assigned Numbers中指定,但不一定如此。 |
Target | 目标主机的域名。 域名必须有一个或多个地址记录,域名绝不能是别名。敦促(但不强求)实现在附加数据部分中返回地址记录。除非并且直到将来的标准操作允许,否则名称压缩不能用于此字段。值为“.” 表示该域名明确无法提供该服务。 |
SRV记录和微软的关系
SRV记录在微软的Active Directory中有着重要地位,大家知道在NT4时代域和DNS并没有太多关系。但从Win2000开始,域就离不开DNS的帮助了,为什么呢?因为域内的计算机要依赖DNS的SRV记录来定位域控制器!微软的即时通讯服务器Live Communications Server也可以依靠SRV记录定位即时通讯服务器。
SRV 记录一般是为Microsoft的活动目录设置时的应用。DNS可以独立于活动目录,但是活动目录必须有DNS的帮助才能工作。为了活动目录能够正常的工作,DNS服务器必须支持服务定位(SRV)资源记录,资源记录把服务名字映射为提供服务的服务器名字。活动目录客户和域控制器使用SRV资源记录决定域控制器的IP地址。
鉴于SRV记录可以定位特定服务器的位置,我们可以预计,在微软将来的服务器产品中SRV记录将发挥越来越多的作用。