![路由器如何分配 IP 地址?](https://linux22.com/image/653630/%E8%B7%AF%E7%94%B1%E5%99%A8%E5%A6%82%E4%BD%95%E5%88%86%E9%85%8D%20IP%20%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
我了解如何使用 DHCP 为连接到路由器(例如 72.73.74.75)的设备分配本地 IP 地址(例如 192.168.1.5)。
但是,路由器本身如何从 ISP 获得分配的 IP 地址?它如何确保互联网上的其他服务器没有被分配相同的 IP 地址?
答案1
IANA 是负责全球 IP 分配的组织。他们将 IP 地址“区块”分配给区域互联网注册机构,这些注册机构是负责在其地理区域内分配的基于地理位置的组织——共有 5 个 RIR:
- AfriNIC(非洲)
- LACNIC(拉丁美洲和加勒比地区)
- APNIC(亚太地区)
- ARIN(美国、加拿大、加勒比海部分地区、南极洲)
- RIPE NCC(欧洲、俄罗斯、中东和中亚)
从那里,RIR 将较小的地址块分配给 LIR(本地互联网注册机构)。其中包括您的 ISP。
每个组织都应管理其分配的 IP 地址块。这通常使用某种 IPAM(IP 地址管理)软件来完成。
每个 LIR 如何在其分配范围内分配地址由他们自己决定。
从实际角度来看,地址是手动分配的(由管理员或有时由配置管理系统分配),而不是 DHCP。例如,要为 Cisco 路由器上的以太网接口 #4 分配 IP 地址,管理员需要连接到路由器(例如,使用 SSH)并发出类似以下命令:
Router> enable
Router# configure terminal
Router(config)# interface fastethernet 4
Router(config-int)# ip address 192.0.2.1 255.255.255.0
Router(config-int)# no shutdown
Router(config-int)# exit
如果您想了解所有信息如何在 LIR 之间聚合和共享,那么您需要阅读 AS 编号和 BGP 协议。
答案2
(这里我谈论的是客户端边缘路由器。它位于您的 LAN 上。在 ISP 网络中,路由器通常/可能手动配置)。
如果你有基于 PPP 的连接(PPPoE、PPPoA、PPPoEoA),你的路由器将接收其 IP 地址来自 ISP 地址:
使用协议控制协议对于 IPv4;
使用IPCPv6和SLAAC 或 DHCPv6用于 IPv6。
如果您有非基于 PPP 的连接(IPoE、IPoA、IPoEoA),路由器将收到其 IP 地址从 ISP 获取 IP 地址的方法和你的机器从路由器获取 IP 地址的方法是一样的:
使用 DHCP(用于 IPv4);
使用 SLAAC 或 DHCPv6 来实现 IPv6。
对于 IPv6,本地网络通常具有整个 IPv6 委托前缀,例如 /60、/56 或 /48. 此前缀通过 DHCPv6 向路由器公布IA_PD选项。
IP 地址的分配采用与 LAN 相同的机制:
或者使用静态分配;
或者可用地址池由 DHCP 服务器管理;
对于 IPv6 来说,IPv6 地址可以与 SLAAC 进行协商,SLAAC 旨在避免和检测冲突。
答案3
ISP 也有一个 DHCP 服务器,就像您的路由器一样。DHCP 服务器可能缓存了您的旧地址(如之前发布的答案一样),如果没有,则可能会给您一个新地址。
DHCP 有时直接在上行链路上运行,有时终止于运行上行链路的网络设备。例如,在桥接模式下,DHCP 用于直接分配地址。对于 PPP 连接(如 PPPoA、PPPoE 等),DHCP 池用于提供地址,但实际配置由 PPP 服务完成。
在到达 RIR 块之前,所有网络的 IP 地址分配几乎相同。
基本上,您拥有的 IP 地址数量是全球有限的,这些 IP 地址被划分为多个块。然后这些块被分配给地理区域,地理区域又被划分为多个块,分配给 ISP。当您用完 IP 块时,可以申请,也可以从公司购买,或者从 ISP“租用”。
有一些组织负责管理 IP 分配,以确保知道哪个 IP 块属于某个人。流程如下:
IANA 拥有所有 IP 地址,这些地址被划分为多个块,然后这些块由 RIR 重新划分。RIR 是区域互联网注册机构。每个 RIR 覆盖一个地理区域,总共有 5 个。RIR 依次划分其 IP 块,并根据请求将其提供给 LIR 和 NIR:本地互联网注册机构和国家互联网注册机构。ISP 和企业,如果我没记错的话,个人,然后可以从这些 LIR 或 NIR 请求 IP 地址,在某些情况下,直接从 RIR 请求。
如何处理 IP 地址块取决于您自己。要使用它们,确保互联网知道您的 IP 地址在哪里、在哪个网络上以及如何到达那里是有意义的。这可以通过使用 BGP 等协议的路由器和网关来实现,这使得网络可以相互通信,这样它们就知道它们存在并且知道它们提供哪些网络。但目前,我们已经超越了 IP 地址。(如果您想了解更多信息,请查阅自治系统、对等和 BGP)
大部分信息可在此处找到:http://www.internetassignednumbersauthority.org/numbers
因此,基本上,经过几个组织之后,一系列 IP 地址(一个块)被划分并拆分成更小的单元,最终由 ISP 拥有。然后,该 ISP 让其他 ISP 知道它拥有该范围的 IP 地址,以便可以使用它进行通信。此时,ISP 的网络已准备就绪,只需为客户端网络分配一个 IP,然后该 IP 将成为客户端的 WAN IP 地址。
现在,ISP 无法告诉其他 ISP 它拥有它实际上并不拥有的 IP 地址,因为它无法与 LIR/NIR/RIR 级别的注册表匹配,而这些注册表可以公开检查(也可以自动检查)。因此,在该级别,不会发生重复的 IP。当流氓 ISP 试图这样做时,它几乎会与其他互联网断开连接,因为不允许它与其他 ISP 通信(因为它们基本上切断了假冒 ISP 与其自己网络的网络连接)。
这样你就处于 ISP 级别。由于 ISP 知道它拥有哪些地址,知道它拥有哪些客户端,以及这些客户端连接到哪些网络连接,因此它可以通过不允许客户端使用未由 ISP 分配的 IP 来简单地执行其规则。它只是忽略了来自不应该在那里的客户端的所有互联网流量。如上文所述,分配 IP 地址是由一个系统完成的,该系统会记住谁被分配了哪个 IP 地址,因此它永远不会重复提供 IP 地址。
答案4
方案各不相同,但在最常见的方案中,ISP 会跟踪已分配的 IP 地址和可用的 IP 地址。当客户建立连接时,如果该 IP 地址仍然可用,ISP 会为其分配上次连接时分配的 IP 地址。如果失败,ISP 会为其分配一个已知合适且未使用的 IP 地址。