我对计算机科学领域还很陌生,遇到了一些我无法理解的事情:
我有一份家庭作业,要求我列出使用 nslookup 命令针对某些域生成的 IP 地址。实际作业非常简单,但在我做作业时,我意识到当我输入“nslookup www.ibm.com”时,我得到的 IP 地址与我输入“nslookup ibm.com”时得到的 IP 地址不同。当我在 Chrome 中导航到这些 IP 地址时,“ibm.com”直接将我带到 IBM 网站,而“www.ibm.com”IP 地址告诉我这是一个无效的 URL。
我从“nslookup www.ibm.com”获得的结果是:
Non-authoritative answer:
Name: e2874.x.akamaiedge.net
Address: 104.126.119.173
Aliases: www.ibm.com
www.ibm.com.cs186.net
www.ibm.com.edgekey.net
www.ibm.com.edgekey.net.globalredir.akadns.net
“nslookup ibm.com”的结果是:
Non-authoritative answer:
Name: ibm.com
Address: 129.42.38.1
根据 whois,我用“nslookup www.ibm.com”得到的 IP 地址是 Akamai 的一个波兰服务器。(维基百科说他们提供云服务。IBM 是客户之一,所以我很确定这并不是一个惊人的发现。)
我想了解的是为什么“nslookup www.ibm.com”和“nslookup ibm.com”会产生不同的 IP 地址。我在 /r/askcomputerscience 上询问,并被告知从 DNS 的角度来看,“www”部分并没有太多意义。
还有这个类似的问题这里是 Server Fault,但答案似乎是 Google 特有的。问题是“为什么添加 www 后 nslookup 结果会有所不同?”答案是“因为 Google 的根区域和 www 区域有不同的 DNS 记录。”这个答案也适用于这里吗?如果是,为什么根区域和 www 区域有不同的记录?
答案1
首先,许多网络服务器允许同一个IP用于不同的域,这也解释了为什么通过IP导航经常会失败。
至于你关于www.ibm.com
和之间的区别的问题ibm.com
,它们是完全不同的条目。大多数网站都指向同一个地方,要么使用A
具有相同 IP 的记录,要么CNAME
使用指向主记录的记录。
IBM 实际上将CNAME
s链接起来www.ibm.com
记录如下:
www.ibm.com. 3600 IN CNAME www.ibm.com.cs186.net.
www.ibm.com.cs186.net. 60 IN CNAME www.ibm.com.edgekey.net.
www.ibm.com.edgekey.net. 3968 IN CNAME www.ibm.com.edgekey.net.globalredir.akadns.net.
www.ibm.com.edgekey.net.globalredir.akadns.net. 3600 IN CNAME e2874.x.akamaiedge.net.
e2874.x.akamaiedge.net. 20 IN A 172.230.214.78
我建议您寻找在线dig
工具来了解如何正确查询名称服务器。
最后,请注意,一些大型网站在更复杂的设置中也会有多个不同的地址,这些地址可能会因地理位置不同或轮换(循环)而不同。