D-Link DGS-1210 DHCP 中继选项 82

D-Link DGS-1210 DHCP 中继选项 82

我在 DGS-1210-10 交换机上使用 DHCP 中继(选项 82)时遇到问题。配置如下:

  • 端口 1-8 未标记 VLAN 80(这也是 PVID),端口 9 和 10 标记有 VLAN 80 和 99(其中 99 是我的管理 VLAN)

  • 交换机在 VLAN 99(管理)上有一个静态 IP。

  • 客户端连接到端口 1-8。

我希望交换机在 DHCP 消息中插入 DHCP 中继代理信息选项(选项 82)以便识别端口。

我已经在其他交换机上完成了此操作,但无法在 D-Link DGS-1210 上工作

这是我尝试过的:

  1. 启用 DHCP 中继状态DHCP 中继->DHCP 中继全局设置(仅此而已)。DHCP 中继代理信息未插入,并且交换机似乎什么也不做。

  2. 启用 DHCP 本地中继状态并通过 VID 80 配置 VLAN。DHCP 中继代理信息已插入,但交换机丢弃了来自 DHCP 服务器的回复。客户端无法看到回复并继续发送发现消息。

  3. 在 DHCP 中继接口设置下,我可以设置 DHCP 服务器,但 DHCP 消息会从另一个接口进入。我可以配置 DHCP 服务器来监听两个接口,但随后我收到警告Multiple interfaces match the same shared network: eth0 eth1。eth1 是错误的接口。我需要 DHCP 服务器来监听 eth0。

我的问题是:有没有办法配置 DGS-1210 以简单地在 DHCP 消息中插入 DHCP 中继代理信息(选项 82)?我没有选择。我可能应该再买一个交换机。

无法为交换机提供 DHCP 子网中的 IP。

编辑:我想指出几点。

1) 我同意 DHCP 中继代理对于 DHCP 工作来说不是必需的。毕竟我的 DHCP 服务器与客户端位于同一子网(广播域)上。

2) 我不同意 DHCP 代理不能在第 2 层交换机上运行,​​尽管我同意没有必要。但是可以做到,我的 DGS-1210 做到了。我可以使用 tcpdump 之类的数据包嗅探器查看 DHCP 中继代理信息。


编辑:

考虑以下场景:

我希望我的 DHCP 服务器根据客户端所连接的端口为客户端分配 IP 地址。如果客户端在端口 1 上,我希望它的 IP 为 192.168.0.1,连接到端口 2 的客户端应获得 192.168.0.2,依此类推。现在我们需要来自交换机的信息。这可以通过 SNMP 完成,但速度可能很慢。那么如果 DHCP DISCOVER 消息包含端口会怎样?是的,这就是选项 82 发挥作用的地方。电路 ID 可以包含端口。这就是交换机所做的。交换机将选项 82 插入 DHCP 消息中并将消息转发到 DHCP 服务器。

答案1

回答我自己的问题。在尝试了所有方法后,我认为唯一可行的方法是让交换机在其管理 VLAN 上转发 DHCP 消息。这是我最初问题中的选项 3。

在 DHCP 中继接口设置下,我可以设置 DHCP 服务器,但 DHCP 消息会从另一个接口进入。我可以配置 DHCP 服务器来侦听两个接口,但随后我收到警告:多个接口匹配同一个共享网络:eth0 eth1。eth1 是错误的接口。我需要 DHCP 服务器来侦听 eth0。

尽管这是第 2 层交换机,但代理电路 ID 和代理远程 ID 的插入按预期完成,没有任何问题。它可能在某处隐藏了一些第 3 层功能。:-)

DHCP 服务器一切正常,除了警告Multiple interfaces match the same shared network。是的,DHCP 服务器是正确的;同一个共享网络上有多个接口,但就是这样...

解决这个问题的方法是连接两个接口,但只要它能起作用我就没问题。

请注意:这个问题是关于 D-Link DGS-1210 系列交换机的,而不是如何使用(或不使用)DHCP 中继代理。DGS-1210 能够充当 DHCP 中继代理。这可以从 Web 界面进行配置。手册中也有记录。

答案2

根据您的评论,我认为您误解了 DHCP 中继代理和 DHCP 选项 82。我将在下面解释这一点。

您需要了解第 2 层(MAC)地址和第 3 层(IP)地址之间的区别以及它们的使用方式。

第 2 层地址用于在 LAN 上传递框架从 LAN 上的一台主机直接发送到 LAN 上的另一台主机。第 2 层帧具有源和目标第 2 层 (MAC) 地址。发送到同一 LAN 上的主机的主机将使用目标主机的第 2 层 (MAC) 地址作为目标第 2 层 (MAC) 地址,第 2 层协议(以太网)将直接将帧传送到目标主机。发送框架从一个 LAN 到另一个 LAN 将使用其配置的网关(路由器)的 2 层 (MAC) 地址作为目标 2 层 (MAC) 地址。发送主机对以太网如何执行此操作一无所知(通过直接连接、交换机、集线器或其他任何方式);它只知道它发送框架其接口。这意味着主机不知道 LAN 上的任何交换机或交换机端口。

第 2 层(MAC)有一个特殊的广播地址(ff-ff-ff-ff-ff-ff),这意味着框架具有该地址的数据包将传送到 LAN 上的所有主机。DHCP 请求使用该广播地址作为目标第 2 层 (MAC) 地址,因此 LAN 上的每个主机(包括 DHCP 服务器)都将收到它。第 2 层框架仅存在于它们所发起的 LAN 上(如下所述),因此这对广播(包括 DHCP 请求)来说是一个问题,因为它们无法从一个 LAN 发送到另一个 LAN。这就是创建 DHCP 中继代理和 DHCP Option 82 的原因。

第 3 层地址用于传递数据包从一个 LAN 到另一个 LAN,它们具有第 3 层 (IP) 源地址和目标地址。当路由器收到第 2 层框架有了第 2 层(MAC)地址,它将剥离并丢弃第 2 层框架,包括第 2 层 (MAC) 地址,以公开第 3 层路由器将查看第 3 层 (IP) 目标地址并将其与路由表中的目标网络进行比较。如果发现第 3 层 (IP) 地址与路由表中的某个网络匹配,它将发送到下一个接口,它将构建一个新的第 2 层框架对于新接口的协议,可能会使用或不会使用 MAC 地址,但新的第 2 层框架将用于新接口;所有以前的第 2 层框架信息被丢弃。

当主机发送 DHCP 请求时,它将被发送到网络中的第 2 层 (MAC) 广播地址框架以及第 3 层 (IP) 广播地址(255.255.255.255,不允许路由)。如果 DHCP 服务器与请求主机位于同一 LAN 上,则此方法可行,因为 DHCP 服务器会收到请求。然后,DHCP 服务器会将 DHCP Offer 发送回请求主机。根据 DHCP 服务器的配置方式,它可以将其发送到第 2 层 (MAC) 广播地址或第 2 层 (MAC) 主机地址,因为它从第 2 层 DHCP 请求中了解到了这一点框架。如果 DHCP 服务器和请求主机位于同一 LAN 上,此方法同样有效。无需特殊的 DHCP 选项。

当 DHCP 服务器和请求主机位于不同的 LAN 上时,就会出现问题。DHCP 会失效,因为它们无法相互广播,并且请求主机的第 2 层 (MAC) 地址在 DHCP 服务器的 LAN 上无效。事实上,请求主机的第 2 层 (MAC) 地址将在第一个路由器上被剥离。

为了解决这个问题,创建了 DHCP 中继代理。DHCP 中继代理配置在路由器的 LAN 接口上。路由器将接收 DHCP 请求,因为它被发送到第 2 层 (MAC) 广播地址。DHCP 中继代理配置了一个或多个 DHCP 服务器的第 3 层 (IP) 地址。这是因为 DHCP 服务器位于其他 LAN 上。DHCP 中继代理将接收广播的 DHCP 请求并将其打包成第 3 层并将其发送到DHCP服务器所在的LAN。

当 DHCP 服务器需要发回 DHCP 请求时,就会出现下一个问题。它通常会将其发送到第 2 层 (MAC) 广播地址,或 DHCP 请求中看到的第 2 层 (MAC) 源地址框架在 DHCP 服务器的 LAN 上,但请求主机不在那里。这不会起作用,因为请求主机位于不同的 LAN 上。这就是 DHCP 选项 82 发挥作用的地方。

DHCP Option 82 允许 DHCP 中继代理通知 DHCP 服务器将 DHCP Offer 发回给它,而不是像平常一样尝试在 DHCP 服务器所在的 LAN 上传递它。这就是您在评论中提到的电路。

如您所见,当 DHCP 服务器和请求主机都位于同一 LAN 上时,DHCP 工作良好,在这种情况下,DHCP 不需要 DHCP 中继代理或 DHCP Option 82。DHCP 中继代理和 DHCP Option 82 后来被添加到 DHCP 中,作为一种将 DHCP 服务器集中在与请求主机所在的 LAN 不同的 LAN 上的方法。当 DHCP 服务器和请求主机都位于同一 LAN 上时,使用 DHCP 中继代理和 DHCP Option 82 是没有意义的,它们实际上为 DHCP 过程增加了不必要的复杂性,但当 DHCP 服务器和请求主机位于不同的 LAN 上时,它们是必不可少的。


编辑:

考虑以下场景:

我希望我的 DHCP 服务器根据客户端所连接的端口为客户端分配 IP 地址。如果客户端在端口 1 上,我希望它的 IP 为 192.168.0.1,连接到端口 2 的客户端应获得 192.168.0.2,依此类推。现在我们需要来自交换机的信息。这可以通过 SNMP 完成,但速度可能很慢。那么如果 DHCP DISCOVER 消息包含端口会怎样?是的,这就是选项 82 发挥作用的地方。电路 ID 可以包含端口。这就是交换机所做的。交换机将选项 82 插入 DHCP 消息中并将消息转发到 DHCP 服务器。

正如我在评论中解释的那样,交换机是一种透明设备,DHCP 服务器和连接到交换机的主机都不知道交换机或交换机端口。 DHCP 服务器的工作方式并非如此,DHCP 的分配方式也并非如您所愿,如果您在主机的 DHCP 租约期内将其从一个交换机端口移动到另一个交换机端口,它仍将获得相同的 IP 地址,因为它基于其 MAC 地址。

DHCP 使用范围作为池,从中选择 IP 地址分配给 MAC 地址。由于 DHCP 服务器和主机甚至不知道是否使用交换机,因此您无法让 DHCP 使用您想要的方法分配地址。

如果您想知道哪个 IP 地址分配给哪个交换机端口,您可以通过比较 DHCP MAC/IP 地址分配(告诉您哪个 IP 地址分配给哪个 MAC 地址)和交换机的 MAC 地址表(告诉您 MAC 地址连接到哪个交换机端口)来找到该信息。

相关内容