CentOS:DHCP 服务器和 DHCP 中继位于同一台机器上

CentOS:DHCP 服务器和 DHCP 中继位于同一台机器上
  • eth0 IP:192.168.1.100
  • 别名接口 eth0:dhcp IP: 10.10.1.100

dhcpd.conf:

authoritative;
local-address 10.10.1.100;

subnet 10.10.1.0 netmask 255.255.255.0 {

    range 10.10.1.10 10.10.1.50;
    option routers 10.10.1.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;

}

正在运行的进程:

# ps -elf | grep [d]hcp
4 S root      1876  1867  0  80   0 -  1661 poll_s 11:11 pts/2    00:00:00 dhcrelay -i eth0 10.10.1.100 -i eth0:dhcp -d
5 S dhcpd     1947     1  0  80   0 - 12121 poll_s 11:38 ?        00:00:00 /usr/sbin/dhcpd -user dhcpd -group dhcpd eth0:dhcp

我看到 DHCP DISCOVER 出现在 eth0 上并且中继代理将其转发到 10.10.1.100:

Forwarded BOOTREQUEST for <mac_address> to 10.10.1.100
Forwarded BOOTREQUEST for <mac_address> to 10.10.1.100
Forwarded BOOTREQUEST for <mac_address> to 10.10.1.100
Forwarded BOOTREQUEST for <mac_address> to 10.10.1.100

但 DHCP 服务器记录以下消息:

Sep  4 11:13:47 localhost dhcpd: DHCPDISCOVER from <mac_address> via 192.168.1.1: unknown network segment
Sep  4 11:13:50 localhost dhcpd: DHCPDISCOVER from <mac_address> via 192.168.1.1: unknowk network segment
Sep  4 11:13:54 localhost dhcpd: DHCPDISCOVER from <mac_address> via 192.168.1.1: unknown network segment
Sep  4 11:13:59 localhost dhcpd: DHCPDISCOVER from <mac_address> via 192.168.1.1: unknown network segment

已启用 IP 转发:

net.ipv4.ip_forward = 1

基本上,服务器必须位于 192.168.1.0/24 网络上,但是它应该从 10.10.1.0/24 范围分配 IP。

答案1

假设 ISC DHCPD,您不需要 dhcp 中继,但您需要在 dchpd.conf 中共享网络:

authoritative;
local-address 10.10.1.100;

shared-network eth0 {

    subnet 192.168.1.100 netmask 255.255.255.0 {
    }

    subnet 10.10.1.0 netmask 255.255.255.0 {

        range 10.10.1.10 10.10.1.50;
        option routers 10.10.1.1;
        option domain-name-servers 8.8.8.8, 8.8.4.4;

    }
}

答案2

在我看来,您的 DHCP 中继似乎在错误的接口上进行监听。DHCP 中继必须在为客户端子网配置的接口上监听客户端的 DHCP 请求,以便将该信息中继到 DHCP 服务器。

dhcrelay 命令行提示你使用 eth0 作为接收接口。我会尝试这个命令行:

dhcrelay -i eth0:dhcp -d 192.168.1.100

这样,您将从 eth0:dhcp (10.10.1.100) 接收 DHCP 请求,并将它们发送到 192.168.1.100 上的服务器。并且不要忘记在 dhcpd.conf 中更改本地地址。

我不知道确切的 RFC,但 Wikipedia 可以提供很多帮助(维基百科上有关 DHCP 中继的信息)。另外,请阅读精美的手册:dhcrelay 手册dhcpcd.conf 手册

相关内容