不同 VLAN 的 DHCP 服务器

不同 VLAN 的 DHCP 服务器

可能重复:
如何动态获取 VLAN 接口的 IP 地址?

我正在设置一个 dhcp 服务器,为不同子网的不同 VLAN 提供 ip 地址。(VLAN100 为 192.168.1.x,VLAN200 为 192.168.2.x,VLAN300 也是如此)我在运行 dhcp 服务器的 ubuntu 机器上的 eth0 上创建了 VLAN 100、200、300。我已将 dhcp 服务器配置为侦听所有虚拟接口 eth0.100 eth0.200 eth0.200。但是当我为接口 eth0.100 运行 dhclient 时,服务器如何识别该数据包来自该特定接口?dhcp 请求数据包是否包含 VLAN id?如果是,dhcp 服务器将如何从该特定子网分配地址。我认为在配置文件中我们应该指定,如果数据包在这个特定的接口上,比如 eth0.100,那么你应该给出来自 192.168.1.x 子网的 IP。

我提到多个 VLAN 的 DHCP 服务器dhcpd.config 文件中没有上述信息。我不明白这一点。DHCP 服务器如何从特定范围分配 IP 地址,因为我认为只有 DHCP 请求数据包的 VLAN ID 才可用于 DHCP 服务器。有人可以解释一下吗?请原谅我的无知,因为我对网络和 Linux 都很陌生。

感谢致敬

维杜

答案1

这被称为(至少在思科谈话中)IP Helper-Address

网络交换机充当 VLAN 上的 DHCP 请求和 DHCP 服务器之间的代理。

网络交换机将用其接收请求的接口的自身地址替换 DHCP 源地址。

然后将其转发到 ip helper-address 中指定的 DHCP 服务器。

由于 DHCP 服务器将看到 DHCP 请求的源地址(即网络交换机内部接口子网),因此它可以从正确的池中分配。

至少在 Windows 中,这只是设置 DHCP 服务器和范围的情况,抱歉,这不是 Linux 特有的,但我认为这只是在 dhcpd 中创建池的问题。

引用手册页对于 dhcpd:

subnet 204.254.239.0 netmask 255.255.255.224 {
  subnet-specific parameters...
  range 204.254.239.10 204.254.239.30;
}

subnet 204.254.239.32 netmask 255.255.255.224 {
  subnet-specific parameters...
  range 204.254.239.42 204.254.239.62;
}

subnet 204.254.239.64 netmask 255.255.255.224 {
  subnet-specific parameters...
  range 204.254.239.74 204.254.239.94;
}

相关内容