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