Dell Networking SONiC:动态主机配置协议 (DHCP) 中继
Summary: 本文介绍 Dell Networking SONiC 中的动态主机配置协议 (DHCP)。本文使用运行 Dell SONiC 4.1 的交换机。
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
|
前提条件
标准接口命名用于演示概念。请参阅戴尔文章 202172 Dell Networking S 系列:基本接口配置 - SONiC 4.0 ,了解有关接口命名的更多信息 |
指数
介绍DHCP 中继
MC-LAG 设置
中的 DHCPDHCP 中继信息选项
跳数限制
源接口选择
通过 IPv6 的 DHCP 中继下一跳
VRF
之间的 DHCP 中继虚拟子网选择子选项
VXLAN 部署
中的 DHCP 中继DHCP 中继和静态任意广播网关
使用中继代理选项
处理 DHCPv4 数据包服务器标识符覆盖子选项
可 伸缩 性
DHCP 中继显示命令
简介
动态主机配置协议 (DHCP) 是一种网络协议,可简化向网络设备分配 IP 地址和其他信息。此外,IP 地址、DHCP 还分配子网掩码、默认网关地址、域名服务器 (DNS) 地址和其他配置参数。Enterprise SONiC 支持 DHCP 中继。本部分提供有关 DHCP 中继的概述和配置信息。DHCP 中继
DHCP 中继是指在不同子网之间的 DHCP 客户端和 DHCP 服务器之间转发 DHCP 数据包的任何设备。您可以将交换机配置为在网络中用作 DHCP 中继。当 DHCP 客户端从 DHCP 服务器请求 IP 地址时,客户端不知道它将属于的子网。当客户端连接到网络时,它会以广播方式发送 DHCP DISCOVER 消息。如果 DHCP 服务器驻留在同一 LAN 或 VLAN 中,则服务器会将 IP 地址直接分配给客户端。
如果 DHCP 服务器驻留在不同的广播域中,则网络中的路由器默认情况下不会转发来自客户端的 DHCP DISCOVER 消息。如果您在网络中将设备配置为 DHCP 中继代理,则中继代理可以接收 DHCP DISCOVER 广播消息,并代表 DHCP 客户端向 DHCP 服务器发送单播请求。
DHCP 中继代理使 DHCP 客户端能够从 DHCP 服务器接收 IP 地址,即使服务器位于不同的网络或 VLAN 中也是如此。
DHCP 中继操作:
在图 1 中,DHCP 客户端连接到属于 VLAN 10 的中继设备的接口。DHCP 服务器 1 和 DHCP 服务器 2 分别连接到 VLAN 20 和 VLAN 30。在设备上配置 DHCP 中继时,它会将 DHCP 请求转发到相应的 DHCP 服务器,并将来自服务器的回复转发给客户端。
图 1:DHCP 拓扑示例
- 在计划用于中继的接口上启用 DHCP 中继:
sonic(conf-if)# ip dhcp-relay dhcp-server-ip-address vrf vrf-name
输入服务器地址。最多可以添加四个地址:
dhcp-server-ip-address(可选)输入 VRF 名称:
vrf-name
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# interface Vlan 100 DELLSONiC(config-if-Vlan100)# ip dhcp-relay 10.10.200.12
DELLSONiC(config-if-Vlan100)# show configuration ! interface Vlan100 ip address 10.10.100.1/24 ip dhcp-relay 10.10.200.12 DELLSONiC(config-if-Vlan100)#
MC-LAG 设置中的 DHCP 中继
在 MC-LAG 设置中,DHCP 客户端向任一 MC-LAG 对等节点发送 DHCP DISCOVER 数据包。当其中一个对等方收到数据包时,它会将数据包中继到 DHCP 服务器。当 DHCP 服务器发送响应时,转发 DHCP DISCOVER 数据包的同一 MC-LAG 对等节点会将回复从服务器中继到客户端。MC-LAG 的配置原则:
- 在 MC-LAG 对等交换机上配置相同的 DHCP 服务器。
- 配置 DHCP 中继以使用链路选择和源接口选项。此配置可确保转发 DHCP 数据包的交换机接收来自服务器的响应。
- 确保可从两个 MC-LAG 对等节点访问 DHCP 服务器。
图 2:MC-LAG 中的 DHCP 中继
DHCP 中继信息选项
在涉及单个路由的网络中,DHCP 中继使用在中继数据包的 giaddr 字段中找到的网关 IP 地址将 IP 地址分配给 DHCP 客户端。流氓行为者可以欺骗 DHCP 请求以获得对网络的未经授权的访问权限。为防止流氓设备访问网络,网络管理员可能会将客户端 DHCP 服务器置于不同的网络中。您可以使用 DHCP 中继信息选项或 DHCP 选项 82 明确指定 DHCP 客户端所在的子网。中继代理将子选项添加到数据包以指定客户端子网,并且 DHCP 服务器使用子选项值(而不是 giaddr)来分配 DHCP 地址和租赁。
提醒:链路选择子选项仅适用于 DHCPv4 客户端,不适用于 DHCPv6 客户端。
下图 3 说明了 DHCP 中继链路选择的工作原理。
- DHCP 客户端发送 DHCP 请求。
- 中继代理接收广播数据包,并使用 192.168.0.1 地址添加链路选择子选项。
- 中继代理基于配置的源接口设置 giaddr 字段。如果源接口配置为环回 0,则 giaddr 设置为 103.103.103.103。必须可从服务器访问 giaddr。
- DHCP 服务器从链路选择选项中标识客户端子网,并从 192.168.0.x 地址池分配地址。服务器生成服务数据包并将其发送到 giaddr 中指定的 IP 地址。
图 3:DHCP 中继
跳数限制
DHCP 客户端通常将 DHCP 数据包中的跳计数字段设置为 0。转发 DHCP 数据包时,中继代理会将跳计数增大 1。如果 DHCP 数据包中的跳数大于或等于在中继代理上配置的最大跳数,则设备会丢弃数据包。跳限制可确保 DHCP 数据包不会在存在多个中继代理的网络中循环。最大跳数的默认值为 10,您可以将其配置为从 1 到 16 的值。
跳限制配置为每个接口(面向客户端),并适用于 DHCPv4 和 DHCPv6 数据包。仅对中继到服务器的数据包强制实施跳限制。它不适用于从服务器接收的响应数据包。维护接口计数器以跟踪由于跃点限制而丢弃的数据包数。
- 设置最大跳限制。(可选):
sonic(conf-if-Vlan100)# ip dhcp-relay max-hop-count hop-count
指定跃点计数。范围为 0 到 16。默认值为 10:
hop-count
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# interface Vlan 100 DELLSONiC(config-if-Vlan100)# ip dhcp-relay max-hop-count 15
DELLSONiC(config-if-Vlan100)# show configuration ! interface Vlan100 ip address 10.10.100.1/24 ip dhcp-relay 10.10.200.12 ip dhcp-relay max-hop-count 15 DELLSONiC(config-if-Vlan100)#
源接口选择
DHCP 中继提供源接口配置选项,用于指定用于中继数据包的源地址。如果不指定源接口,则会根据传出接口自动确定中继数据包中的源 IP 地址。系统选择接口上配置的第一个地址(IPv4 或 IPv6),该地址与目标地址或下一跳路由器位于同一网络中。源接口配置选项是面向客户端的每个接口,适用于 DHCPv4 和 DHCPv6 数据包。如果配置的源接口没有任何 IP 地址,则根据传出接口确定中继数据包中的源 IP 地址。如果修改源接口上的地址,则中继代理将使用更新的 IP 地址来中继数据包。
如果链路选择子选项已启用,请配置可从服务器访问的源接口。如果不配置源接口,则链路选择子选项不会添加到中继的数据包中。
- 在接口上输入源接口选择:
提醒:接口以本机接口格式保存。
sonic(conf-if)# ip dhcp-relay source-interface interface
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# interface Vlan 100 DELLSONiC(config-if-Vlan100)# ip dhcp-relay source-interface Eth 1/10
DELLSONiC(config-if-Vlan100)# show configuration ! interface Vlan100 ip address 10.10.100.1/24 ip dhcp-relay 10.10.200.12 ip dhcp-relay source-interface Ethernet36 ip dhcp-relay max-hop-count 15 DELLSONiC(config-if-Vlan100)#
IPv6 下一跳上的 DHCP 中继
在数据中心网络部署中,如下图 4 所示,可通过 IPv6 底层网络访问 DHCP 服务器。在分支 1 交换机上启用 DHCP 中继,该交换机与主干 1 具有 BGP 邻居关系。DHCP 服务器连接到分支 2 交换机,该交换机还与主干 1 具有 BGP 邻居关系。
图 4:IPv6 下一跳上的 DHCP 中继
分支和主干交换机之间的接口没有 IPv4 地址,但它们已启用以使用链路本地地址进行 IPv6 转发。使用 IPv6 链路本地地址建立分支和主干交换机之间的 BGP 对等。BGP 支持 RFC 5549,这允许在 IPv6 下一跳上承载 IPv4 前缀。
在分支 1 上,通过 BGP 学习到 DHCP 服务器的 IPv4 路由,并指示主干 1 的链路本地下一跳地址。主干 1 还具有 IPv4 路由,指示分支 2 的链路本地下一跳地址。
以下说明 DHCP 中继如何通过 IPv6 下一跳工作:
- DHCP 客户端生成请求。
- 分支 1 上的中继代理配置为使用环回 0 作为源接口。中继代理将 giaddr 和源 IPv4 地址设置为 103.103.103.103,并根据 BGP RFC 5549 路由将请求转发到 IP 地址为 172.16.0.2 的 DHCP 服务器。
- 分支 2 接收来自主干 1 的中继 DHCP 请求,并将其转发到直接连接的 DHCP 服务器。
- DHCP 服务器接收中继的 DHCP 请求,生成服务数据包,并将其发送到 giaddr 中指定的 IP 地址,即分支 1 回路地址 103.103.103.103。
- 分支 2 具有 BGP RFC5549路由,以到达分支 1 的环回地址,即 103.103.103.130。DHCP 服务将根据 BGP 路由转发给中继代理。
- 分支 1 从 DHCP 服务器接收响应,条带选项 82,并将其转发到客户端。
- 在计划用于中继的接口上启用 DHCP 中继:
sonic(conf-if)# ipv6 dhcp-relay dhcp-server-ipv6-address vrf vrf-name
输入服务器 IPv6 地址。最多可以添加四个地址:
dhcp-server-ipv6-address(可选)输入 VRF 名称:
vrf vrf-name
- 在接口上输入源接口选择:
sonic(conf-if)# ipv6 dhcp-relay source-interface interface
- (可选)设置最大跳限制:
sonic(conf-if-Vlan100)# ipv6 dhcp-relay max-hop-count hop-count
指定跃点计数。范围为 1 到 16。默认值为 10:
hop-count
- (可选)指定如何处理来自另一个中继代理的 DHCP 中继数据包:
sonic(conf-if)# ip dhcp-relay policy-action [discard | append | replace]
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# interface Vlan 100 DELLSONiC(config-if-Vlan100)# ipv6 dhcp-relay 2001:db8:4444::7777
DELLSONiC(config-if-Vlan100)# show configuration ! interface Vlan100 ip address 10.10.100.1/24 ipv6 address 2001:db8:3333::7777/80 ipv6 dhcp-relay 2001:db8:4444::7777 DELLSONiC(config-if-Vlan100)#
VRF 之间的 DHCP 中继
DHCP 中继代理支持将客户端请求转发到位于其他 VRF 中的服务器。例如,客户端连接到绑定到默认 VRF 的接口,并且服务器可以驻留在用户 VRF 中。对于此类部署,您可以配置一个选项来指定 DHCP 服务器所在的 VRF 名称。如果不指定 VRF 名称,系统将假定 DHCP 服务器驻留在默认 VRF 中。DHCP 中继支持为给定客户端接口配置多个 DHCP 服务器,并且所有这些 DHCP 服务器必须驻留在同一 VRF 中。每个面向客户端的接口只能配置一个服务器 VRF。
提醒:客户端 VRF 源自配置中继的接口。
如果您使用的是 DHCPv4 中继,则必须在客户端和服务器处于不同的 VRF 时启用链路选择。链路选择子选项必须使用绑定到服务器 VRF 的接口。需要此配置以确保 DHCPv4 中继接收来自服务器的响应。如果客户端和服务器处于相同的 VRF 中,则无需配置链路选择,因为 giaddr 也位于服务器 VRF 中。
- 在计划用于中继的接口上启用 DHCP 中继:
sonic(conf-if)# ip dhcp-relay dhcp-server-ip-address vrf vrf-name
输入服务器地址。最多可以添加四个地址:
dhcp-server-ip-address(可选)输入 VRF 名称:
vrf-name
- (可选)在接口上启用链路选择子选项:
sonic(conf-if)# ip dhcp-relay link-select
- (可选)要在发送到 DHCP 服务器的 DHCP 数据包中添加 VRF 信息,请指定 VRF-select 选项:
sonic(conf-if)# ip dhcp-relay vrf-select
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# interface Vlan 100 DELLSONiC(config-if-Vlan100)# ip dhcp-relay 10.10.200.12 vrf Customer1
DELLSONiC(config-if-Vlan100)# show configuration ! interface Vlan100 ip address 10.10.100.1/24 ip dhcp-relay 10.10.200.12 vrf Customer1 DELLSONiC(config-if-Vlan100)#
虚拟子网选择子选项
DHCP 中继在共享重叠 IP 地址的不同 VRF 上支持多个客户端。在此类 VRF 部署中,DHCP 服务器必须了解客户端的 VRF,以便根据该 VRF 完成地址分配。要提供 VRF 信息,DHCP 中继包括 DHCPv4 的子选项 151 和 RFC 6607 中定义的 DHCPv6 的子选项 68。虚拟子网选择子选项(类型 0)承载在客户端连接到的传入接口上配置的 ASCII VRFNAME。如果传入接口处于默认 VRF 中,则子选项不会添加到中继数据包中。
为确保互操作性,仅当 DHCP 服务器支持基于 VRF 的地址分配时,才启用虚拟子网选择子选项。某些服务器可能无法识别子选项,并且可能仍会在默认 VRF 空间中分配租赁。DHCP 中继不会丢弃来自服务器的这些回复。
在下图 5 中,DHCP 客户端 1 和 DHCP 客户端 2 使用相同的地址空间。如果在 DHCP 中继交换机上配置虚拟子网选择子选项,则中继设备在将数据包发送到 DHCP 服务器时包括子选项。
图 5:虚拟子网选择子选项
VXLAN 部署中的 DHCP 中继
您可以在 VXLAN BGP EVPN 部署中配置 DHCP 中继,以向 EVPN 客户端或虚拟机提供 DHCP 服务。下图 6 显示了 VXLAN 网络中的典型部署。客户端和服务器可以位于相同或不同的 VRF 域中。
图 6:VXLAN 部署中的 DHCP 中继
以下说明 VXLAN 部署中 DHCP 中继的功能:
- DHCP 客户端连接到 VLAN 10 上的 VTEP1,VLAN 10 绑定到 VrfRed。
- 在 VTEP1 for VLAN 10 上启用 DHCP 中继。
- DHCP 服务器位于 VTEP2 上,并连接到 VLAN 20,VLAN 20 绑定到 VrfRed。
- VTEP1 有 BGP EVPN type-5 路由到 DHCP 服务器 172.16.0.1,指示 VXLAN 隧道下一跳。
- DHCP 中继将传入数据包转发到 172.16.0.1,giaddr 设置为 192.168.0.1。中继不知道 VxLAN 隧道。
- VTEP1 添加基础第 2 层隧道标头并将数据包转发到目标 VTEP2。
- VTEP2 删除底层第 2 层和隧道标头,并将 DHCP 数据包转发到服务器。
- DHCP 服务器响应 giaddr 192.168.0.1。VTEP2 有 BGP EVPN type-5 路由到中继代理 IP 地址 192.168.0.1,用于指示下一跳隧道。
- VTEP2 添加基础第 2 层隧道标头,并将响应数据包发送到 VTEP1。
- VTEP1 上的 DHCP 中继代理从服务器接收响应,删除选项 82,并将数据包转发到 VLAN 10 上的客户端。
提醒:BGP EVPN 部署中的 DHCP 中继适用于第 3 层 VNI 配置。对于第 2 层 VNI 配置,无需 DHCP 中继,因为客户端和服务器可通过扩展 VLAN 直接访问。
DHCP 中继和静态任意广播网关
静态任意广播网关 (SAG) 允许多个交换机使用主动/主动路由器配置中的通用网关地址同时路由数据包。每个交换机都配置了同一组虚拟 IP 地址和一个虚拟 MAC 地址。DHCP 中继需要 IP 地址来标识下游或面向客户端的接口的子网。如果为 SAG 启用了客户端接口,则 DHCP 中继将使用 SAG IPv4 地址作为 giaddr。如果关联的 SAG 接口未分配任何 IP 地址,则中继代理将丢弃数据包。由于在分支交换机上配置了相同的 SAG IP 地址,因此来自服务器的响应可能位于不同的分支交换机上,并且可能无法到达中继 DHCP 数据包的分支交换机。为避免出现此问题,请将链路选择选项与源接口配合使用。
在下图 7 中,192.168.0.1 用作分支交换机上 VLAN10 的 SAG 网关。在 VLAN10 上启用 DHCP 中继。要将 DHCP 数据包中继到 DHCP 服务器,giaddr 字段设置为 55.55.55.55。DHCP 服务器使用链路选择子选项 5 来标识要租用的客户端子网。来自 DHCP 服务器的响应将发送到环回 IP,这是原始分支交换机所独有的。
图 7:DHCP 中继和静态任意广播网关
未编号的 IPv4 接口
上的 DHCP 中继您可以在未编号的点对点链路上配置 DHCP 中继。IPv4 未编号的配置支持第 3 层处理,而无需分配显式 IPv4 地址。
未编号的接口使用路由器上已配置的另一个接口的 IPv4 地址。您可以使用 IPv4 未编号的配置来节省网络地址空间并简化交换机配置。
DHCP 中继支持通过具有以下限制的 IPv4 未编号接口将数据包转发到服务器:
- 仅回路接口支持作为原有接口。
- IPv4 未编号配置仅在以太网和端口通道接口上受支持。
- IPv4 未编号的配置仅在默认 VRF 上受支持。
提醒:中继和服务器之间的链路的两端必须配置为未编号的接口。面向客户端的下游接口必须具有关联的 IPv4 地址,因为服务器必须知道客户端子网才能分配 DHCP 租约。
在下图 8 中,在 Eth1/4 接口上配置了未编号的 IPv4,这是中继和服务器之间的点对点链路。在中继交换机和服务器交换机上启用 OSPFv2,并通告回路网络地址。
图 8:未编号的 IPv4 接口上的 DHCP 中继
客户端子网也通过 OSPFv2 通告,以便服务器可以回复中继交换机。中继数据包中的 giaddr 设置为 192.168.0.1。中继数据包中的源 IPv4 地址由路由堆栈确定。
您还可以在 IPv4 未编号的设置中启用链路选择。如果无法从服务器访问客户端子网,则 giaddr 设置为环回 1 地址,即 103.103.103.103。
使用中继代理选项处理 DHCPv4 数据包
为了支持不同的网络配置(如级联中继),中继代理提供了三种不同的选项来处理已具有中继代理选项的传入 DHCPv4 数据包:- 放弃 — 中继代理会丢弃传入的数据包(默认值)。
- 附加 — 中继代理将自己的一组中继选项附加到数据包,使传入选项保持不变。如果中继代理信息的长度超过 255 字节的最大限制,则丢弃数据包。
- 替换 - 中继代理将移除传入选项,并将自己的一组选项添加到数据包。
- (可选)指定如何处理来自另一个中继代理的 DHCP 中继数据包。
sonic(conf-if)# ip dhcp-relay policy-action [discard | append | replace]
admin@DELLSONiC:~$ sonic-cli DELLSONiC# configure terminal DELLSONiC(config)# interface Vlan 100 DELLSONiC(config-if-Vlan100)# ip dhcp-relay policy-action discard
DELLSONiC(config-if-Vlan100)# show configuration ! interface Vlan100 ip address 10.10.100.1/24 ip dhcp-relay 10.10.200.12 ip dhcp-relay source-interface Ethernet40 ip dhcp-relay max-hop-count 15 ip dhcp-relay policy-action discard DELLSONiC(config-if-Vlan100)#
服务器标识符覆盖子选项
DHCPv4 中继支持服务器标识符覆盖RFC5107中定义的子选项 11。此子选项允许中继充当 DHCPv4 服务器,以便单播 DHCPv4 数据包进入中继代理,而不是直接转到服务器。中继可以在单播数据包上添加相应的子选项。启用链路选择子选项或 VSS 子选项后,将自动添加服务器标识符覆盖子选项。如果 DHCPv4 服务器不支持服务器标识符子选项,则客户端的单播 DHCPv4 数据包将绕过中继代理直接发送到服务器。
此子选项仅适用于 DHCPv4 中继代理。
可扩展性
- 每个接口最多可启用四个中继地址。
- DHCPv4 和 DHCPv6 中继可处理多达 2000 个 DHCP 客户端。
- 您可以为 DHCPv4 中继最多启用 4000 个第 3 层接口。
- 您最多可以为 DHCPv6 中继启用 4000 个第 3 层接口。
DHCP 中继显示命令
DELLSONiC# show ip dhcp-relay brief Display IP DHCP relay information in brief detailed Display IP DHCP relay information in detail statistics Display IP DHCP relay statistics
DELLSONiC# show ip dhcp-relay brief ------------------------------------------------ Interface Name DHCP Helper Address ------------------------------------------------ Vlan100 10.10.200.20 DELLSONiC# show ipv6 dhcp-relay brief ------------------------------------------------ Interface Name DHCP Helper Address ------------------------------------------------ Vlan100 2001:db8:4444::7777 DELLSONiC#
DELLSONiC# show ip dhcp-relay detailed Vlan 100 Relay Interface: Vlan100 Server Address: 10.10.200.20 Server VRF: Not Configured Source Interface: Not Configured Link Select: disable VRF Select: disable Max Hop Count: 10 Policy Action: discard Circuit-id Format: %p DELLSONiC#
DELLSONiC# show ip dhcp-relay statistics Vlan 100 BOOTREQUEST messages received by the relay agent : 4 BOOTREQUEST messages forwarded by the relay agent : 2 BOOTREPLY messages forwarded by the relay agent : 0 DHCP DISCOVER messages received by the relay agent : 0 DHCP OFFER messages sent by the relay agent : 0 DHCP REQUEST messages received by the relay agent : 0 DHCP ACK messages sent by the relay agent : 0 DHCP RELEASE messages received by the relay agent : 0 DHCP DECLINE messages received by the relay agent : 0 DHCP INFORM messages received by the relay agent : 0 DHCP NACK messages sent by the relay agent : 0 Total number of DHCP packets dropped by the relay agent : 0 Number of DHCP packets dropped due to an invalid opcode : 0 Number of DHCP packets dropped due to an invalid option : 0 DELLSONiC#
Affected Products
Enterprise SONiC Distribution, PowerSwitch S5048F-ON, PowerSwitch S5148F-ON, PowerSwitch S5212F-ON, PowerSwitch S5224F-ON, PowerSwitch S5232F-ON, PowerSwitch S5248F-ON, PowerSwitch S5296F-ON, PowerSwitch S5448F-ONArticle Properties
Article Number: 000218658
Article Type: How To
Last Modified: 20 Feb 2024
Version: 4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.