如何根据操作系统为同一台机器分配不同的静态 IP 地址?

如何根据操作系统为同一台机器分配不同的静态 IP 地址?

我想知道是否有可能,例如,当计算机运行 Windows 时为其分配/保留一个静态 IP,而当计算机运行 Linux 时,为同一台计算机/MAC 地址分配第二个静态 IP?

我在大学网络下的电脑上看到了这种行为。也就是说,同一个网卡为 Windows 分配了一个稳定的 IP,为 Linux 分配了另一个 IP。我不知道这是否只是动态 IP 被记住了很长时间。但大学网络能够根据正在运行的操作系统为我提供两个特定的 IP。

我的问题是,

  1. 使用什么样的网络管理技术来区分操作系统并根据操作系统品牌分配 IP?

  2. 我可以(以及如何)使用运行 dd-wrt ​​的路由器在我自己的网络上执行相同操作吗?

提前致谢。

注意:我在 ServerFault 上问了这个问题,但被告知那里没有主题。

答案1

您可以将两个操作系统配置为请求静态 IP,而不是路由器根据其 MAC 地址分配静态 IP 地址。这可以通过配置相应操作系统的网络设置来实现,并让它们都请求不同的静态 IP。

在 Windows 中,这些设置可以在网络和共享中心

在 Linux 发行版中,可以使用桌面环境的设置来配置这些设置,或者如果你喜欢手动方法,则需要编辑文件(根据您的 Linux 发行版和版本而有所不同)。

确保为这些设置的 IP 地址不会动态分配给网络上的其他系统。您不希望静态 IP 配置的系统在未开启时请求已分配给其他系统的 IP。您可以通过为网络上的所有系统设置静态 IP 地址(每个系统都有自己的唯一 ID)或使静态 IP 地址高于通常使用的范围来避免这种情况(通常路由器倾向于从 192.168.x.1 或 192.168.x.101 的范围开始分配,因此如果知道最多有 10 个不同的系统会同时连接到网络,您可以分配 20 以上的静态 IP 以避免冲突)。

实现此目的的另一种方法是更改 MAC 地址您的一个或两个操作系统以及为这些 MAC 地址分配不同的静态 IP使用 dd-wrt ​​配置。

答案2

这可以通过匹配 DHCP 选项 60“供应商类别标识符”来实现。Microsoft 操作系统将发送以“MSFT”开头的字符串。官方文档也可用。顺便说一句,Windows 8 仍然发送“MSFT 5.0”。

应该可以使用 DNSMASQ(我相信 DD-WRT 使用的是这个)进行检查,如下所示:

dhcp-match=set:windows,60,MSFT

至于发送地址,这有点困难。不幸的是,该dhcp-host选项不是有条件的。dhcp-range但是,该选项是有条件的。因此可以使用不同的地址池。

一般来说,对于这些事情,最好使用功能齐全的 DHCP 服务器,例如 ISC DHCP。

答案3

我建议遵循 Chirag64 的建议,在操作系统上配置静态 IP,而不是使用 DHCP 预留。但是,我发现这个答案在另一个网络上fingerbank.org,用于存储有关设备指纹的信息。Fingerbank 提到数据包防护工具显然可以使用这些设备指纹根据设备类型隔离网络流量。我想可能有一种方法可以配置 dd-wrt ​​以使用 PacketFence 隔离您的流量,所以这可能是值得一看的地方。

相关内容