我有一台通过操作系统创建了多个 IP 地址的服务器。系统上只有一个网卡,并且第一个 IP 关联一个 mac。这到底是怎么回事?网络如何查看这些地址?
答案1
在本地(以太网)网络内,您的 NIC 将只响应分配给它的每个 IP 地址的 ARP 请求,因此其 MAC 地址与多个 IP 相关联。由于 MAC 地址是以太网物理层上唯一重要的内容,因此这就足够了。在本地网络之外,网关路由器将代表其特定子网中的所有 IP 接受数据包,然后将它们转发到相应的机器,同样使用以太网的物理层和 arp 请求等。
答案2
每个网卡可以拥有任意数量的 IP 地址。IP 位于比 MAC 地址更高的网络层。
您的 MAC 地址不与任何 IP 地址“关联”。您的 MAC 地址与您的网卡关联。
打开命令提示符并输入ipconfig /all
将列出所有网络信息的命令可能会有所帮助。列表将按网卡列出。
当网络上的计算机想要查找您的服务器时,它会发送广播请求,说“大家好,谁有这个 IP 地址?”您的服务器会回复“我有,您可以通过这个 MAC 地址找到我。”因为它以这种方式工作,所以没有什么可以阻止您的服务器响应多个 IP 地址。
答案3
IP 地址只是一个标签 - 当 NIC 发现一个数据包被发送到它的一个 IP(标签)或广播地址(另一个标签)时,它会从线路上抓取该数据包并将其发送到 IP 堆栈。它可以监听多个 IP 地址。
如果您想要了解更多细节,请开始阅读 OSI 模型,特别是第 1-3 层。
编辑 - 事实证明,我的表述有点不正确。我实际上是在描述 ARP 和 MAC 地址的情况。所以,我想我自己已经很久没有花太多时间研究第 3 层以下了。
答案4
至少对我来说,这是一个有趣的附注。
我们正在用新硬件替换防火墙,它在互联网接口上有大约 20 个额外的地址。
交换后,我们只能访问防火墙的主 IP,而无法访问附加别名。
我们仔细考虑了所有能想到的事情,检查了所有的配置,确保一切正常。
最后,事实证明别名具有某种较低的意义,并且如果您引入具有相同别名的新 NIC,网络上的其他设备不一定会进行切换。
当时恰好是凌晨 3 点,而我们的防火墙所连接的路由器不是我们的,所以我们无法进入它来重置 ARP 缓存,也无法进行物理访问来对其进行电源循环。
我想到了一个主意,将每个 IP 逐个设置为 NIC 上的主 IP,将其调出,让它更新路由器的 ARP 缓存,然后转到下一个。这样做之后,它们就可以作为别名 IP 工作了。