为什么“host”命令在将“http://”连接到域时返回不同的结果

今天当我检查我的网站的登台域名实际指向的时候,我感到震惊。 我假设了域或我们的公司networking的一些马虎的configuration,我的舞台域以某种方式指向生产服务器。

所以我inputhost http://stage.***.com ,得到了212. ##。##。70 => Booom,生产服务器。 之后,我尝试了host stage.***.com并拿到了212#### 73 =>呃,这个登台服务器

所以,我的问题是:怎么会发生这种情况,不小心将“http://”粘贴到命令行中会使“主机”返回另一个IP地址?

编辑:由于它似乎不清楚我在问什么,我试图澄清:正如斯文在他的评论中指出,

host http://stage.***.com

不应该返回任何东西,但在我的情况下,它会返回

http://stage.***.com has address 212.##.##.70

这实际上是***。com(生产)的知识产权所以我想知道这是如何发生的。

  1. 为什么它会返回Prod-IP?
  2. 考虑到Sven的评论,为什么它会返回任何东西呢? 由于实际的答案是相当误导我会喜欢一个错误消息。 无论如何,“http://”是一个复制/粘贴错误

顺便说一句,我在Ubuntu 16.10。 客户

EDIT2:

 ; <<>> DiG 9.10.3-P4-Ubuntu <<>> http://stage.***.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26978 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 5 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;http://stage.***.com. IN A ;; ANSWER SECTION: http://stage.***.com. 180 IN A 212.48.122.70 ;; AUTHORITY SECTION: ***.com. 65 IN NS auth2.###.de. ***.com. 65 IN NS auth1.###.de. ;; ADDITIONAL SECTION: auth1.###.de. 180 IN A 212.##.##.53 auth1.###.de. 180 IN AAAA 2a00:####:##:##::2 auth2.###.de. 180 IN A 212.##.##.53 auth2.###.de. 180 IN AAAA 2a00:####:##:##::2 

嗯。 我想“http://”部分被认为是域的一部分,我们的DNSconfiguration说*。***。com有###。70 (所以我们有一个通配符用于任何不是阶段的东西….)

你必须为你的域名有一个通配符才能发生(你应该删除它)

假设你有一个区域,下面的结果应该是一样的

区域文件:

 example.com IN A 192.0.2.5 *.example.com IN A 192.0.2.0 www.example.com IN A 192.0.2.10 

主机命令输出:

 host http://a.example.com http://a.example.com has address 192.0.2.0 host http://www.example.com http://www.example.com has address 192.0.2.0 host www.example.com www.example.com has address 192.0.2.10 

正如你所看到的, www匹配www一个logging, http://www匹配通配符

顶点logging不匹配*,因为它不是一个子域。

 host http://example.com http://example.com not found: 3(NXDOMAIN 

总是会出现NXDomain,这与缺less任何字符+有关.

我检查了查询日志,是的,查询实际上是http://a.example.com和匹配*.example.com

通配符是一个可怕的,尽可能避免他们!

  1. 禁用负TTL(没有NXDomain,你总是回答一个logging)
  2. 增加新logging的传播*
  3. 增加DNScaching毒药的机会(特别是在分裂DNS的情况下!)
  4. 不是所有的名称服务器都使用相同的通配符,有的是完全recursion的,有的不是( *.*.*.*.example.com vs *.example.com

*传播不是一件事情,但它通常用来描述第三方刷新caching的时间。

完全删除“http://”,因为这不是FQDN的一部分。