以通配符开头的子域名

以通配符开头的子域名

我想在 IIS 10 和 GoDaddy DNS 服务器上实现此行为。

我有三台服务器处理三个应用程序,前两个运行正常,但第三个出现了问题:

  1. 所有www.example.com流量都non-www.example.com流向一台服务器。
  2. 一切都api.example.com归于另一个。
  3. 所有内容都s*.example.com转到第三台服务器(仅以字母开头的子域名S

考虑到明天我可能会有api2.mydomain.com等等。

谢谢!

答案1

DNS 通配符是二进制的:要么全部匹配,要么全部不匹配,您不能只匹配标签的某些部分,例如s*.example.com。这是协议的一部分,因此无论您使用什么软件,它都不起作用[1]

RFC4592及其第 2.1.1 节:

“通配符域名”的定义是,其初始(即最左边或最不重要的)标签采用二进制格式:

 0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)

第一个八位字节是 1 个八位字节长的标签的正常标签类型和长度,第二个八位字节是‘*’字符的 ASCII 表示形式 [RFC 20]。

因此,如果您想做这样的事情,您需要设置一个通配符,然后在您的网络服务器的应用程序级别处理所有请求。

请记住,通配符虽然看起来很有吸引力,但可能会造成复杂的问题,对于 CNAME 记录来说更是如此。区域文件通常是文本文件,因此很容易自动创建它们并在其中放入任意数量的记录,而无需使用通配符。

[1]:当然,除非使用高度特定的服务器,您可以在其中插入特定的后端,该后端会按照您需要的方式对标签采取行动。

相关内容