每个路由器是否都有连接到“Internet”的所有路由器和主机的 IP 地址?

网络工程 路由 ipv4 ip 互联网 IP地址
2021-07-16 21:34:30

我是计算机网络的新手,正在阅读有关路由的主题。

根据我的理解,每个路由器都有一个与之关联的路由表。从该表中,它可以知道为特定目的地选择哪个输出链接,以及距离。

如果是这样,则“Internet”中的每个路由器都必须维护有关连接到 Internet 的所有其他路由器和主机的信息。

由于每个地址是 4 字节长的 IPv4,每个路由器最多需要 17 GB 的空间来单独存储 IP 地址(2^32*4=17179869184 字节 =17 GB)

我的理解有误吗?我没有清楚地了解这是如何工作的。

2个回答

所以有几件事 - 首先,不,所有连接到互联网的路由器都不需要整个地址空间。如果设备只有一个 Internet 连接,它们将有一个默认路由,例如:0.0.0.0/0 指向其上游路由器,仅此而已。这表示路由器没有更好的路由的任何 IP 地址。

ISP 内的路由器可能包含“整个”Internet 路由表。

至于关于保存路由表所需空间的问题的第二部分 - Internet 路由不是作为单独的主机路由存储,而是作为摘要前缀存储。IPv4 Internet 路由的一般规则是,任何 ISP 都不会将任何超过 /24(例如:255 个地址的块)作为单个路由更新进行广告,并且您会发现许多路由聚合得比这更远(每个前缀最多可达 /8s 或 65K 个地址)。

随着时间的推移,随着互联网的发展,路由分解(例如:采用更大的前缀并将其分解为更小的前缀)导致所需的互联网路由数量增加,因此保持表的硬件要求也增加了。

截至今天(2018 年 5 月),共有 717,613 个前缀被广告,这些前缀可以由具有 2GB 内存的路由器轻松存储,并有足够的空间运行路由器操作系统。

如果您有兴趣,我建议您通读https://www.cidr-report.org以获取最新的前缀计数和聚合报告。

路由器不需要知道每个地址。路由器交换前缀(网络),而 ISP 通常只会/24为 IPv4通告或更短的前缀(/48或更短的 IPv6前缀)。路由表包含前缀和到达每个前缀的接口。也有聚合前缀的机会,所以你只需要一个前缀来表示多个连续的前缀,这些前缀都在同一个接口上。这就是默认路由:将所有可能的前缀最终聚合到0.0.0.0/0.

请记住,流量只需要到达 LAN(网络),然后第 2 层在 LAN 上传送流量。

话虽如此,有很多路由器都有完整的互联网路由表,超过 600,000 条路由,但那些是真正的路由器,不像消费级路由器,而且,是的,它们有很多 GB内存。

企业客户也有选择:

  • 企业可以选择从其 ISP 接收完整的 Internet 路由表,但如果客户有多个 ISP,这最有意义。
  • 企业可以选择仅获取其 ISP 网络的路由表,该路由表可能仍然很大,但不会接近完整 Internet 路由表的大小,但它可以是来自多个 ISP 的多个路由表。
  • 企业可以选择仅从其 ISP 获取默认路由。