我从托管服务提供商那里租用了一台专用服务器。我在服务器上运行了 wireshark,这样我就可以看到发往我服务器的传入 HTTP 流量。
当我运行 wireshark 并过滤 HTTP 时,我注意到有大量流量,但大多数流量不是托管在我服务器上的流量,而且目标 IP 地址不是我的,而是各种源 IP 地址。我的第一反应是认为有人以某种方式通过我的服务器传输他们的 HTTP 流量。
然而,当我仔细观察时,我注意到所有这些流量都流向同一子网上的主机,并且所有这些 IP 地址都属于我正在使用的同一托管服务提供商。
因此,看起来 wireshark 正在拦截发往其他客户的流量,这些客户的服务器与我的服务器连接到网络的同一部分。
现在我总是假设在基于交换机的网络上这种情况不会发生,因为交换机只会将数据发送到所需的主机而不是连接的每个盒子。
在这种情况下,我假设其他客户也能够看到发送到我服务器的数据。除了潜在的隐私问题外,这肯定会使 ARP 攻击变得容易,并允许其他人窃取 IP 地址(以及域名和网站)?
网络提供商以这种方式配置网络似乎很奇怪。这里有更合理的解释吗?
答案1
显然,您所描述的对于共享环境来说是一种非常糟糕的做法,我会向您的托管服务提供商反映这个问题。
最合理的解释是负载平衡器,可能是同一网络段内处于负载共享模式的高可用性防火墙,使用多播 MAC 地址和单播 IP 地址进行路由。通过使用多播 MAC,多个防火墙可以看到流量,并且它们将实现自己的负载平衡算法,因此在线集群成员每个仅响应一部分流量。单播 IP 地址附加到虚拟 IP 以进行路由。由于 IP 解析为多播 MAC,因此发送给它的任何流量都会在本地段上进行多播,并由其中一个集群节点接收。
我以前见过这种配置,但是,由于不了解网络,所以这只是猜测,但最有可能的是,因为它是一个托管服务提供商。
一个例子是 NLBhttp://technet.microsoft.com/en-us/library/bb742455.aspx然而我知道 Check Point 防火墙在某些配置下以及其他一些具有同样功能的产品。
但需要重申的是,对于共享主机托管模型来说,这是一种不安全的配置。
答案2
交换机的工作原理如下:
默认情况下,它们作为集线器运行;所有流量都从所有接口传出。但是一旦流量传到入站对于给定的源 MAC,发往该 MAC 的流量将仅从该接口流出。如果在多个接口上看到给定的 MAC,它将从两个接口流出;最终可能会重置并仅从最近看到流量的接口流出。
这就是默认行为。这不是便宜硬件的唯一行为,但托管交换机可以根据您的心意进行配置。所以一切皆有可能。请注意,我从未提到过 IP 地址;交换机传统上在第 2 层工作,而不是第 3 层。昂贵的托管交换机可以模糊与路由器的界限,但传统上它们只担心 MAC 地址。但是,配置不当可能会覆盖典型的交换行为并消除任何类型的主机隔离。
不过,还有一件事值得一提:桥梁。这有什么关系呢?如果你的硬件是虚拟化的,那么这很重要,因为即使是“专用”的(肯定在空中引号) 托管提供商。具体来说,虚拟机通过选择网络适配器或连接到机箱内的虚拟网络(通常设置为网桥)连接到网络。在这两种情况下,所有虚拟机都位于同一个交换机段上,这意味着数据包捕获大混乱。
最后,他们可能使用集线器。是的,可能不是。但我只是说说而已。