用于多个 VLAN 的 DHCP 服务器

用于多个 VLAN 的 DHCP 服务器

可能重复:
一个网络上可以有多个 DHCP 服务器吗?

我想这是一个非常古老的问题。在这个论坛上,它已经得到了回答多个 VLAN、多个子网、单个 DHCP 服务器?.这是使用 Cisco 路由器的 Helper 选项完成的。但就我而言,我们没有使用 Cisco 路由器。

在我的 ubuntu 机器中,我设置了 3 个 VLAN,ID 分别为 3、4、5。我想通过 dhcp 服务器为它们提供 IP 地址。但我对这个概念以及实现方式有疑问。通常,dhcp 服务器将配置一个接口(比如 eth0),其特定的 IP 地址比如为 192.168.0.100。因此,如果客户端需要 IP,它将向该服务器发送 dhcp 请求,并且服务器也会识别出该请求来自该子网,并从同一子网提供适当的 IP。(比如 192.168.0.20)

但是如果有多个 VLAN 接口并请求 IP 地址,服务器将如何区分 dhcp 请求来自这个特定的 VLAN 并提供来自相应子网范围的 IP。

我听说我们应该在 dhcp 服务器上创建 VLAN。有人可以解释一下方法、概念以及实施吗?

答案1

如果您的 Linux 路由器具有到带有标记 Vlan 的交换机的中继接口,那么您可以毫无问题地完成此操作。

首先在 /etc/network/interfaces 中定义每个 vlan,例如:

auto eth0.200
iface eth0.200 inet static
 address 10.0.1.1
 netmask 255.255.255.0


iface eth0.201 inet6 static
 address 10.0.2.1
 netmask 255.255.255.0


iface eth0.202 inet6 static
 address 10.0.3.1
 netmask 255.255.255.0

然后通过编辑 /etc/default/isc-dhcp-server [或 dhcpd] 并将变量 INTERFACES 更改为“eth0.200 eth0.201 eth0.202”来告诉 dhcp 守护进程监听部分/全部子网

并将单独的子网添加到 /etc/dhcp/dhcpd.conf

subnet 10.0.1.0 netmask 255.255.255.0 {
  range 10.0.1.10 10.0.1.20;
  # you might point some other address 
  # within that subnet that should be advertised as router
  # it does not have to be your linux box
  option routers 10.0.1.1;
  option broadcast-address 10.0.1.255;
  authoritative;
}

对于其余子网也是如此。

答案2

要在您的服务器上创建多个 VLAN,您需要一个启用 802.1q(Cisco 术语中的 VLAN 标记或中继)的交换机或多个物理接口。DHCP 服务器将在每个接口上监听请求。您可以为每个接口定义分布式地址。

客户端连接到一个 VLAN,然后广播 IP 请求。您的服务器接收请求,然后响应此 VLAN 定义的范围。

您有支持 802.1q 的交换机吗?或者您的服务器上有多个接口吗?

答案3

如果你的路由器是 Linux 系统,那么你需要安装 DHCP 中继。最常见的是 ISC 包isc-dhcp-relay

安装后,您必须为其提供将中继 DHCP 的每个接口的列表,并且必须提供 DHCP 服务器的 IP 地址。配置文件为/etc/default/isc-dhcp-relay

该软件包的名称在过去几年中已经更改过一次,因此如果您运行的是旧版本的 Ubuntu,该软件包的名称可能会有所不同。

相关内容