路由器如何分配IP地址?


14

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

似乎同一设备(无论连接时间如何)似乎都分配了相同的IP。路由器是否知道MAC地址并分配了相同的IP,还是发生了其他事情?


网络上的IP或您自己的个人PC?
Christopher Chipps

如果您有时间和精力来深入学习它,请访问:zytrax.com/books/dhcp/apc
Lorenzo Von Matterhorn,

Answers:


13

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

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

  • 一些DHCP服务器会记住租用期满后的某个时间发布了哪个地址,因此它们始终将同一地址分配给同一设备。

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

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

DHCP服务器从服务器生成可用IP地址的列表。
哈希表。这意味着地址不会按任何参数进行排序
顺序,因此无法预测顺序
DHCP服务器将分配IP地址。先前版本的用户
ISC DHCP服务器的IP地址可能已习惯于DHCP服务器
以升序分配IP地址,但这不再是可能的。
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,这与IPv6有什么不同吗?
2013年

@agovizer:是的-我更新了答案。
user1686

如果仅是哈希,那么一个IP地址不会应用于多个主机吗?
Pacerier

@Pacerier:取决于哈希的设计水平,您可以选择多少个IP地址等。还要注意,我说的是“ tries”。如果生成的IP地址已被使用,则路由器可能只分配了另一个。
user1686 2013年

如果是Ad hoc网络,如何分配IP地址?由于没有中央服务器。
pathe.kiran

4

通常,(对于IPV4)使用的系统称为“ DHCP”,其工作原理大致如下。

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

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


4

我认为必须指出,路由器不分配IP地址是很重要的:routeurs在一个接口上接收IP数据包,然后在另一个接口上几乎不变地发送它(我能想到的变化是减小TTL并更新IP的校验和。数据包;即使更改数据包(NAT)中的IP地址也超出了路由器的任务)。

被称为家用路由器的设备远不只是路由器,它们还包括以下一些功能/服务:

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.