试图弄清楚为什么 nslookup 会给我两个不同的 IP 地址

试图弄清楚为什么 nslookup 会给我两个不同的 IP 地址

我对计算机科学领域还很陌生,遇到了一些我无法理解的事情:

我有一份家庭作业,要求我列出使用 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 实际上将CNAMEs链接起来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工具来了解如何正确查询名称服务器。

最后,请注意,一些大型网站在更复杂的设置中也会有多个不同的地址,这些地址可能会因地理位置不同或轮换(循环)而不同。

相关内容