我的路由器使用DHCP,每当我重新格式化树莓派时,即使使用其他microSD卡,它也始终具有相同的LAN ip。我不太确定如何分配IP,但我假设设备在路由器上可以识别的网络上具有唯一ID?

评论

这怎么发生的?我问一个关于SE的问题,它的票数正!那就很多了。

#1 楼

您的Raspberry Pi具有唯一的ID,称为MAC地址,确切地说是两个。每个网络适配器都具有其中之一。因此,Wi-Fi适配器具有一个唯一的ID,而以太网适配器则具有。

这就是为什么您的Raspberry Pi获得相同IP的原因。对于您的路由器,确切地使用设备做什么并不重要。它仅识别MAC并提供与以前相同的IP。

编辑:正如Beege所指出的,由于DHCP中的“ D”代表动态,因此IP仍然可以更改。但是,如果您的设备通过DHCP获得与以前相同的IP,则是由于可以识别MAC。

评论


很好的解释。我认为值得一提的是,相同的MAC地址不会总是从DHCP服务器获得相同的IP,它仍然是一种“动态”服务,因此IP可能会被另一台设备占用,而您的Pi最终会获得不同的IP分配。

– Beege
19年1月6日在21:48

@Beege哦,是的,绝对,谢谢!当需要永久IP时,例如在服务器上运行服务器时,可以选择为Pi保留特定IP。但这要专门与路由器(或任何其他在网络中提供DHCP服务的设备)一起启用

–ItsKiddow
19年1月6日在21:52

实际上是两个-假设pi3b或3b +

– Jaromanda X
19年1月7日在1:04

IP相同的事实不是由于MAC。 MAC是路由器可以访问的标识符。可以将路由器配置为在续订租约时尝试为您提供相同的IP,或者可以为您随机分配一个不同的IP。您的路由器(由制造商)配置为使用前者。实际上,这可以防止由动态IP相关问题(想到IP打印端口)引起的许多网络问题。获得相同IP的能力归功于MAC,但是我可以轻松地在路由器上设置DHCP,以为大量不同的设备提供相同IP。

–尼尔森
19年1月7日在4:27

高质量的DHCP实现将缓存以前的MAC地址和IP分配。当看到缓存的MAC地址时,它将倾向于再次提供相同的IP(如果可用)。除非没有剩余的可用地址,否则它将拒绝将IP分配给其他MAC地址。由于这依赖于特定的实现...而且家用路由器的质量无处不在...根据您的路由器型号,行为不一定是一致的。

–蒂姆·坎贝尔
19年3月15日14:27在

#2 楼

除了已经给出的答案外,我还将提供一些其他背景信息。

一般来说,DHCP协议旨在尽可能减少动态变化。这是稳定性的一个方面。对于小型家庭网络而言,这无关紧要,但是具有交换机和路由器的大型网络需要一些时间才能进入优化状态。交换机必须学习其邻居,而路由器必须学习路由。 IP地址的大量更改对此状态不利。

大多数人可能认为DHCP服务器只是将IP地址提供给客户端,仅此而已。但这只是事实的一半。这是典型的DHCP握手:解决它喜欢的地址。它知道它之前拥有的ip地址,也可以在新启动后知道。 DHCP服务器仅对其进行确认。它给客户的东西称为租赁。它包含一个超时(以及许多其他重要选项),客户端可以使用IP地址多长时间而无需再次请求。超时时间取决于设置,并且通常设置为几个小时。 DHCP服务器将租约存储在其缓存中,并且即使关闭了该租约,也会为同一客户端尽可能长地保留它。因此,它将在再次启动时确认客户端的租约。只有当服务器没有其他未使用的租约要提供给客户端时,它才会使用已使用的租约。然后握手将如下所示:

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.75 to b8:27:eb:0e:3c:6f (raspi3) via wlan0


如您所见,DHCP服务器拒绝(DHCPNAK)请求并提供一个新的IP地址,然后在下一步是客户要求的。采取了此附加步骤,使客户端可以不接受所提供的IP地址...

评论


+1恕我直言,这是正确的答案。这只是DHCP协议的工作方式。

–乔斯
19年1月8日在14:36

谢谢,真的很有帮助。所以,DHCPNAK说我不能给你192.168.10.75,因为我已经获得了另一个主机的IP地址,对吗?

–罗斯塔米先生
20 Jan 13'23:13



@ M.Rostami是的,是的。所有这些的唯一原因是使IP地址在网络上尽可能稳定。

– Ingo
20 Jan 13 '23:28