在 DNS 中,SRV 记录实际上是一种非常通用的形式,用于告诉远程客户端特定服务的托管位置。目前,我使用它来允许人们通过互联网使用 SIP 客户端给我打电话(效果很好)。
SRV 记录的优点之一是您可以为服务指定不同的端口,并且您可以为相同的服务拥有多个系统(或相同的系统和不同端口上的多个实例)。所以IFF它可以工作,您可以在一个系统上拥有多个网络服务器,而不会受到任何干扰。
所以你可以在你的 DNS 中有这个:
_http._tcp SRV 10 50 8080 myserver.basjes.nl
_http._tcp SRV 10 50 8081 myserver.basjes.nl
然而,所有这些优点都有一个小障碍……我找不到任何支持它的 HTTP、FTP、SMTP ……客户端。
所以除了 SIP 和维基百科页面中提到的少数其他协议:SRV 记录会变得真正有用吗?
还是我错过了什么?
那里有更好的东西吗?
我认为您只会看到它用于新协议。
SMTP 使用的 MX 记录相当于带有固定端口且没有权重的 SRV 记录。换句话说,他们已经充分解决了同样的问题。
例如,因为 HTTP 必须保持与当前机制的向后兼容性,所以任何开始使用 SRV 的 HTTP 仍然必须提供替代机制,并且没有人愿意保持两种方式来做同样的事情。(例如,一些负载平衡器和一些 DNS SRV 记录......)如果站点不打算发布 SRV 记录(因为它只会创建不必要的工作),那么客户端就没有动力支持没有人发布的 SRV 记录。
它们在Active Directory 域中非常有用。
许多支持 Kerberos 的服务和客户端也在使用 SRV 记录。在 /etc/krb5.conf(或其等效项)不可读或丢失的特定机器上尤其如此;将执行 SRV 记录查找以查找 KDC。
Apple 的 Bonjour 技术(又名 zeroconf)广泛使用了这一点。如果你还没有看到它在行动 - 检查它。它允许您自动发现打印机、路由器、启用 bonjour 的网页等。
有一个 BSD 许可的 Apache 模块称为 mod_bonjour,它允许您通过多播 DNS 为网站做广告。您还可以通过 SRV 记录和常规 DNS 为网站做广告,但我相信只有 Safari 才能检测到它们。
Zeroconf 网页对它的工作原理有一个很好的解释——如果你对这项技术感兴趣,我建议你也看看这本书。
一般而言,最大的问题之一是 DNS 人员不认为自己从事服务发现业务,而偏执的安全人员认为发现服务的能力是一种安全风险。
事实上,大多数应用程序还不支持它。
这样做的那些是目标用户身份中的域与客户端软件必须连接的主机名不同的常见情况。因此,为什么在 SIP 和 Jabber (XMPP) 中使用它。
SMTP 不需要它,因为它从一开始就一直有 MX 记录。
能够使用不同端口的好处相对较小,因此其他协议还没有开始使用它。
有一个提议URI 方案的Internet 草案
http+srv:
,但请注意,当前没有提议将 SRV 查找添加到标准http:
URI 请求。Outlook 2007 和 Exchange 2007 使用 SRV 记录 http://technet.microsoft.com/en-us/library/bb332063.aspx
我相信 SRV 记录是 DNS 服务发现 (DNS-SD) 中的基础结构之一,因此将变得越来越重要。
也没有理由不能将它们与现有技术一起使用,与 DNS-SD 感知客户端一起使用,例如网络浏览器,例如 iStumbler for mac,它可以在网络上找到 bonjour/zeroconf 资源。
在我看来,只有当动态更新 DNS 变得更可用时,SRV 记录才会变得更加普遍。由于 Active Directory 的要求,MS-DNS 默认开启了动态更新。多年来有许多资源广告目录,包括服务位置协议、服务广告协议(IPX 网络)、Bonjour/Avahi,甚至在某种程度上是 DHCP。
其中,只有 DNS 具有真正的跨 Internet 资源目录的潜力。出于某种原因,公共 DNS 服务器往往是静态的。当有明确的需求时,就会采用 SRV 记录,就像 SPF 协议采用 TXT 记录一样。使用 SRV 的 SIP 可能是为更广泛的非 MS 采用打开大门的第一步。
SRV 记录用于将 Windows Vista/2008 服务器定向到您的 KMS 服务器,以便在企业中激活。
XMPP 正在使用它们。
但是现有协议不会改变以支持它们,尤其是将请求重定向到不同的端口。这将是出乎意料的,并且无疑会打破一些与安全相关的假设。