Sed*_*lah 56 networking dns cname
当我将我的 GoDaddy 域名指向运行我的 Web 服务器的 GCP VM 的 IP 地址时,这就是我所要做的:
是什么阻止我对世界上的任何域做同样的事情?
事实上,我做到了:

我为 google.ca 创建了一个 CNAME、A、SOA 条目到我的虚拟机外部公共 IP 地址,但没有什么能阻止我。现在我不希望 Google 的所有流量都开始指向我想要的任何地方(这将是一个有趣的 DDOS),但是这里发生了什么?我错过了什么?
我的意图并非不道德。我只是想了解这一切是如何运作的。
Dan*_*l B 83
没有什么能阻止你。然而,也没有人会去看。那是因为真正的域没有指向您的名称服务器 (GCP DNS)。人们只能通过直接向您的名称服务器询问它们来获取这些记录。
DNS 查询从根开始:
$ dig google.ca +trace
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> google.ca +trace
;; global options: +cmd
. 68215 IN NS h.root-servers.net.
. 68215 IN NS k.root-servers.net.
. 68215 IN NS i.root-servers.net.
. 68215 IN NS g.root-servers.net.
. 68215 IN NS a.root-servers.net.
. 68215 IN NS b.root-servers.net.
. 68215 IN NS d.root-servers.net.
. 68215 IN NS f.root-servers.net.
. 68215 IN NS l.root-servers.net.
. 68215 IN NS e.root-servers.net.
. 68215 IN NS j.root-servers.net.
. 68215 IN NS m.root-servers.net.
. 68215 IN NS c.root-servers.net.
;; Received 553 bytes from 192.168.2.5#53(192.168.2.5) in 31 ms
ca. 172800 IN NS c.ca-servers.ca.
ca. 172800 IN NS x.ca-servers.ca.
ca. 172800 IN NS any.ca-servers.ca.
ca. 172800 IN NS j.ca-servers.ca.
;; Received 626 bytes from 202.12.27.33#53(m.root-servers.net) in 24 ms
google.ca. 86400 IN NS ns1.google.com.
google.ca. 86400 IN NS ns2.google.com.
google.ca. 86400 IN NS ns3.google.com.
google.ca. 86400 IN NS ns4.google.com.
;; Received 603 bytes from 199.253.250.68#53(x.ca-servers.ca) in 42 ms
google.ca. 300 IN A 172.217.16.163
;; Received 54 bytes from 216.239.32.10#53(ns1.google.com) in 22 ms
Run Code Online (Sandbox Code Playgroud)
(为了简洁起见,我删掉了 DNSSEC 的内容。)
通常,您当然不会自己执行迭代查询。递归 DNS 服务器也会为您完成这项工作,而且速度要快得多。
Acc*_*ion 34
假设是 1980 年,电话簿仍然是一个东西。是什么阻止您前往电话簿中的 Kmart 条目,并将他们的电话号码替换为您商店的电话号码?绝对没有。您可以随意执行此操作,如果您使用该电话簿,则每次尝试致电 Kmart 时,您都会拥有自己的商店。您可以根据自己的喜好重新标记电话号码。
问题是,其他人都有自己的电话簿,他们不会看你的。除非您可以闯入电话公司并在那里更改 Kmart 的电话号码,以便他们发送的电话簿将包含您的公司号码,否则您不会拒绝 Kmart 的任何业务。
类似地,如果您确定您已经厌倦了输入难以置信的longdomainnamethattakesaridiculouslylongtimetotime.com 并且您不想依赖自动完成,那么您可以自由地设置一个服务器,将short.com 解析为explainedlylongdomainnamethattakesaridiculouslylongtimetotime.com 的IP 地址,并且让您的计算机使用该服务器来解析域名。但是,除非您也可以让其他人的计算机也使用该服务器,否则您不会影响他们在地址栏中键入 short.com 时发生的情况。
ilk*_*chu 25
所以我的问题是,是什么阻止我对世界上的任何域做同样的事情?事实上,我做到了。
困难的部分是获取这些数据,包括NS安装在.ca名称服务器上的名称服务器的记录。他们可能不会让您这样做,第三方将通过从根向下查询名称服务器来解析域,因此(全局)根首先将地址提供给.ca名称服务器,后者将地址提供给.google.ca名称服务器.
当然,如果您将这些记录安装在您组织的名称服务器中,那么您组织内的任何人都会看到您设置的数据。(好吧,假设他们使用组织的名称服务器,而不是直接使用 8.8.8.8 之类的东西。)但是当有人尝试在那里打开 HTTPS 连接时,他们会收到错误消息,因为您组织之外的任何 CA 都不会为您的密钥签名那个域。(当然,这可以通过在组织内设置您自己的 CA 来规避,但这是另一回事。)