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

use*_*683 3 networking dhcp linux ethernet vlan

我有一台 Ubuntu 机器,我在上面创建了四个 VLAN,分别eth0.100eth0.200eth0.300eth0.400。我想使用 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
Run Code Online (Sandbox Code Playgroud)

我该如何实施?如何读取请求 IP 地址的接口的 VLAN ID?我将如何将有关客户端上运行的 VLAN 的信息传送到 DHCP 服务器?

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

我被困在这个。我应该如何进行?

Cho*_*er3 10

VLAN 是第 2 层功能,而 IP/DHCP 是第 3 层功能,我只是想说清楚,但在这种情况下它们彼此有很多关系。

基本上,您真正需要做的就是确保您的 L2/3 交换机/路由器配置为允许您的 DHCP 服务器不仅路由到/从所有 VLAN 路由,而且提供“DHCP 帮助程序”服务,以便所有 VLAN 中的所有客户端都可以参考当他们发出 DHCP 请求时。在 Cisco L2/3 设备上,“dhcp helper”命令对此进行配置。

一旦这到位,任何 VLAN 上的任何机器都可以通过 DHCP 请求地址,并且请求将正确路由到 DHCP 服务器,如果配置正确,将返回适当的地址。

它的做法是这样的(老实说,这更多是为了将来供其他人参考);

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

明白了吗?

这样做的主要的一点是,DHCP服务器并不需要知道任何关于L2网络/在所有的VLAN -只是在L3网络和匹配范围。