为什么我的本地网络中的多个 IP 地址指向同一台计算机?

信息安全 网络 网络扫描仪 地图
2021-08-22 02:22:55

我是 linux 和 nmap 的新手,我正在尝试扫描我的本地网络。使用 nmap 我发现我的网络上有 4 台主机(10.0.2.2、10.0.2.3、10.0.2.4、10.0.2.15)。我正在使用 VirtualBox 并在本机 Windows 7 计算机上运行 Kali Linux VM。Kali Linux VM 中的网络选项默认设置为 NAT。使用 ifconfig,我发现我的 Kali Linux VM 是 10.0.2.15。我尝试使用

nmap -A -F [IP ADDRESS]

其中“IP 地址”包括上面的 3 个其他 ip。但是,它们都引用了同一台计算机,这是我运行 VirtualBox 的本机 Windows 7 计算机。关于为什么 3 个 IP 与一台设备相关联的任何想法?谢谢您的帮助。

编辑:但是当我运行命令时:

xprobe2 [IP ADDRESS]

在kali linux中,它说所有主机很可能都是linux ....

2个回答

这在Virtualbox 手册中有解释。由于您的 VM 是虚拟机,因此它在实际不存在的硬件上运行,并看到一个包含同样虚拟的其他节点的网络。上面的手册包含以下内容:

在 NAT 模式下,访客网络接口默认分配给 IPv4 范围 10.0.x.0/24,其中 x 对应于 NAT 接口的实例 +2。因此,当只有一个 NAT 实例处于活动状态时,x 为 2。在这种情况下,访客被分配到地址 10.0.2.15,网关设置为 10.0.2.2,名称服务器位于 10.0.2.3。

几行之后:

对于 NAT 模式下的网络启动,默认情况下,VirtualBox 使用 IP 地址为 10.0.2.4 的内置 TFTP 服务器。

因此,来宾 VM 看到的 IP 地址为 10.0.2.2、10.0.2.3 和 10.0.2.4 是 Virtualbox 在来宾 VM 认为它连接到的虚拟网络上维护的虚拟节点的地址;来宾虚拟机本身在该网络上被授予 IP 地址 10.0.2.15。

所有这些都发生在 Virtualbox 的内部;主机操作系统(Windows 7)完全不知道它。当来宾 VM 发送一个目标地址为 10.0.2.3 的 IP 数据包时,该数据包将在虚拟网络接口上发送:来宾 VM 在该“硬件”上发送一个 I/O 请求(带有out操作码);操作码触发了一个被 Virtualbox 捕获的 CPU 异常,然后 Virtualbox 会看到数据包内容(它们在 RAM 中)并表现得好像网络接口真的存在一样。从数据包内容中,Virtualbox 注意到它是针对它的一个虚拟节点的,并计算出一个响应数据包,将其放入与来宾虚拟网络接口的缓冲区相对应的 RAM 缓冲区中,并触发中断请求来宾,就好像真的有一个网卡能够警告来宾 CPU 传入数据一样。关于虚拟机和仿真的一切都是浮云,这包括来宾 VM 所属的整个虚拟网络。

从那个Windows的角度来看,只有一个进程(Virtualbox)可能发出网络相关的系统调用;10.0.2.x 地址对它是不可见的。

除了虚拟化之外,linux 中还有一个绑定网络接口的概念这个想法是将多个网络接口聚合到一个虚拟接口中,有效地将带宽组合到一个网络连接中。实际上有六种不同的模式,我们可以利用多个网络接口,即

  1. 主动备份
  2. 平衡异或
  3. 播送
  4. 802.3ad
  5. 平衡tlb
  6. 平衡表