Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

10.3. DHCP 中继代理程序

DHCP 中继代理程序(dhcrelay)可让没有 DHCP 服务器的子网向其他子网中的一个或多个 DHCP 服务器发出 DHCPBOOTP 请求。
DHCP 客户端请求信息时,DHCP 中继代理程序会将该请求转发到启动 DHCP 中继代理时指定的 DHCP 服务器列表。DHCP 服务器返回回复后,会向最初发送请求的网络广播或单播这个回复。
除非在 /etc/sysconfig/dhcrelay 文件中使用 INTERFACES 指令指定接口,IPv4 的 DHCP 中继代理 dhcrelay 侦听所有接口的 DHCPv4BOOTP 请求。详情请查看 第 10.3.1 节 “将 dhcrelay 配置为 DHCPv4 and BOOTP 中继代理程序”IPv6 的 DHCP 中继代理 dhcrelay6 没有这个默认行为,同时必须指定侦听 DHCPv6 请求的接口。详情请查看 第 10.3.2 节 “将 dhcrelay 配置为 DHCPv6 中继代理程序”
dhcrelay 可作为 DHCPv4BOOTP(默认)中继代理运行,或添加 -6 参数作为 DHCPv6 中继代理运行。要查看用法信息,请运行命令 dhcrelay -h

10.3.1. 将 dhcrelay 配置为 DHCPv4 and BOOTP 中继代理程序

要在 DHCPv4BOOTP 模式服务器中运行 dhcrelay,指定向其转发请求的服务器,请作为 root 用户复制并编辑 dhcrelay.service 文件:
~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/
~]# vi /etc/systemd/system/dhcrelay.service
编辑 [Service] 部分的 ExecStart 选项,在该行的结尾处添加一个或多个服务器 IPv4 地址,例如:
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1
如果要指定 DHCP 中继代理侦听 DHCP 请求的接口,请使用 -i 参数将其添加到 ExecStart 选项(否则会侦听所有接口),例如:
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1 -i em1
。其他选项请查看 dhcrelay(8) man page。
请作为 root 用户重启该服务以便更改生效:
~]# systemctl --system daemon-reload
~]# systemctl restart dhcrelay

10.3.2. 将 dhcrelay 配置为 DHCPv6 中继代理程序

要在 DHCPv6 模式中运行 dhcrelay,请添加 -6 参数,并指定 lower interface(可使用该接口接收客户端或其他中继代理的查询)和 upper interface(转发来自客户端和其他中继代理的查询)。作为 root 用户将 dhcrelay.service 复制到 dhcrelay6.service,并进行编辑:
~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.service
~]# vi /etc/systemd/system/dhcrelay6.service
编辑 [Service] 部分的 ExecStart 选项,添加 -6 参数,并添加 lower interfaceupper interface 接口,例如:
ExecStart=/usr/sbin/dhcrelay -d --no-pid -6 -l em1 -u em2
。其他选项的详情请查看 dhcrelay(8) man page。
请作为 root 用户重启该服务以便更改生效:
~]# systemctl --system daemon-reload
~]# systemctl restart dhcrelay6

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。