DHCP 中继代理

DHCP 中继代理

因此,中继代理似乎具有属于子网的内部 IP。中继代理也在路由器上。我认为它也可以位于交换机上,这支持了我的理论,即 DHCP 代理严格在后面閣門。

DHCP 中继代理接收 PC 广播的 DHCP Discover 和 Request 消息,并将它们直接单播到 DHCP 服务器。

有很多这样的来源(参见https://www.netmanias.com/en/post/techdocs/6000/dhcp-network-protocol/understanding-dhcp-relay-agents)谈论中继代理就好像它是在网关的前面,或者是代替网关使用的。

据我了解,中继代理会检测源 IP 为 0.0.0.0 的数据包,将其替换为中继代理的源 IP,并将目标 IP 替换为 DHCP 服务器进而将其传递到网关上的出口队列。由于网关和主机应位于同一子网(与图 2 不同),因此网关可以保持中继代理的源 IP 不变并添加其 MAC 地址。当 DHCP 服务器将提供发回中继 IP 时,网关应该会接收它,因为它位于同一子网中。我不知道为什么图 2 显示源 IP 更改为网关的 IP,而其实并不需要,因为存根域中的所有网关都使用 RFC 1918 地址,因此没有 NAT。

如果我有任何误解,有人可以证实这一点吗?

答案1

为什么图 2 显示源 IP 更改为网关的 IP

图 2 实际上将源 IP 更改为中继代理的碰巧它也是一个门户。

中继代理所做的不是 IP 层 NAT,而是应用层代理DHCP 中继代理的工作并不是简单地在 IP 级别转发数据包(就像路由器那样),而是实际接收和处理这些数据包,然后向另一端生成新的数据包。

(就此而言,DHCP一般来说完全独立于 IP 路由/网关。任何连接到子网的设备都可以充当 DHCP 服务器或中继代理。

因此,由于两个数据包(原始数据包和代理数据包)完全独立,并且所描绘的中继代理实际上是具有多个接口的网关,因此用于选择 IP“源地址”字段的算法与 DHCP“中继代理”字段不同。

DHCP“中继代理”字段始终是属于以下接口的地址:已收到原始1a发现或3a请求。这允许单个设备同时充当多个子网的中继代理 - 每个本地接口使用不同的“代理地址”。

但是,IP“源地址”字段与 DHCP 无关。就 IP 堆栈而言,1b或者3b说是新的中继代理想要发送的 UDP 数据报。因此,在确定路由后,IP 源地址选择算法通常会选择属于传出接口的地址。这和其他任何地址一样好。

(对于 IPv4,它也很可能依赖于实现。但您说得对,只要 DHCP 服务器知道将答复传递到哪里,任何一个地址都可以工作。)

相关内容