为什么DHCP服务器需要一个静态IP地址?

我正在尝试使用虚拟机的各种networking设置。 当我在Windows Server上设置DHCPangular色时,它需要一个静态IP。 我无法理解为什么从技术angular度来看这是必要的。

我对DHCP的理解是,客户端在networking上广播DHCP发现请求,并且networking上的任何设备都可以响应。 因此,DHCP服务器需要一个IP地址,但为什么这个IP需要是静态的? DHCP服务器可以在其他地方得到它的地址,并且只要它一个IP就可以响应广播。

例如

  • 服务器A服务器B客户端X都连接到相同的交换机
  • 服务器A是10.0.0.1, 服务器 10.0.0.X / 24
  • 服务器Aconfiguration为只通过MAC过滤将IP提供给服务器B.
  • 服务器B服务器A获得IP,因此它位于10.0.0.X / 24上
  • 服务器B服务于10.0.1.X / 24
  • 客户端X连接并从服务器B获取IP

当然,一旦客户端X服务器B获得IP,它将不能直接联系服务器B ,因为它们位于不同的子网上。 但是这不是问题 – DHCP请求(最初)是广播,所以交换机上的每个人都会收到它。

忽略pipe理的观点,为什么我不能拥有

  • 一个具有静态IP的主DHCP服务器,它只服务于其他DHCP服务器
  • “次要”DHCP服务器的地址范围
  • 客户端的地址范围,从“次要”DHCP服务器获取

是否有一个技术原因,DHCP服务器必须有一个静态IP?

我对DHCP的理解是,客户端在networking上广播 DHCP发现请求,并且networking上的任何设备都可以响应。

客户端也可以单播DHCP请求,更新请求是单播的,所以客户端直接请求DHCP服务器。 如果DHCP改变了他原来的IP地址呢? 续展将失败,下一个请求将在广播中进行。 哪种行为不会优化您的networkingstream量。

微软:

更新租约DHCP客户端首先尝试在原租约时间的50%(即T1)已过时,续订其租约。 此时,DHCP客户端发送单播DHCP请求消息给最初授予其租约的DHCP服务器。 如果服务器可用,并且租约仍然可用,则服务器使用单播DHCPAck消息进行响应,并且续租。

资源

ISC:

Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/eth0/00:0c:29:ac:18:75 Sending on LPF/eth0/00:0c:29:ac:18:75 Sending on Socket/fallback DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 << First request DHCPREQUEST on eth0 to 255.255.255.255 port 67 DHCPOFFER from 10.0.0.253 DHCPACK from 10.0.0.253 bound to 10.0.0.6 -- renewal in 133 seconds. DHCPREQUEST on eth0 to 10.0.0.253 port 67 << Renewal DHCPACK from 10.0.0.253 bound to 10.0.0.6 -- renewal in 119 seconds. DHCPREQUEST on eth0 to 10.0.0.253 port 67 DHCPACK from 10.0.0.253 bound to 10.0.0.6 -- renewal in 118 seconds. 

一旦租约被授予,然而,未来DHCP DHCPREQUEST / RENEWAL消息直接单播到DHCP服务器

资源

DHCP服务器必须具有已configuration的IP地址,以便可以知道哪些范围本地连接到物理接口,哪些范围只能通过DHCP中继提供服务。

忽略pipe理的观点,

我很抱歉,但是我觉得尝试和忽略关于运行你的networking的实际问题是愚蠢的。 在大多数networking上获取有效的IP地址至关重要。 你永远不会希望你的DHCP服务器失败,因为它不能得到自己的有效地址。 软件和协议被devise为在常见的实际情况下工作。 你所描述的似乎创造了多个地方的事情失败,很less或没有真正的收益

如果你真的想拥有某种DHCP服务器的dynamicconfiguration,你应该考虑使用configurationpipe理系统来强制执行DHCP服务器上的设置,而不是试图使用DHCP来configurationDHCP服务器。

从技术上讲,DHCP服务器必须为初始发现数据包后发送的数据包拥有已知的 IP地址。 这个地址在启动时通常需要知道,所以几乎是静态的。 它不(IIRC)必须在同一个子网上,以便DHCP中继工作,但是如果没有到它所分配的子网的路由,它将不能工作。

如果你真的想这样做,你可以使用一个虚拟接口安排一些东西,这样你的物理适配器(服务器B)在你的线路上的两个子网(一个DHCP和另一个静态)上都有IP地址。

像Zoredache我build议你应该坚持使用一个DHCP服务器设置的电线。 大多数DHCP服务器将允许您以各种方式对设备进行分类(例如:部分MAC地址),并将其分配给子网的不同部分。 然后,您将能够为这些小节提供不同的防火墙规则。

安全性没有区别,因为任何客户端都可以在两种情况下设置自己的静态地址。