SRV记录会有用吗?


14

在DNS中,SRV记录实际上是告诉远程客户端托管特定服务的位置的一种非常通用的形式。目前,我使用它来使人们可以通过Internet上的SIP客户端给我打电话(效果很好)。

SRV记录的优点之一是,您可以为服务指定一个不同的端口,并且您可以为同一系统拥有多个系统(或同一系统和不同端口上的多个实例)。因此,IFF可以正常工作,您可以在单个系统上拥有多个Web服务器,而不会受到任何干扰。

因此,您可以在DNS中使用它:

_http._tcp SRV 10 50 8080 myserver.basjes.nl
_http._tcp SRV 10 50 8081 myserver.basjes.nl

但是,所有这些优点都存在一个细微的缺点……我无法找到任何支持它的HTTP,FTP,SMTP,...客户端。

因此,除了SIP和Wikipedia页面中提到的其他一些协议之外:SRV记录真的有用吗?

还是我错过了什么?

有没有更好的工作方法呢?

Answers:


16

我认为您只会看到它用于协议。

SMTP使用的MX记录等效于具有固定端口且没有权重的SRV记录。换句话说,他们已经充分解决了相同的问题。

例如,由于HTTP必须保留与当前机制的向后兼容性,因此任何开始将SRV用于HTTP的人仍然必须仍然提供备用机制,而且没有人希望维护两种做同一件事的方式。(例如,一些负载平衡器和一些DNS SRV记录...)并且,如果站点不打算发布SRV记录(因为这只会造成不必要的工作),则客户没有动力去支持没有人发布的SRV记录。



8

许多启用Kerberos的服务和客户端也正在使用SRV记录。在/etc/krb5.conf(或等效文件)不可读或不存在的特定机器上尤其如此。将执行SRV记录查找以找到KDC。


8

苹果公司的Bonjour技术(也称为zeroconf)充分利用了这一点。如果您还没有看到实际的效果,请查看。它允许您自动发现打印机,路由器,启用Bonjour的网页等。

有一个BSD许可的Apache模块,称为mod_bonjour,它允许您通过多播DNS宣传网站。您也可以通过SRV记录和常规DNS来宣传网站,但我相信只有Safari才能检测到它们。

Zeroconf网页对它的工作原理进行了很好的解释-如果您对这项技术感兴趣,我也建议您阅读本书。

总的来说,最大的问题之一是DNS人员不认为自己属于服务发现行业,而偏执的安全人员则认为发现服务的能力存在安全隐患。


6

实际上,大多数应用程序尚不支持它。

这样做的目的是使目标用户身份中的域与客户端软件必须连接的主机名不同。因此,为什么要在SIP和Jabber(XMPP)中使用它。

SMTP不需要它,因为从一开始就始终具有MX记录。

能够使用其他端口的好处相对较小,因此其他协议并未开始大量使用它。

有一个Internet草案提出了http+srv:URI方案,但是请注意,目前没有提议将SRV查找添加到标准http:URI请求中。



2

我相信SRV记录是DNS服务发现(DNS-SD)中的基础结构之一,因此将变得越来越重要。

也没有理由不能将它们与现有技术结合使用,并且不能与支持DNS-SD的客户端(例如,网络浏览器,如Mac的iStumbler)结合使用,可以在网络上找到bonjour / zeroconf资源。


2

我认为,只有在动态更新DNS变得更可用时,SRV记录才会变得更加普遍。默认情况下,由于Active Directory的要求,MS-DNS的动态更新默认情况下处于打开状态。这些年来,已经有许多资源广告目录,包括服务位置协议,服务广告协议(IPX网络),Bonjour / Avahi甚至在某种程度上甚至是DHCP。

其中,只有DNS才具有跨Internet资源目录的真正潜力。出于某种原因,公共DNS服务器往往是静态的。当明确需要SRV记录时,就会采用SRV记录,就像SPF协议采用TXT记录一样。使用SRV的SIP可能是为更广泛的非MS应用打开大门的第一步。


1

SRV记录用于将Windows Vista / 2008服务器定向到您的KMS服务器以在企业中激活。


1

XMPP正在使用它们。

但是现有协议不会更改以支持它们,尤其是将请求重定向到其他端口。这将是出乎意料的,并且无疑会打破一些与安全性有关的假设。


1

SRV记录提供了一种实现通讯服务的机制,而无需每个人都使用同一提供商。换句话说,A和MX记录对Web和电子邮件的作用,SRV记录对任何服务的作用。

在博客文章“免费寻址的力量”中概述了此想法,网址为http://e-caller.com/?p=4

Twitter和Facebook的兴起归因于缺乏支持SRV的替代方案。



1

它们对于需要服务定位器的应用程序堆栈非常有用,因为DNS不需要从头开始实现,并且比Zookeeper或etcd之类的重量轻得多。此外,还可以确保非常安全的附加便利。我不确定为什么除了Spotify之外几乎没有人会以这种方式使用它,我怀疑只是无知。我已经看到很多人推出了自己的劣等定制服务定位软件。DNS是一种快速,可靠的密钥值存储,并且已经按区域组织了其密钥。最大的问题是很少有DNS服务器具有任何类型的API,因此,尽管DNS的云实现确实可以实现自动创建RR /更新更新。


0

SRV记录对于托管行业而言是至关重要的,因为它们可以节省IPv4空间。

我们使用它们以透明的方式帮助我们的客户过渡到IPv6。


我对此很感兴趣;愿意添加更多细节吗?
nickgrim 2013年

我们提供了专用的ipv6和IPv4上的一些端口。这样,我们可以大大减少ipv4占用空间。端口通过SRV隐藏,并带有一个Apache补丁
Mascarpone
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.