您实际上需要多少 RAM 来保存整个全局 BGP 路由表?

网络工程 路由 路由器 bgp
2021-07-15 20:59:09

似乎不同的来源声称在 RAM 中包含整个 BGP 路由表信息和让路由器正确路由流量的 RAM 消耗非常不同。

根据计算完整 BGP 馈送的 Cisco 路由器内存要求,对于 500k 路由,大概数字似乎在 150 MB 到 500 MB 之间。另一方面,思科文档说明路由器需要 8 GB 才能支持 100 万条路由:https : //www.cisco.com/c/en/us/products/collat​​eral/routers/asr-1000-series-aggregation-服务路由器/data_sheet_c78-441072.html

一条路由实际平均需要多少 RAM?Cisco 的数字表明,一条路由大约需要 8 KB(包括操作系统开销),这对我来说似乎不是一个合理的数字。您可以将有关一条路线的信息存储得更紧凑!

硬内存需求是否实际上是由用于将整个表保存在 RAM 中的算法引起的,在 RAM 中您可以为不同的索引和其他旨在加速实时处理的辅助数据提供大量内存开销?

我对 IPv4 实现特别感兴趣,但有关 IPv6 的其他信息也会很有趣。

1个回答

以下是给出的信息,但截至 2021 年 10 月 5 日,生产路由器仅支持 IPv4 BGP:

1547576 RIB nodes, using 142 MiB of memory
1687609 BGP routes, using 103 MiB of memory
8 Static routes, using 384 bytes of memory
1687601 Adj-In entries, using 52 MiB of memory
14 Adj-Out entries, using 560 bytes of memory
280025 BGP attributes, using 15 MiB of memory
40216 BGP extra attributes, using 3456 KiB of memory
393 unknown attributes
225597 BGP AS-PATH entries, using 5287 KiB of memory
225879 BGP AS-PATH segments, using 5294 KiB of memory
1127 BGP community entries, using 35 KiB of memory
13 BGP community entries, using 416 bytes of memory
3 peers, using 13 KiB of memory
31 hash tables, using 1240 bytes of memory
507176 hash buckets, using 12 MiB of memory

这个特定的路由器有 2 个 BGP 邻居(是的,它声明了 3 个对等点,但实际上有 2 个邻居)并从每个邻居接收完整的 (IPv4) Internet 表。

BGP 守护进程在这个系统上使用 706Mib(否则它有 4GB 的 RAM 并且使用少于 2GB)