是否有任何网络广播呼叫或某些东西可以强制所有连接的DHCP客户端立即更新其地址?
如果没有,为什么不呢?当然,DHCP管理员从诞生之日起就一直期望这个功能.它使得在大型网络上更改路由器地址非常困难,而无需普遍的客户端自动化.
我是Powershell的新手,我想知道是否有人知道有任何更好的方法来完成以下示例问题.
我有一个从IP地址到主机名的映射数组.这表示活动DHCP租约列表:
PS H:\> $leases
IP Name
-- ----
192.168.1.1 Apple
192.168.1.2 Pear
192.168.1.3 Banana
192.168.1.99 FishyPC
Run Code Online (Sandbox Code Playgroud)
我有另一个从MAC地址到IP地址的映射数组.这代表了IP预订列表:
PS H:\> $reservations
IP MAC
-- ---
192.168.1.1 001D606839C2
192.168.1.2 00E018782BE1
192.168.1.3 0022192AF09C
192.168.1.4 0013D4352A0D
Run Code Online (Sandbox Code Playgroud)
为方便起见,我能够使用以下代码生成从MAC地址到IP地址和主机名的第三个映射数组.我们的想法是$reservations应该获得第三个字段"Name",只要有匹配的"IP"字段就填充该字段:
$reservations = $reservations | foreach {
$res = $_
$match = $leases | where {$_.IP -eq $res.IP} | select -unique
if ($match -ne $NULL) {
"" | select @{n="IP";e={$res.IP}}, @{n="MAC";e={$res.MAC}}, @{n="Name";e={$match.Name}}
}
}
Run Code Online (Sandbox Code Playgroud)
所需的输出是这样的:
PS H:\> $ideal
IP MAC Name
-- --- ----
192.168.1.1 …Run Code Online (Sandbox Code Playgroud) 我需要确保dhcpd.conf上没有语法错误.如果有错误,我想得到它们是什么.
我可以使用此命令检查语法错误:
dhcpd -cf /path/to/dhcpd.conf
Run Code Online (Sandbox Code Playgroud)
但除了我得到的错误之外,还会打印很多信息.另一件事是我不想运行dhcpd,即使没有语法错误.我只想检查语法错误并查看它们是什么.
不幸的是,跑步dhcpd -tf /path/to/dhcpd.conf也没有解决我的问题.
在VMWware中使虚拟操作系统具有静态IP地址的最佳方法是什么.我想保持IP地址静态,因为它是一个虚拟服务器.
如果假设客户端没有监听68端口,当DHCP服务器收到请求时,它可以将它发送到收到请求的地址(发送时由客户端选择的临时端口),那么为什么协议指定客户端是在68端口听?
为什么服务器不能使用FTP发现和请求的源IP中使用的目标IP地址0.0.0.0?它可以使用从DHCP Discover和Request学习的客户端的MAC地址将帧指向适当的客户端计算机.
有没有人知道在Linux中检测IP地址变化的方法.假设我运行了dhcpcd,并且它分配了一个新的IP地址,有什么方法可以在它发生变化时收到通知吗?我不能使用D-Bus,因为这是一个没有它的嵌入式ucLinux构建.
inotify/proc/net /中的某些内容?
我在linux上使用嵌入式设备.我想先使用DHCP客户端,但如果DHCP服务器没有应答,我想设置静态默认IP.我想这应该不复杂,但我没有找到严格的答案.
我正在考虑2个解决方案(不幸的是我可以在几天内测试它们):
我用ifconfig设置静态IP,然后我调用udhcpc.如果udhcpc无法获得新的IP,旧的IP将保留.
我也可以先调用udhcpc,稍等片刻,检查是否获得了IP.但这对我来说并不好.我不想在启动时添加任何等待例程.
BR Bartek
我使用udhcpc - 类似于:
udhcpc -n -f -i eth0
if ifconfig | grep -A1 eth0 | grep inet
then
Run Code Online (Sandbox Code Playgroud) 我使用命名空间来分隔服务器上的一些物理接口.路由工作完美.另外,我在/ etc/netns /例如/etc/netns/namespaceA/resolv.conf中有每个命名空间的文件夹,这样DNS也能正常工作.
使用DHCP与dhclient时出现问题.我从命名空间内运行dhclient并收到此错误.
(namespaceA)root@tc-vm:~#dhclient
RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.2740' to '/etc/resolv.conf': Device or resource busy
Run Code Online (Sandbox Code Playgroud)
我发现/etc/resolvconf/update.d/libc中的mv包含一个可能导致问题的mv.
dhclient如何使命名空间感知?
我在Mac OS X 10.7.5上使用Vagrant 1.1.2
我遇到了默认网络设置的问题.网络似乎配置为使用提供10.0.2 IP的DHCP服务器.网络,网关设置为10.0.2.2
遗憾的是,在我工作的组织中,实际上存在10.0.2.2的服务器,这会导致巨大的网络通信延迟.
如何配置Vagrant的VirtualBox以使用提供来自不同网络的IP的DHCP服务器?http://www.vagrantup.com/上的文档完全忽略了这个问题,遗憾的是这让我的Vagrant变得毫无用处.
当我与企业网络断开连接时,Vagrant按预期工作.所以我很确定问题出在IP冲突中.