网络设备硬核技术内幕 路由器篇 11 CISCO ASR9900拆解 (五)

2022-07-27 13:20:56 浏览数 (1)

在前几天的专题中,我们拆解了ASR9900的转发线卡、交换网板、NP芯片、控制平面实现。

在大型分布式系统设计中,还有一个要点是资源的分配。

对于转发平面而言,最重要的资源就是表项资源,也就是TCAM资源的分配。

让我们重温一遍ASR9900的转发流程:

数据包进入线卡之后进行流分类,确定是指向控制平面还是需要转发。

之后,是ACL和QoS分类,让NP查询TCAM,确定匹配的ACL和QoS策略。

接着,NP开始执行最关键的步骤:转发表查找,在这一步中,NP将会在TCAM中查询FIB表。

这里的FIB是广义的转发信息表项,不仅限于LPM(最长匹配)的三层路由,还会有MPLS的标签转发表和二层MAC转发表,这两种表项都属于LEM(精确匹配)。

此外,MPLS FEC(转发等价类)则既可能有基于LEM的(VLL/VPLS),也可能有基于LPM的。(MPLS L3 VPN)。

这些表项都在TCAM中存储和检索。

对于出方向,省却了FIB表的查找,但需要根据数据包头的Metadata将数据包转发到对应的端口,并查找出方向ACL/QoS策略并执行。这些也需要访问TCAM。

NP将以上的TCAM查询动作抽象为这些步骤:

  1. 构建查询键值。 如三层路由转发表的查询键值为前缀 Token。Token是VRF相关的一个ID; 而ACL的查询键值可以是IP前缀,也可以是UDP/TCP端口等。
  2. 位掩码(Bit Mask)。前面提到,TCAM的查询,可以某些bit为Not Care,如下图:
  1. 选择TCAM Bank。LightSpeed和Tomahawk线卡上,TCAM以BANK形式组织,每BANK可以配置为有512 Entry x 160bit的方式,也可以配置为128 Entry x 640bit的方式。多个BANK可以配置为一个BANK组(Bank Set)。 在Tomahawk线卡上,共有9个BANK组。其中5个为二层业务组,如物理接口与接口聚合组,VLAN,隧道等资源;2个为160bit组,用于IPv4 FIB和ACL;2个为640bit组,用于IPv6 FIB和IPv6 ACL。 而对于LightSpeed线卡,二层业务是不需要TCAM资源的。NP芯片内置了SRAM以及哈希引擎实现LEM(精确匹配查找),只有FIB和ACL需要消耗TCAM资源。 下表是不同TCAM的分区的用途。

实际上,无论是在路由器还是交换机上,TCAM资源都是非常宝贵的。一般用于需要高速查表的FIB表和ACL表。

由于IPv6的地址本身就需要占用128bit,所以,IPv6表项在TCAM中一般都以640bit单位分配。

对ASR9K的拆解就告一段落了。让我们小结一下心得:

  1. ASR9900采用多级交换架构,线卡上使用CISCO自研的NP实现转发;
  2. NP本身只有数据包处理和QoS管理能力。表项存储在TCAM中,VoQ交换采用FIA实现;
  3. 主控CPU和线卡CPU共同构建分布式控制平面,控制报文分布式处理;
  4. TCAM根据IPv4或MPLS/IPv6组织,有160bit/640bit两种组织方式;

明天我们将拆解另一种路由器的实现。

本期问题:

为什么LEM表也可以不需要在TCAM中存储?

上期遗留问题:

在一台ASR9906上配置了双主控,4块线卡和5块交换网板,那么,控制平面的功能由几颗CPU进行分担?

答案:6颗。双主控和4块线卡分担控制平面功能,而交换网板的CPU仅实现仲裁及各芯片状态监控。

0 人点赞