如何dynamic获取VLAN接口的IP地址?

我有一个Ubuntu机器,我已经创build了四个VLAN,即eth0.100eth0.200eth0.300eth0.400 。 我想dynamic获取使用DHCP服务器的IP地址。 它应该提供来自不同IP地址范围的IP,

 for VLAN interface eth0.100,--> 192.168.0.20 - 192.168.0.40 for VLAN interface eth0.200 --> 192.168.0.50 - 192.168.0.70 for eth0.300 and eth0.400 --> likewise 

我怎样才能实现呢? 我将如何读取请求IP地址的接口的VLAN ID? 我将如何将有关客户端上运行的VLAN的信息传送给DHCP服务器?

我想我也应该在DHCP服务器上创buildVLAN接口。 如果我这样做,我将如何让DHCP服务器知道VLAN的存在?

我困在这。 我应该如何继续?

VLAN是第2层function,而IP / DHCP是第3层,我只是想说清楚,但在这种情况下,他们有很多相互之间的关系。

基本上所有你需要做的是确保你的L2 / 3交换机/路由器被configuration为允许你的DHCP服务器不仅可以路由到所有的VLAN,还可以提供一个“DHCP Helper”服务,这样所有VLAN中的所有客户端当他们发出DHCP请求时。 在Cisco L2 / 3设备上,“dhcp helper”命令对此进行configuration。

一旦到位,任何VLAN中的任何一台机器都可以通过DHCP请求一个地址,并将请求正确地路由到DHCP服务器,如果configuration正确,将返回一个合适的地址。

它的方式是这样的(这是更多的未来参考其他人是诚实的);

  1. 客户端发送一个自己的DHCP广播作为0.0.0.0到255.255.255.255(或任何给定的网pipe)包含其MAC地址要求一个IP。
  2. 您的L2 / 3交换机/路由器(如果configuration为充当DHCP Helper),则查看广播进入的接口,检查其DHCP帮助程序列表以找出发送请求的位置,然后将其发送到该DHCP服务器,但是这次是一个单播消息,包含它自己的每个网段/ VLAN网关的 IP地址(即客户端可能要经过的DG),但是保留客户端机器的MAC,这样客户端特定的设置(如预留等)可以被DHCP服务器。 它这样做是为了让DHCP服务器知道哪个networking发送一个地址,以及如何将其返回到L2 / 3交换机/路由器。
  3. DHCP服务器从L2 / 3交换机/路由器获取这个单播请求,发现它来自某个网​​络,如果它有一个为此定义的范围,并且有一个自由的或保留的(因为它知道客户端的MAC)通过单播(它知道它的IP记住)发送一个发布的IP到L2 / 3交换机/路由器 – 以及任何特定于客户端的设置。
  4. L2 / 3交换机/路由器接收来自DHCP服务器的响应,并通过将IP地址更改为客户端的IP地址将其传递到客户端 – 这将包括任何特定于客户端的设置。

明白了吗?

其中的关键在于DHCP服务器根本不需要了解任何有关L2networking/ VLAN的知识,只需要了解L3networking和匹配范围即可。

你的networking本质上似乎没有什么特点。 这将使路由难以处理。 如果你想为你的整个networking使用一个/ 24,并把它分成4个VLANnetworking,那么每个networking都应该是一个/ 26。

这意味着你的networking看起来像这样。

  • vlan 100 192.168.0.0/26
  • vlan 200 192.168.0.64/26
  • vlan 300 192.168.0.128/26
  • vlan 400 192.168.0.192/26

对于DHCP服务器,您也需要在每个vlan上都有接口。 连接到这两台服务器的交换机上的端口必须是中继端口。 至于设置DHCP服务器以使用不同的接口,我们需要知道你计划使用哪种操作系统和DHCP服务器来帮助你解决这个问题。 但一般情况下,如果每个DHCPD侦听的接口在给定的networking中都有一个IP地址,它将从与该networking关联的池中返回一个IP地址。