「DHCP」- Relay,中继

问题描述

DHCP 广泛应用于各种园区网络,实现有线或无线终端的 IP 地址自动配置;

随着网络规模的不断扩大,网络设备不断增多,企业内不同的用户可能分布在不同的网段(而 DHCP 要求 Client、Server 处于同个二层网络)。在正常情况下单台 DHCP Server 无法满足多个网段的地址分配需求。如果还需要通过 DHCP Server 分配 IP 地址,则需要跨网段(二层网络)发送 DHCP 报文;

解决方案

DHCP Relay(DHCP 中继),它是为解决 DHCP Client 和 DHCP Server 不在同个广播域而提出的,提供对 DHCP 广播报文的中继转发功能;

原理简述

DHCP Relay 负责转发 DHCP Server 和 DHCP Client 间的 DHCP 报文,协助 DHCP Server 向 DHCP Client 动态分配网络参数的设备;

DHCP Relay 能够把 DHCP Client 的广播报文“透明地”传送到其它广播域的 DHCP Server 上,同样也能够把 DHCP Server 端的应答报文“透明地”传送到其它广播域的 DHCP Client;

客户端首次接入网络

有中继场景时 DHCP Client 首次接入网络的工作原理:

发现阶段

当 DHCP Relay 接收到 DHCP Client 广播发送的 DHCP DISCOVER 报文后,通过路由转发将 DHCP 报文单播发送到 DHCP Server 或下一跳 DHCP Relay;

当 DHCP Relay 收到 DHCP DISCOVER 报文后,处理规则为:
1)检查 DHCP 报文中的 Hops 字段,如果大于 16,则丢弃 DHCP 报文;否则,将 Hops=Hops+1(表明经过一次 DHCP Relay),并继续下面的操作;
2)检查 DHCP 报文中的 Giaddr 字段。如果是 0,将 Giaddr 字段设置为接收 DHCP DISCOVER 报文的接口 IP 地址。如果不是 0,则不修改该字段,继续下面的操作;
3)将 DHCP 报文的目的 IP 地址改为 DHCP Server 或下一跳 DHCP Relay 的 IP 地址,源地址改为中继连接客户端的接口地址(及 DHCP Relay 的接口地址),通过路由转发将 DHCP 报文单播发送到 DHCP Server 或下一跳中继;

提供阶段

当 DHCP Server 接收到 DHCP DISCOVER 报文后,根据其中的 Giaddr 字段,来选择地址池为 DHCP Client 分配相关网络参数:
1)选择与报文中 Giaddr 字段为同一网段的地址池,并为客户端分配 IP 地址等参数;
2)然后向 Giaddr 字段标识的 DHCP Relay 单播发送 DHCP OFFER 报文;

DHCP Relay 收到 DHCP OFFER 报文后:
1)检查报文中的 Giaddr 字段,如果不是接口的地址,则丢弃该报文;否则,继续下面的操作;
2)DHCP Relay 检查报文的广播标志位:==1,则将 DHCP OFFER 报文广播发送给 DHCP Client;否则将 DHCP OFFER 报文单播发送给 DHCP Client;

选择阶段

中继接收到来自客户端的 DHCP REQUEST 报文的处理过程同“发现阶段”;

确认阶段

中继接收到来自服务器的 DHCP ACK 报文的处理过程同“提供阶段”;

特性说明

WIP

应用场景

DHCP 在大型园区网络中的典型应用

配置案例

Huawei DHCP Relay

设备作为 DHCP 中继时,需要把接收到的 DHCP Client 的 DHCP 请求报文转发给 DHCP Server,以实现 DHCP Server 通过 DHCP 中继为 DHCP Client 分配 IP 地址等网络参数。通过配置此任务,为 DHCP Client 指定 DHCP Server 的 IP 地址,以实现向 DHCP Server 上申请 IP 地址;

设备支持两种配置方法:

直接在 Interface View 下配置:在接口视图下指定 DHCP Server 的 IP 地址;

应用场景:如果仅需要在某个接口下配置 DHCP Relay,或需要在多个接口上配置 DHCP Realy 但是每个接口上对应的 DHCP Server IP 地址不同;

在 DHCP Server Group View 下配置:在系统视图下,创建 DHCP Server Group,然后在 DHCP Server Group 中添加 DHCP Server 成员(即指定 DHCP Server 的 IP 地址),然后在 Interface 下应用 DHCP Server Group 配置;

应用场景:设备作为 DHCP Relay 设备,如果需要在多个接口下配置 DHCP Relay,且每个接口对应相同的 DHCP Server;