边界网关协议可以极大地帮助路由的可扩展性


边界网关协议可以极大地帮助路由的可扩展性

文章插图
在计算机科学中,一个重要的概念是可扩展性 , 或者说,随着任务规模的增加,处理任务的方式保持不变 。例如,当你需要跟踪十几个电话号码时,在纸片上写电话号码效果很好:只需十秒钟就能找到给定的电话号码 。但是对于一个拥有10万人口的城市来说,现在需要10万秒(大约一天)才能找到一个数字 。对于一个10万人口的城市来说,找到一个给定名字的电话号码大约需要半分钟 。最大的优势不是用一本书比用一张纸快很多,而是当你把问题的规模扩大一倍时,你解决问题的工作量不会增加一倍:用手机搜索只有两倍大的书只需要几秒钟:是我的名字 。我在下半场找的 。不需要两倍的时间,所以电话本是可扩展的 , 但是废话不是 。路由可扩展性将可扩展性的概念应用于传递问题,并通过互联网将数据包发送到正确的目的地 。
数据路由的可扩展性 。
路由可扩展性包括两个问题:管理平面和数据平面 。
数据平面是一个集中式或分布式模块,它在一台路由器上接收传入的数据包,并在到达目的地的途中将其转发给下一台路由器 。该函数必须在转发表中为每个转发的数据包找到下一跳 。这样做的两个主要机制是TCAM,一个由内置硬件支持的专用内存,用于搜索它,以及使用高级算法搜索的常规内存 。随着表格大小的增加,搜索速度不会降低 。但是,TCAM或内存大小线性增加(或比多级查找快一点),这将增加成本和功耗 。此外,随着每秒转发表查找次数的增加,必须使用更昂贵和更耗电的技术 。随着接口速度的提高,这种增加是必然的 。
【边界网关协议可以极大地帮助路由的可扩展性】2006年在阿姆斯特丹举行的互联网架构路由和寻址研讨会期间 , 有人认为内存速度的提升超过了现成组件的性能提升,尤其是现在SRAM一个人已经不再广泛使用 。过去,计算机使用高速SRAM作为内存缓存,但现在这个功能包含在CPU中,所以SRAM不再是一个容易获得的商用芯片 。这意味着最高端路由器的成本将比目前快得多 。但是在IAB路由与寻址研讨会之后,一些路由器厂商已经出现 , 并在对话和邮件列表中表示,这个问题目前并不立即存在,在可预见的未来,目前预测水平的增长不会造成问题 。
边界网关协议
管理平面由执行BGP路由协议的路由处理器和路由器创建转发表时必须执行的相关任务组成 。它是BGPISP和其他网络用来相互告知使用了哪些IP地址的协议,因此发送到这些IP地址的数据包可以正确转发 。BGP的可扩展性受到需要更新通信、将其存储在路由器中并对其进行处理的影响 。此时,传播更新的带宽根本不是问题 。事实上 , 存储越来越大的BGP表的内存需求可能会带来问题,这通常是由于商用路由器的实现限制,而不是固有的技术问题 。路由处理器基本上是通用计算机,现在可以使用16gb或更多的内存轻松构建 。目前,路由视图公共路由服务器运行的内存为1 GB,大约有40个完整的BGP提要,每个提要大约有56万个前缀(2015年12月的数字) 。
然而 , 这是留给处理的 。BGP所需的处理量取决于BGP更新消息的数量和每个消息的前缀号 。由于每个更新消息中的前缀数量很少,我们将忽略这一方面,只看更新的数量 。大概,除了任何独立的增长,更新的数量随着前缀的数量线性增加 。BGP更新的实际处理非常有限,所以瓶颈是访问内存执行更新所需的时间 。此外,在IAB路由和寻址研讨会期间,提供的信息显示DRAM速度的增长非常有限,跟不上路由表的增长 。
正向表同步
除了单独转发和数据平面的问题,还有更新后转发表与BGP/路由表同步的问题 。根据转发表的体系结构,更新转发表可能会相对耗时 。BGP通常被描述为“路径矢量”路由协议 , 与距离矢量协议非常相似 。因此,它实现了对Bellman-Ford算法稍加修改的版本,理论上至少需要一个迭代次数等于节点数(在BGP的情况下:外部自治系统和内部iBGP路由器)才能收敛 。实际上,收敛发生得更快,因为在网络中的两个位置之间使用尽可能长的路径是不可行的设计 。但是由于乘法效应,单个事件后,必须处理大量不同更新形式的迭代 。例如,在两个AS在两个位置互连的情况下,第一个AS中的更新将通过每个互连链路两次传播到第二个AS 。这导致以下可能的选择:
很多人没有清楚的认识到BGP的这一方面 。尽管路由襟翼阻尼等研究加强了互联网路由的收敛性,但它们确实解决了由此产生的行为 。
考虑到以上情况,我们可以得出结论 , BGP存在一些扩展问题:协议和实现它的路由器还没有为互联网做好准备 , 因为互联网可能需要管理500万个前缀 , 当然也需要5000个单独的前缀 。但是,目前IPv4的增长相对稳定,每年约为16%,因此没有理由立即担忧 。对于IPv6来说尤其如此,它目前在BGP中只有25,000个前缀 。