http://blog.163.com/hlz_2599/blog/static/14237847420118201239694/


一直以来加Twitter的机器人及Jaiku的机器人都不能成功,前几天在Twitter上提交了一个HELP,后来他们的工作人员告诉我是由于我的域名没有设置SRV记录而导致他们的服务器无法验证成功。我照着相关的说明依次设置好,等待一会让设置生效,重新加一次Twitter,呼呼,万事大吉。网上关于SRV的资料实在太少了,说实话我也不是很清楚这到底是个什么东西,个人觉得貌似跟域名CNAME类似,但是限制了使用的端口以及协议,下面利用我在网上找到的资料来说明下SRV DNS 记录,大家一起扫扫盲。

SRV 记录是一个域名系统 (DNS) 资源记录,用于标识承载特定服务的计算机。

例子:

_xmpp-server._tcp.ioio.name. IN SRV 5 0 5269 xmpp-server.l.google.com.

项目的含义:
_xmpp-server 服务(Service)的名字
_tcp 所使用的协议(Protocol)类型,比如 “_tcp” 或者 “_udp”
ioio.name SRV所在域的名字(Name)
5 - 优先级(Priority),类似MX记录
0 - 权重(Weight)
5269 - 端口(Port)
xmpp-server.l.google.com - 实际提供服务的主机名(Target )。

要验证域控制器的 SRV 定位器资源记录,可以使用 Nslookup 命令:
Nslookup 是一个命令行工具,它显示的信息可以用来诊断域名系统 (DNS) 的基础结构。
要使用 Nslookup 来验证 SRV 记录,请按照下列步骤操作:

1. 在 DNS 上,单击“开始”,然后单击“运行”。
2. 在“打开”框中,键入 cmd。
3. 键入 nslookup,然后按 Enter。
4. 键入 set type=all,然后按 Enter。
5. 键入 _xmpp-server._tcp.ioio.name,其中 ioio.name 为域名,然后按 Enter。
Nslookup 将返回显示为以下格式的一个或多个 SRV 服务位置记录:

Server:localhost
Address: 127.0.0.1
_xmpp-server._tcp.ioio.name SRV service location:
priority = 5
weight = 0
port = 5269
svr hostname = xmpp-server.l.google.com

参考文献:

什么是SRV记录

 它是DNS服务器的数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单的信息

SRV 记录:一般是为Microsoft的活动目录设置时的应用。DNS可以独立于活动目录,但是活动目录必须有DNS的帮助才能工作。为了活动目录能够正常的工作,DNS服务器必须支持服务定位(SRV)资源记录,资源记录把服务名字映射为提供服务的服务器名字。活动目录客户和域控制器使用SRV资源记录决定域控制器的IP地址。 

   SRV记录功能包括(基于它们在DNS控制台的分组)
‘ _MSDCS。这个分组中,SRV记录是根据它们的状态来收集的。各种状态包括DC、域调用、GC以及PDC。DC和GC按站点来划分,这样一来,AD客户端就能快速的知道去哪里寻找本地服务。“域调用”用于支持复制。每个DC都获得了一个GUID,它会在调用复制时用到。PDC条目包含了被设定为PDC模拟器的DC的SRV记录。
‘ _SITES。站点代表的是一个高速连接区域,根据DC的站点从属关系来建立了DC索引之后,客户端就可以检查_SITES来寻找本地服务,而不必通过WAN来发送它们的LDAP查询请求。标准LDAP查询端口是389,全局编录查询则使用3268。
‘ _TCP。在这个分组中,收集了DNS区域中的所有DC。如果客户端找不到它们特定的站点,或者具有本地SRV记录的任何DC都没有响应,需要寻找网络中其他地方的DC,就应该将这些客户端放到这个分组中。
‘ _UDP。Keberos v5允许客户端使用“无连接”服务来获取票证并更改密码。这是通过与相同服务的TCP端口对应的UDP端口来完成的。具体说,票证交换使用UDP的88端口,而密码更改使用464.