是否有可能在DNS中有正则expression式的CNAMElogging?

有没有可能做这样的事情? 还是等价的? 在DNS服务器中。

([0-9]{2})\.example\.com\. IN CNAME www$1.example.net. 

DNS不。 但最stream行的bind9 nameserver守护程序在其区域文件中支持这种语法:

 $ GENERATE 1-99 www $ CNAME www $ .other-domain.com。

请注意,这与其他DNS服务器软件不兼容。

虽然正则expression式处理可以写入DNS服务器,但这样做是一个坏主意。

任何修改为处理正则expression式扩展的DNS服务器都将与世界其他地方共存。 传输到“标准”服务器的区域要么是不完整,不正确,要么是绝对巨大的,因为每个排列都必须作为单独的logging来发送。 取决于正则expression式可能会导致几乎无限的可能logging,这显然是不切实际的,因为转移可能永远不会完成,从而使系统不同步。

当然,如果转移只是在修改过的服务器之间发生,这可能是好的,但宇宙有破坏这种简单性的倾向。

DNS协议不支持正则expression式。 这就是说,名称服务器没有理由不能在内部评估正则expression式并提供标准的DNS答案。

它将不符合RFC 1035第5节和RFC 1034第3.6.1节中定义的标准区域格式,我不知道任何名称服务器实际上是否支持正则expression式,但基本上是可以的。

不,但你可以有一个通配符:

*.mydomain.com

这不会完全做你想要的,但也许你可以做一些服务器端validation,以确保主机名是有效的? 将不会帮助重新写入不同的Alogging,但…

正如jrockway所build议的那样,如果你有能力推出你自己的域名服务器,你完全可以控制你的回复。 在这种情况下,您可以根据查询回复所需的CNAMElogging。 我不知道您期望拥有多lessDNSstream量,您的网站的关键任务如何,但是您可以使用Net :: DNS :: Nameserver模块来尝试在Perl中实现的DNS服务器 。

另外,因为你的正则expression式只是100个DNS资源logging的快捷方式,所以你可以运行BIND,并有一个脚本生成你想要的区域文件。

或者,只需使用您的注册商的工具来创build100个CNAMElogging。

没有正则expression式,只是通配符域名,例如*.mydomain.net – ( RFC 4592 ,特别是第2节)

你不能用标准的DNS软件来做到这一点。

如果您使用识别特定模式的自定义DNS服务器,然后dynamic合成正确的响应, 可能会发生这种情况。 这实际上是微不足道的,例如使用我的evldns服务器框架。 如果你知道“C”,那么实施时间应该不到一个小时。

但请注意,域的所有权威DNS服务器都需要具有此function。 尽pipe通配符logging可以使用AXFR从主服务器AXFR地转移到辅助服务器,但是只有在内置DNS协议的情况下才能正常工作。