isc-dhcp-server 响应未通过无线网桥发送

isc-dhcp-server 响应未通过无线网桥发送

我正在尝试向我的网络添加一些 WiFi 接入点。当我设置它们时,它们默认为路由器,但我希望将它们设置为网桥。当它们作为路由工作时,它们工作正常。但是当我将它们设置为网桥而不是无线路由器时,我的无线设备没有从我的 DHCP 服务器获得 DHCP 响应。我正在使用 isc-dhcp-server,这是我的设置

# The ddns-updates-style parameter controls whether or not the server will      
# attempt to do a DNS update when a lease is confirmed. We default to the       
# behavior of the version 2 packages ('none', since DHCP v2 didn't              
# have support for DDNS.)                                                       
ddns-update-style none;
# static domain_name_servers=192.168.42.206;                                    

# option definitions common to all supported networks...                        
ddns-update-style interim;
ignore client-updates;
update-static-leases on;
include "/etc/dhcp/rndc.key";
update-optimization on;
update-conflict-detection on;
# include "/etc/dhcp/rndc.conf";                                                                                                                                             

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local                 
# network, the authoritative directive should be uncommented.                   
authoritative;

# Use this to send dhcp log messages to a different log file (you also          
# have to hack syslog.conf to complete the redirection).                        
log-facility local7;

subnet 192.168.42.0 netmask 255.255.255.0 {
       range 192.168.42.100 192.168.42.254;
       option routers 192.168.42.1;
       option broadcast-address 192.168.42.255;
       option domain-name-servers 192.168.42.206;
}

重要的网络图是

Router -> wireless access point -> devices connection to wireless access point (not getting IP addr)
||  |
||  v
||DNS server (static IP address)
|L-------------> Devices on the wired network (get their DHCP requests responces and get an IP addr)
v
DHCP server

根据日志文件,DHCP 服务器正在查看该请求

Feb 14 21:06:18 pi1 dhcpd: DHCPDISCOVER from 08:12:a5:3b:00:69 via eth0
Feb 14 21:06:19 pi1 dhcpd: DHCPOFFER on 192.168.42.179 to 08:12:a5:3b:00:69 via eth0
Feb 14 21:06:21 pi1 dhcpd: DHCPDISCOVER from 00:e0:4c:d6:69:02 via eth0
Feb 14 21:06:22 pi1 dhcpd: DHCPOFFER on 192.168.42.199 to 00:e0:4c:d6:69:02 via eth0
Feb 14 21:06:36 pi1 dhcpd: DHCPDISCOVER from ec:fa:bc:87:98:86 (ESP_879886) via eth0
Feb 14 21:06:37 pi1 dhcpd: DHCPOFFER on 192.168.42.253 to ec:fa:bc:87:98:86 (ESP_879886) via eth0

但设备显示未能获得 DHCP 响应。

无线接入点是 Eero(WiFi 网状网络设备)型号:J010001

isc-dhcp-server 在 Raspberry Pi 上运行,而 DNS 服务器是另一个 Rasberry Pi 上的 Pi-Hole。

如果需要,我愿意提供更多信息,只需询问,我就会根据所需信息编辑问题。

需要注意的是,对于无线网络上可以设置静态 IP 地址的设备,它们可以访问整个网络,只有那些不允许我设置 IP 地址但需要 DHCP 服务器的设备无法获得 DHCP 响应

答案1

DHCP 可能是一个挑战。但它非常好(与完全使用静态 IP 地址相比)。

您的 DHCP 服务器显然正在接收 DISCOVER,否则它不会发出 OFFER。您没有提到任何有关 REQUEST 的信息(随后会发出确认)。因此,也许该 OFFER 未到达客户端(或者也许有一个请求不知何故未发出)。

鉴于设置,从 Wi-Fi 客户端到 WAP(Wi-Fi 接入点)通过另一个路由器和 DHCP 服务器,如果 WAP 处于路由模式,在没有帮助的情况下,根本无法从 Wi-Fi 客户端一直到达 DHCP 服务器。简单的 DHCP 客户端 <-> DHCP 服务器通信无法跨路由器。发生的情况是 DHCP 服务器使用 MAC-48 地址响应 DHCP 客户端。DHCP 服务器无法使用 IP 响应 DHCP 客户端,因为 DHCP 客户端甚至没有 IP 地址(0.0.0.0 除外)。基于 MAC-48 地址的通信不会跨越路由器进入其他子网;为此需要一个有效的 IP 地址。

(请注意,如果 DHCP 客户端尝试续订租约,则它在尝试联系 DHCP 服务器时可能具有有效的 IP 地址。但该协议的设计方式不依赖于 DHCP 客户端的 IP 地址,这很好,因为 DHCP 客户端在某些其他情况下实际上没有合适的 IP 地址。)

因此,当您的 WAP 充当路由器时,它一定在帮助该过程。它要么充当 DHCP 服务器本身,要么充当 DHCP 中继。DHCP 中继的作用有点像 DHCP 服务器,因为它接收来自 DHCP 客户端的请求,并可以使用 DHCP 客户端的 MAC-48 地址响应 DHCP 客户端。最大的区别是 DHCP 中继没有自己的关于要分发哪些地址的详细信息数据库,也不需要跟踪哪些地址已经分配给其他租约。相反,DHCP 中继将与 DHCP 服务器通信,然后 DHCP 服务器处理这些复杂的细节。

DHCP 中继 <-> DHCP 服务器通信可以使用 IP 地址通过路由器将流量中继到其他子网。这很有效,因为 DHCP 中继通常是基础设施的一部分,因此它通常可能有自己的长期 IP 地址。

现在,您可能会认为,如果路由 DHCP 流量是一个问题,那么将 WAP 从路由器转换为网桥将简化事情。我倾向于同意这种想法。

但是,当切换到网桥时,WAP 的主要角色可能不需要使用太多 IP 地址,而可能更多地依赖于 MAC-48 地址。网桥可以顺利地传递使用 MAC-48 地址的 DHCP 客户端的通信。因此,网桥可能已关闭其 DHCP 中继功能(和/或停止充当附加/流氓 DHCP 服务器)。

很有可能,这会导致 DHCP 客户端的初始 DHCP 请求被图表中称为“路由器”的设备看到。现在,如果该路由器不充当 DHCP 服务器或 DHCP 中继,则 DHCP 客户端的 DCHP 请求可能无法得到处理。

即使 DHCP 客户端的请求以某种方式到达 DHCP 服务器(因为传出流量通常运行得更好,可以被 NAT 很好地处理等),DHCP 服务器也可能不知道如何将 OFFER(和/或 ACKNOWLEDGEMENT)通过路由器传递到 DHCP 客户端,而 DHCP 客户端正在等待对其 MAC-48 地址的响应。

因此,如果您希望 WAP 充当桥梁,那么确保路由器知道如何使用 DHCP 中继功能处理 DHCP 客户端可能也是合适的。(另一种选择是让路由器成为 DHCP 服务器。最好使用来自不同子网的地址,然后需要很好地处理路由。)

相关内容