问题标签 [dhcp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
148 浏览

networking - 如何知道 DHCP 返回的所有信息?

如果我是正确的,DHCP 也会返回 SNTP 地址。CMD(DOS ...)中是否有类似于“测试”DHCP的命令,意思是我可以运行它并告诉我DHCP返回的所有内容?IP 地址、网关地址、SNTP 地址等。谢谢,

0 投票
1 回答
9050 浏览

linux - 如何使用 dhclient 将特定于供应商的选项传递给 DHCP 服务器?

我正在尝试配置 dhclient。规范说我应该在每个 DHCP 请求/请求中添加特定于供应商的选项。

我发现只有 -V 选项。

-V 指定要发送到 DHCP 服务器的供应商类标识符选项。

我不确定那是我需要的。

我看到可以在 dhclient.cfg 中设置一些选项,但老实说,我根本不知道如何做到这一点。:( 据我了解,有一些“语言”,但我找不到有用的描述或示例。

有人可以帮我吗?

0 投票
2 回答
6292 浏览

c - 在 GNU/Linux/C 中使用多播 (224.0.0.12) 发现 DHCP 服务器

这个问题可能源于对 IP 多播的根本误解,所以如果我不在基地,请纠正我。

我正在尝试编写 C 代码来查找网络上所有 DHCP 服务器的 IP 地址。用例是这样的:

  1. 客户端广播 DHCP 发现。
  2. 我的专有中继代理接收数据包,添加一些基本信息,然后将其单播转发到已知 IP 地址的 DHCP 服务器。

我遇到的问题是告诉中继代理 DHCP 服务器在哪里。我发现多播地址 224.0.0.12 是 IANA 为 DHCP 服务器保留的,所以我想我只需将服务器配置为侦听该多播流量。但是,每当我将 IP_ADD_MEMBERSHIP 的 linux 套接字选项配置为 224.0.0.12 时,它都会使用 IGMP,这是一个完全独立的协议,我不想实现它。

我只是误解了多播的工作原理吗?我不应该能够从中继代理向 224.0.0.12 发送 ping 并让它从所有 DHCP 服务器返回 ping 响应吗?


附加信息:

  • 当我做一个时,所有盒子上的接口都列出了 MULTICASTifconfig
  • 我已经ip route add 224.0.0.0/4 dev eth0在所有盒子上添加了多播路由
0 投票
2 回答
2095 浏览

ubuntu - Ubuntu 11.10 dhclient-enter-hook.d scripts not invoked

I have a box with Ubuntu 11.10 installed. And the box was configured to get IP and hostname from dhcp.

We have set to scripts in /etc/dhcp/dhclient-enter-hooks.d/ folder. But these scripts were not invoked/executed. I have similar scripts in another box, which has Ubuntu 10.04 installed and hook scripts executes without issues. One difference is that in the 11.10 box has NetworkManager installed.

How did I test that the script in /etc/dhcp/dhclient-enter-hooks.d was not running? I have placed a simple script "mytest" which has below code in /etc/dhcp/dhclient-enter-hooks.d. The file /tmp/enter-hook.out was never generated.

Snip of my /etc/network/interfaces

0 投票
2 回答
30707 浏览

dhcp - 为什么广播 DHCP Offer 和 Ack?

为什么服务器不能像 DHCP Discover and Request 的源 IP 一样使用目的 IP 地址 0.0.0.0?它可以使用从 DHCP 发现和请求中获知的客户端 MAC 地址将帧定向到适当的客户端计算机。

0 投票
1 回答
551 浏览

sockets - 发送 DHCP OFFER 数据包的问题

试图实现一个定制的 DHCP 服务器,它只在 BOOTP/DHCP 数据包中发送一个 IP 地址。接收到的DISCOVER数据包解析完成。填充结构后;我无法通过 sendto 功能发送 OFFER 数据包。提供数据包似乎是一个单播数据包,其中目标地址是我们要提供给客户端机器的 IP。

有点困惑;如何使用普通 DGRAM 套接字为不存在的 IP 地址抛出 DHCP OFFER 数据包?还; 扔数据包时是否需要启用 SO_BROADCAST 标志?

任何帮助都非常感谢!

-Thnx,DDPS。

0 投票
1 回答
3152 浏览

windows-ce - 我可以关闭 WinCE DHCP 服务器以使其始终使用 zeroconfig 吗?

我们有一个旧版 WinCE 设备,它在封闭的以太网网络上运行良好多年。但是现在我们正试图让它与其他设备很好地工作,当网络上有 DHCP 服务器时它会失败。

问题是为了加快开机速度,原工程师在注册表中设置了“DhcpEnableImmediateAutoIP”。这有效地关闭了 WinCE 在确定没有 DHCP 服务器并执行 zeroconfig 之前等待一段时间的超时。但是因为它实际上并没有关闭 DHCP 请求,所以它使用 zeroconfig 分配一个 IP 地址,然后在几秒钟后从 DHCP 服务器获得第二个 IP 地址时搞砸了。

我可以看到“DhcpEnableImmediateAutoIP”是控制 DHCP 的几个键之一,所以我想知道如果我将“EnableDHCP”设置为 0 会发生什么?这会关闭 DHCP 请求,因此它只执行 zeroconfig,还是关闭 zeroconfig,因此它永远不会获得 IP 地址?

0 投票
3 回答
1209 浏览

linux - 当 ppp0 拨号时保护 /etc/resolv.conf 不被覆盖

我有一个运行busybox发行版的嵌入式系统,由于某种原因,我似乎找不到我的dhclient.conf(http://www.freebsd.org/cgi/man.cgi?query=dhclient.conf&sektion=5)会让我“保护”resolv.conf wt,但 DHCP 仍然有效,这怎么可能?此外,还有另一种方法来保护 resolv.conf 中的名称服务器吗?

0 投票
2 回答
409 浏览

c++ - 验证IP地址的简易方法已发布

我正在一个依赖于网络连接的 Linux 机器(DHCP 客户端)上编写 C++ 程序。我需要务实地验证我的系统是否有 IP 地址。我知道这是一个普遍且开放式的问题,因此任何快速而肮脏的解决方案都对我有用,但理想情况下,我想检查/读取系统文件以确保 DHCP 客户端已从 DHCP 服务器接收到 IP 地址。

提前致谢。

0 投票
1 回答
3559 浏览

networking - DHCP 多 IP 地址请求

我正在尝试使用 C++ 代码从我的一端模仿 DHCP 客户端。我的目标是从 DHCP 服务器获取一些免费/未使用的 IP,以将其分配给不同的设备 - 类似于 DHCP 中继,但在技术上并不相同。我CLIENT在嵌入式 linux 平台上运行,并通过我们的内部网络与 DHCP 服务器通信。

根据 DHCP 协议,有一个正式的程序 ( DISCOVER, OFFER, REQUEST, ACK/NAK, RELEASE) 与 DHCP 服务器通信。根据 RFC (2131),当我执行 a 时,我在 YIAddr 字段中DISCOVER收到一个未使用的 IP 地址。我使用RFC 2132 中提到的选项 50OFFER在我的消息中进一步使用此 IP 地址。REQUEST

我的主路由器 make-Edgewater(也是 DHCP 服务器)在发送DISCOVER消息时,会在 YIAddr 字段中发回OFFER一条带有未使用 IP 地址的消息(我在后续REQUEST消息中使用了这个未使用的 IP),这是我的要求。我对其他几个路由器(NetGear、Dlink、Broadcom)做了同样的实验,发现该OFFER消息将我发送回CLIENT请求未使用 IP 的相同 IP 地址。我很想知道为什么会这样。据我了解,我正在按照 RFC2131/RFC2131/RFC4361 中提到的步骤来创建我的 DHCP 数据包格式。

是否有其他 DHCP 服务器/路由器期望提供未使用的 IP 的特定格式或特定选项?如 RFC4361 中所述,我在我的选项字段中使用了唯一的客户端标识符。

这是我正在创建 dhcp 数据包的部分的快照。

选项字段

发现消息

CID 和 DUID 是随机的唯一数字,用于创建唯一的客户端标识符

请求消息