我在服务式办公室工作,在这里我无法控制 DHCP 服务器。
我有 3 台以上的机器,在分配 IP 地址后需要使用相同的 IP 地址。我怎样才能“保留”一些 IP 地址给我自己的机器?
假设我启动了虚拟机 A,它发出了 DHCP REQ。我获得了分配给它的 IP abcd。
现在我启动虚拟机 B,它收到 IP efgh。在我关闭这些虚拟机(比 DHCP 刷新间隔长,例如几周)并重新启动它们后,在正常/通常情况下,它们会被分配不同的 IP 地址。
由于我的应用程序的性质,我需要“固定”的 DHCP IP 地址。换句话说,假设 VM A 分配了 IP abcd,VM B 分配了 IP efgh。关闭后,它们的 IP 地址就会消失(假设 VM 未在 DHCP 刷新间隔内重新启动)。我正在寻找一个 DHCP 客户端应用程序,它可以在我其他正常运行的机器上发送带有 VM A MAC 地址的 VM A DHCP REQ,以及带有 VM B Mac 地址的 VM B DHCP REQ。
是否有任何 DHCP 客户端程序(在 Mac OS X 或 Windows 上)可以代表我的(关闭)虚拟机(在我的其他正在运行的机器上)保留/更新地址?
答案1
是否有 DHCP客户可以保留地址的程序(在 Mac OS X 或 Windows 上)?
不会,因为 DHCP 客户端所做的就是询问值。它可以询问“能给我这个 IP 吗,谢谢?”,但 DHCP 客户端无法保证您将获得特定的 IP。
对于固定 IP,您需要:
- 在 DHCP 服务器上保留一个 IP(基于 MAC)。您说这不是一个适合您的选择。
- 或者设置静态IP。
请注意,您可以在单个主机上使用多个 IP。可以使用多个网卡,也可以将多个 IP 分配给同一个 NIC。具体操作取决于您的操作系统。
这是一篇描述如何在 Windows XP 中将多个 IP 分配给单个 NIC,以及在 Windows 7 中执行相同操作的解决方法。
另外两点说明:
- 不确定如何在 OS X 上执行此操作。可能很简单
ifconfig en0 alias some_ip netmask
,而且route add ....
可以。但我没有 OS X 机器可以测试。 - 如果您设置了手动 IP,请确保没有其他任何 IP 被使用。由于您无法控制 DHCP 服务器,因此请选择不同的 IP 范围。例如,如果 DHCP 服务器在 192.168.1.0/24 范围内分配 IP,则使用 192.168。2.0/24 或 172.16.0.0/12。(只要尚未使用,RFC1918 中的任何地址都可以。)
答案2
你可以用不同风格的基本 shell 脚本来超级更新每个系统上的地址,比如这个例子,它在停止蜂鸣驱动程序后每分钟更新一次,如果在启用蜂鸣的情况下尝试这些指令,其必要性就会显而易见
net stop beep
:do
ipconfig /renew
wait 60
got :do
另一种方法,但需要您进行测试,并假设所包含的系统连接到同一个交换机或 vLAN,通常您可以从完全不同的地址方案中分配 IP 地址,但要了解系统不会与网络的其余部分通信,但可以在连接到配置为转发广播的同一个物理交换机或 vLAN 时相互广播。因此在您的情况下,如果系统是物理连接的,请为它们分配不同的 Class-B 或 Class-A 方案或额外的 Class-B / Class-A(如果您的特定操作系统版本允许)。
答案3
一些 DHCP 服务器软件在分配 IP 地址之前会检查网络上是否正在使用 IP(使用 ping/arp 检查),以便您可能设置静态 IP 不会让您成为优秀的“网民”,但如果您造成了问题,您可能会很快注意到。