![DNS 将同一 IP 解析到不同的机器](https://linux22.com/image/585777/DNS%20%E5%B0%86%E5%90%8C%E4%B8%80%20IP%20%E8%A7%A3%E6%9E%90%E5%88%B0%E4%B8%8D%E5%90%8C%E7%9A%84%E6%9C%BA%E5%99%A8.png)
我在域网络内使用运行 IIS 的 Windows 服务器。访问服务器上托管的网站时,我能够打开正确的页面。几秒钟内刷新页面会显示来自在 Linux 机器上运行的 Apache Web 服务器的网页(具有相同的 IP 地址)。
简而言之,同一个 IP 地址会在几秒钟内间歇性地连接到不同的服务器。这怎么可能呢?到目前为止,我的想法是:- DNS 正确地将 URL 解析为相同的 IP 地址,但与 IP 地址对应的机器正在切换。网络上有可能有两台具有相同 IP 地址的机器吗?- 对一台服务器的调用可能会自动重定向到另一个 URL。我使用 Curl 检查了重定向。但是,没有任何重定向。
我正在尝试考虑可以运行的任何其他诊断方法来确定根本原因。
任何想法/建议都会有帮助。欢迎提问!
答案1
您可以做的第一件事是关闭 Windows 服务器。然后使用另一台机器 ping IP 地址。如果您收到响应,那么是的,您在同一网络上有两台具有相同地址的机器。
如果是这样的话我可以想到几个原因:
- 配置错误(Linux主机或Windows主机的IP错误)。
- 文档错误(使用了 IP,但没有记录它正在使用中。与第 1 点不同,第 1 点很可能是在配置其中一个主机时出现的拼写错误)。
- 有人正试图故意扰乱网络。
- 有人在无意中干扰网络。
当一台 Linux 笔记本电脑启动时,我采取了第四点行动在家里并根据家庭 DHCP 服务器获取 IP 地址。该笔记本电脑被挂起,带到工作场所并重新打开,结果与其中一个本地服务器的 IP 发生冲突。
注意1:当其他人正在使用服务器时关闭服务器显然是一个坏主意。:)
注意2:您可以[暂时]更改Windows服务器的IP进行测试。请考虑在执行此操作时如何连接到服务器。
答案2
这怎么可能?......还有其他诊断吗
没什么可诊断的。你的网络配置错误。修复它。
网络上可以有两台具有相同 IP 地址的机器吗?
显然这是可能的 - 但不是在正常工作的网络上。
答案3
如果该 Linux 机器是 ubuntu 或类似的发行版,它将不会检查 IP 冲突,并且无论 IP 是否已被其他服务器使用,它都会抓取该 IP。
Windows 可能正在做同样的事情(我在这方面经验较少,所以只是猜测)。
您应该联系您的网络管理员来解决这个问题,因为两台服务器都无法正常工作。
答案4
如果两台机器使用相同的 IP 地址...您将遇到典型的冲突。网络上的每台机器都应该有不同的 IP 地址。(使用专用软件进行集群的情况除外)如果没有,您的机器可能会随机连接到每台服务器。
幕后发生的事情称为 arp 缓存。同一本地网络(广播域)中的计算机不通过 IP 地址相互通信。它们使用物理地址(mac 地址)。您的 PC 会进行广播(arp 请求),询问“谁有 IP xxxx?”此时,拥有该地址的计算机应该响应。当两台计算机拥有相同的 IP 时... 就会发生谁先响应的争斗。一旦找到该地址... 它会暂时存储在“arp 缓存”中... 直到设定的时间段到期(不同机器之间可能有所不同)... 此时它将再次启动查找过程... 最终可能会首先获得相同的响应或另一台机器的响应。