我们拥有一个主要域名:
- businessdts.com
我不知道我们的管理员是否创建了我请求的子域名“BDASERVER.businessdts.com”,所以我只是尝试使用浏览器连接到它,但得到的是“未找到”。然后我 ping 了该子域名,得到了一个不属于我们的 IP 地址:
- 正在 Ping BDASERVER.businessdts.com [198.105.244.117],数据为 32 字节
- 我们的域名和所有子域名应该有一个 IP 地址 [173.203.24.209]
我让管理员检查了我们所有的 DNS 区域,但没有发现 BDASERVER 子域的实例(管理员尚未创建它),也没有发现 198.105.244.117 IP 地址的任何实例。
通过 IP 查询,我们发现 198.105.244.117 属于一家名为 Search Guide Inc. (searchguideinc.com) 的公司。他们似乎是某种域名经纪人。
我遗漏了什么吗:
- 这个 BDASERVER 子域名如何解析为不属于我们的地址?
- 人们是如何劫持子域名的?
答案1
正如其他人所建议的那样 - 这实际上是 ISP 的规范。ATT 也对我这样做。当请求的域未找到时,DNS 记录未指向默认目标(您可以在管理 DNS 的服务器上进行设置 - 您很可能使用的是标准注册商,他们会为您管理 DNS - 只需登录到您注册域名的地方并单击管理 DNS)。您应该添加“通配符”重定向记录。这样,您将始终将未定义的流量指向默认网页 - 或主网站的索引页。如果出现拼写错误,这也会有很大帮助 - 您不会因此而失去流量,客户或访问者也不会因滥用广告而受到 ISP 的惩罚(我认为应该对 ISP 提起集体诉讼,因为他们从我们所有人身上赚取广告收入 - 不是吗?)无论如何 - 这里有关于这个主题的讨论,您可以阅读以了解更多细节。 默认 DNS 设置
底线是 - 如果您正在管理您的域名和服务器 - 设置您的默认通配符,并且您可能还想添加一些自定义错误页面,以便在有人请求不存在的页面时将您的网络服务器指向该页面 - 添加您的徽标并使用小型站点搜索脚本或其他内容链接回您的主站点...从网站请求资源或 html 页面非常烦人 - 甚至单击其站点上另一个页面上的链接之一 - 然后会出现那个丑陋的“400 错误”页面。企业可以通过确保处理错误并留住客户来保持用户体验。我还建议您在修改后的错误页面中包含“报告断开的链接”,也许在默认通配符重定向登录页面中包含一个“报告断开的链接”,如果访问者不交互或其他情况,还可以自动重定向到索引主页或其他选择页面。
我现在跑题了——但显然——原贴作者需要多了解一下是什么原因导致 ISP 能够拦截错误……DNS 处理程序无法对请求的未定义子域提供有用的响应,因为它不存在——因此 ISP 改为提供一个创收页面。不过很容易解决!
答案2
该子域名没有记录:
$ dig BDASERVER.businessdts.com
; <<>> DiG 9.8.3-P1 <<>> BDASERVER.businessdts.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 11871
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;BDASERVER.businessdts.com. IN A
;; AUTHORITY SECTION:
businessdts.com. 300 IN SOA ns.rackspace.com. hostmaster.rackspace.com. 1487794151 10800 3600 604800 300
;; Query time: 86 msec
;; SERVER: 192.168.64.1#53(192.168.64.1)
;; WHEN: Wed Feb 22 21:29:53 2017
;; MSG SIZE rcvd: 103
您的 ISP 的 DNS 很可能正在进行所谓的 NXDOMAIN 劫持,他们劫持 NXDOMAIN DNS 回复,并且不使用正确的 NXDOMAIN(如上所述)进行回复,而是向您提供“搜索”页面的 IP 地址,这通常会为他们带来广告收入。
我会和你的 ISP 谈谈,要求他们停止干扰你的流量。如果他们拒绝,请换一个更好的 ISP 或使用不同的解析器来处理你的流量。
答案3
有人通过执行 NXDOMAIN 劫持指向不存在的子域或任何相关的 DNS 条目,这意味着贪婪的 DNS 所有者将重写条目以指向基于广告的页面。
对此有一个非常简单的答案:在您的域上启用 DNSSEC,这将阻止任何人从另一个 DNS(如您的 ISP)给出答案。