路由器如何分配IP地址?这是随机的还是有一套方法?
似乎同一个设备——无论它连接的时间如何——似乎都分配了相同的 IP。路由器是否知道 MAC 地址并分配相同的 IP 或是否有其他事情发生?
use*_*686 13
IPv4 地址通常使用 DHCP 协议分配。这是如何发生的,取决于路由器上运行的特定 DHCP 服务器......
使用 DHCP,地址会被租用一段时间,因此如果设备在旧租用到期之前重新启动请求地址,路由器通常会提供相同的旧地址(基于 DHCP 客户端 ID 或 MAC 地址)。
某些 DHCP 服务器即使在租用期到期后的一段时间内仍会记住发出的地址,因此它们始终将相同的地址提供给同一设备。
如果之前没有看到设备,这取决于实现——通常新地址是随机选择的,但有时是顺序选择,有时基于 MAC 地址上的某种散列,以便路由器至少尝试给出又是旧地址。
例如,引用dhcpd.conf(5)
ISC DHCP 服务器dhcpd的手册页:
DHCP 服务器生成可用 IP 地址列表。 哈希表。这意味着地址没有按任何标准排序? 特定的顺序,因此无法预测其中的顺序 DHCP 服务器将分配 IP 地址。以前版本的用户 ISC DHCP 服务器的用户可能已经习惯了 DHCP 服务器 按升序分配IP地址,但这不再是pos? sible,并且无法使用版本 3 配置此行为 ISC DHCP 服务器。
对于 IPv6,有一个类似的协议 DHCPv6,上面的答案仍然适用。
然而,许多网络使用更简单的“无状态自动配置”协议,其中路由器只广播前缀(也称为网络地址),设备分配自己的 IP 地址。赋值有两种方式:
使用正常的“无状态自动配置”(RFC 4862),IP 地址的“主机”部分基于设备的硬件地址。对于 48 位 MAC 地址,第二位被翻转,并ff:fe
插入中间(填充到 64 位)
例如,前缀2001:470:1f0b:915::/64
加 MAC 地址48:5d:60:e8:65:8f
产生 IP 地址。2001:470:1f0b:915:4a5d:60ff:fee8:658f
对于“隐私扩展”(RFC 4941),“主机”部分是随机选择的——并且每 10 小时也会添加一个新地址。
请注意,除了正常的“无状态”基于 MAC 的 IP 地址之外,几乎总是使用“隐私扩展” 。
通常(对于 IPV4),所使用的系统称为“DHCP”,其工作原理大致如下。
DHCP 服务器表可以使用 MAC 地址来确保计算机获得相同的 IP 地址(如果每次可用)。
我认为重要的是要指出路由器不分配 IP 地址:路由器在一个接口上接收一个 IP 数据包并在另一个接口上几乎不变地发送它(我能想到的变化是减少 TTL 并更新 IP 的校验和数据包;甚至更改数据包中的 IP 地址 (NAT) 也超出了路由器的任务)。
被称为家庭路由器的设备不仅仅是路由器,它们还包括以下一些功能/服务:
(注意:防火墙通常可以执行入站和出站 NAT 和路由,即使这 4 个功能可以使用专用设备完成。)
在大型企业部署中,DHCP 服务器通常托管在与路由器无关的专用 Linux 或 Windows 服务器(通常是集群)上。