路由器如何分配 IP 地址?

路由器如何分配 IP 地址?

路由器如何分配 IP 地址?是随机的还是有固定的方法?

似乎同一台设备(无论何时连接)似乎都分配了相同的 IP。路由器是否知道 MAC 地址并分配相同的 IP,还是有其他原因?

答案1

IPv4 地址通常使用 DHCP 协议分配。这是如何发生的,取决于特定的 DHCP 服务器在路由器上运行...

  • 使用 DHCP,地址的租用期限为一段时间,因此如果设备重新启动并在旧租用期到期之前请求地址,路由器通常会提供相同的旧地址(基于 DHCP 客户端 ID 或 MAC 地址)。

  • 一些 DHCP 服务器即使在租约到期后的一段时间内仍会记住颁发了哪个地址,因此它们总是将相同的地址分配给同一设备。

  • 如果之前没有看到该设备,则取决于实现方式——通常新地址是随机选择的,但有时是按顺序选择的,有时是基于 MAC 地址的某种哈希值,以便路由器至少尝试再次提供旧地址。

例如,引用dhcpd.conf(5)ISC DHCP 服务器的手册页DHCP服务器

DHCP 服务器从
哈希表。这意味着地址没有按任何部分排序。
特定顺序,因此无法预测
DHCP 服务器将分配 IP 地址。之前版本的用户
ISC DHCP 服务器可能已经习惯了 DHCP 服务器
按升序分配 IP 地址,但这不再是可行的
并且没有办法使用版本 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 地址。

答案2

我认为有必要指出的是路由器不分配 IP 地址:路由器在一个接口上接收 IP 数据包,并几乎不做任何改变地将其发送到另一个接口(我能想到的变化是减少 TTL 并更新 IP 数据包的校验和;甚至更改数据包中的 IP 地址(NAT)也超出了路由器的任务)。

被称为家庭路由器不仅仅是路由器,它们还包括以下一些功能/服务:

  • DHCP 服务器(这是分配 IP 地址的服务),
  • ADSL 调制解调器(用于协商与 ISP 的连接),
  • 防火墙(过滤传入和传出连接),
  • 入站和出站 NAT 设备(用于共享 ISP 为家庭网络上的所有设备分配的单个 IPv4 地址),
  • 路由器,
  • 转变,
  • WiFi 天线,
  • 网络服务器,
  • 控制台(web、ssh 或 telnet)用于配置设备,
  • 其他的...

(注意:防火墙通常可以执行入站和出站 NAT 和路由,即使这 4 个功能可以使用专用设备来完成。)

在大型企业部署中,DHCP 服务器通常托管在与路由器无关的专用 Linux 或 Windows 服务器(通常是集群)上。

答案3

一般来说(对于 IPV4),所使用的系统称为“DHCP”,其工作原理大致如下。

  • 路由器运行“DHCP 服务器”,其中有一个可以使用的 IP 表。
  • 每台计算机都会发出一个 DHCP 请求,该请求基本上是在网络上发送的一个数据包(带有其 MAC 地址),询问“我可以拥有什么 IP?”
  • 路由器查看收到的数据包,并指出这是您的 IP 地址、网关、DNS 服务器[以及其他信息]
  • 然后计算机进行自我配置。

DHCP 服务器表可以使用 MAC 地址来确保机器每次都获得相同的 IP 地址(如果可用)。

相关内容