目前正在研究的切换方法,有人能向我证实以下假设吗?我也会有一些问题。
谢谢。
发布于 2018-02-26 04:20:04
既然您在问题中使用了Cisco术语,我将假设您只是在谈论思科设备。另外,我将假设您只对L2+L3设备感兴趣(比如Cisco催化剂系列交换机),而不是对纯L3设备(如ISR和ASR路由器)感兴趣。
正如Zac67所指出的,Cisco有一些仅具有纯第二层功能和零层三层功能的模式。然而,催化剂系列中的所有开关都能够实现某些第三层功能,尽管该软件可能有意根据许可证等禁用一些第三层功能,我将只回答这些L2+L3设备。
与其根据“这是第二层交换机所包含的内容”和“这是第三层交换机所包含的内容”来区分行为,更有用的讨论将是基于第二层交换(桥接)是如何进行的以及第三层交换(路由)是如何实现的。我将使用“转发”一词来表示桥接和路由。
在高层次上,有两种方法:软件转发和硬件转发。顾名思义,在硬件转发中,ASIC转发数据包。在软件转发中,包到达CPU,在CPU中,软件代码将检查分组的各个字段,并确定必须在哪个接口(S)上发送数据包。硬件转发要快得多,但是软件转发更灵活,因为它只是基于一些程序员编写的代码。
需要注意的是,硬件和软件转发是共存的。在理想情况下,所有数据包都将在硬件中转发,但在某些情况下,数据包不能在硬件中转发,必须在软件中转发。这方面有很多例子。例如,没有思科ASIC支持Appletalk路由,但IOS版本仍然支持Appletalk。如果交换机接收到Appletalk数据包,并且配置了Appletalk,则将该数据包发送到Appletalk路由代码将该数据包路由到正确接口的软件。另一个示例是具有一个或多个标头选项字段的IPv4数据包。另一个例子是,当有太多的路由时,硬件表(即ASIC )无法容纳更多的路由。
Cisco使用多种技术在软件中路由数据包:(1)进程交换(2)快速交换和(3) CEF交换。这些都是不同的软件技术,在每秒可以路由的数据包的最大数量方面具有不同的性能。快速切换#2有点过时了.CEF交换使用一种称为FIB的软件数据结构,以确定必须向其发送数据包的输出接口。
软件中的L2桥接没有具体的命名技术。它被称为“软件中的L2桥接”。
接下来是硬件转发。ASICs是由供应商根据市场细分的要求设计的,其中一个是性能,另一个是成本。因此,进入ASIC的组件基本上是可以在满足性能标准的同时投入的最便宜的组件。我想说的是,没有硬性规定L2桥接必须始终使用。是的,对于L3路由,因为需求是匹配可变长度的CIDR掩码,所以TCAM是当今可用技术使用的最有效的组件。但是,例如,为了执行L2 MAC地址查找(这是一个完整的48位查找),ASIC设计人员可以通过使用更便宜的RAM类组件(特别是如果条目可以散列、排序或排列,以便查找时间能够满足性能约束)。
Cisco交换机中的第三层路由查找TCAM是FIB的硬件表示形式。换句话说,在硬件L3中编写了与上述软件IPv4路由技术#3相同的FIB数据结构,以实现IPv4和IPv6数据包的硬件路由。
注意,L3路由以外的其他原因也在ASIC中使用TCAM。一个例子是实现安全ACL,并标识用于QoS处理的数据包。思科4500和3850交换机都有用于L3路由和安全/服务质量的TCAM。
关于“商人硅”的最后说明。近年来,主要设备供应商(思科、朱尼尔、阿丽斯塔.)有一种思想流派.只有那么多的“秘密酱汁”可以加入到ASIC中,也就是说,设计自己的定制ASIC来进行L2/L3转发并没有多少竞争优势。现在的竞争是软件创新,基于这个原因,我们的思维过程是“为什么不直接从Broadcom这样的厂商那里采购ASIC,并集中精力在软件上进行创新呢?”话虽如此,思科至少在过去几十年里投入了数十亿美元来建立内部的ASIC,而且人们不愿意把它全部扔掉。
发布于 2018-02-25 19:20:41
(可能)今天大多数交换机使用的是大容量硅(Broadcom非常流行),ASIC要昂贵得多,而且往往速度更慢。
简单的CAM用于交换,路由/L3交换需要TCAM,因为前缀长度不同。
我不认为CEF是在软件中完成的,因为其主要目的是加快转发过程并减少延迟。
对转发表使用标准RAM会导致必须按顺序搜索匹配的问题。CAM只需一步就能提供匹配。
注意,硬件交换/路由总是使用(T)CAM,而不管交换引擎是ASIC还是块体硅。
发布于 2018-02-25 19:26:10
再加上67‘S的回答。
不要混淆第二层帧交换和第三层分组交换(路由).第三层交换机主要是具有第三层(路由)模块的第二层交换机,而FIB/CEF/快速交换等则用于第三层分组交换。
思科交换机,包括3850和45xx都有一些TCAM。假设您拥有正确的许可证,它们可以作为第三层交换机运行.
https://networkengineering.stackexchange.com/questions/48640
复制相似问题