DHCP服务器未为具有链接本地地址的设备分配IP地址

问题描述 投票:0回答:1

我正在使微控制器为dhcp服务,并且它可以正常工作。但是,它仅在其他设备正在广播dhcp请求时才起作用。如果设备放弃了请求dhcp ip并为其分配了本地链接地址(169.254.x.x),则我的微控制器似乎没有为其提供地址。但我注意到,即使设备具有本地链接地址,我的路由器也能够为设备分配dhcp地址。我想知道我是否不能正确提供dhcp。我正在使用linux并使用udhcpd.conf运行/ usr / sbin / udhcpd以启动dhcp服务。这是我的udhcpd.conf:

# The start and end of the IP lease block
start   10.78.0.2
end     10.78.255.200

# The interface that udhcpd will use
interface    eth0

opt dns 8.8.8.8 8.8.4.4 #public google dns servers
option  subnet  255.255.0.0
opt router      10.78.0.1

option  lease   864000      # default: 10 days
# Arbitrary option in hex form:
option  0x08    01020304    # option 8: "cookie server IP addr: 1.2.3.4"

这是我的接口文件(修改为仅显示eth0)

# The loopback interface
auto lo
iface lo inet loopback

# Wired or wireless interfaces
auto eth0
iface eth0 inet dhcp

这是我用来启动dhcp服务器的脚本

ifconfig eth0 10.78.0.1
/usr/sbin/udhcpd -f -S /etc/udhcpd.conf

我不想在接口文件中为eth0分配一个静态ip,因为有时我想关闭dhcp服务器并将eth0设为客户端,以便为它提供IP地址。为什么我的dhcp服务器无法将地址分配给具有本地链接地址的设备的任何想法?

linux networking dhcp
1个回答
0
投票

这里有很多可能性。要记住一些事情。

DHCP请求是由客户端而不是由DHCP服务器发起的。如果您的无线客户端没有无线连接,则其地址为169.254.x.x。建立无线连接后,客户端将启动DHCP请求并获取IP。假设您在这里谈论的是无线路由器。

如果您的客户端已经建立了物理或无线连接,然后您提供了DHCP服务,则不会触发来自客户端的DHCP请求。这是设计使然,这里没有什么错,您只需要从客户端启动DHCP请求即可。

© www.soinside.com 2019 - 2024. All rights reserved.