当前位置:网站首页>网络设备硬核技术内幕 路由器篇 11 CISCO ASR9900拆解 (五)
网络设备硬核技术内幕 路由器篇 11 CISCO ASR9900拆解 (五)
2022-07-27 14:06:00 【用户8289326】
在前几天的专题中,我们拆解了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查询动作抽象为这些步骤:
- 构建查询键值。 如三层路由转发表的查询键值为前缀+Token。Token是VRF相关的一个ID; 而ACL的查询键值可以是IP前缀,也可以是UDP/TCP端口等。
- 位掩码(Bit Mask)。前面提到,TCAM的查询,可以某些bit为Not Care,如下图:
- 选择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的拆解就告一段落了。让我们小结一下心得:
- ASR9900采用多级交换架构,线卡上使用CISCO自研的NP实现转发;
- NP本身只有数据包处理和QoS管理能力。表项存储在TCAM中,VoQ交换采用FIA实现;
- 主控CPU和线卡CPU共同构建分布式控制平面,控制报文分布式处理;
- TCAM根据IPv4或MPLS/IPv6组织,有160bit/640bit两种组织方式;
明天我们将拆解另一种路由器的实现。
本期问题:
为什么LEM表也可以不需要在TCAM中存储?
上期遗留问题:
在一台ASR9906上配置了双主控,4块线卡和5块交换网板,那么,控制平面的功能由几颗CPU进行分担?
答案:6颗。双主控和4块线卡分担控制平面功能,而交换网板的CPU仅实现仲裁及各芯片状态监控。
边栏推荐
- np. Usage and difference of range() and range()
- 视觉系统设计实例(halcon-winform)-9.文字显示
- 【ManageEngine】什么是SIEM
- 多表查询_子查询概述和多表查询_子查询情况1&情况2&情况3
- NEFU119 组合素数【算术基本定理】
- Spark job uses log4j appender to append logs to local files or mysql
- An example of building 3D effects on the web based on three.js
- Photo album based on gec6818 development board
- 视觉系统设计实例(halcon-winform)-10.PLC通讯
- 关于 CMS 垃圾回收器,你真的懂了吗?
猜你喜欢

@Bean 与 @Component 用在同一个类上,会发生什么?

What if win11 wallpaper turns black? The solution of win11 wallpaper blackening

What you want most is the most comprehensive summary of C language knowledge. Don't hurry to learn

User question understanding and answer content organization for epidemic disease Science Popularization

Redis

Navicate reports an error access violation at address 00000000

FPGA timing constraint sharing 04_ Output delay constraint

CPU、GPU、NPU的区别

DirectX 入门知识
![[intensive reading of papers] grounded language image pre training (glip)](/img/3a/4ad136065acb8627df9e064ed8ef32.png)
[intensive reading of papers] grounded language image pre training (glip)
随机推荐
Visual system design example (Halcon WinForm) -10. PLC communication
Is it safe for Guosen Securities to open a mobile account? Is Zhongshan securities reliable
adb命令 (安装apk包格式:adb install 电脑上apk地址包名)
SkyWalking分布式系统应用程序性能监控工具-中
User question understanding and answer content organization for epidemic disease Science Popularization
Annual comprehensive analysis of China's online video market in 2022
Construction of knowledge map of financial securities and discovery of related stocks from the perspective of knowledge relevance
一文搞懂 Redis 架构演化之路
Database storage series (1) column storage
视觉系统设计实例(halcon-winform)-10.PLC通讯
Stm32f103c8t6 drives sh1106 1.3 "IIC OLED display under Arduino frame
The interviewer asked: how to judge whether an element is in the visible area?
OBS 进阶之 DXGI 采集屏幕流程,并如何修改为自己的光标
CPU、GPU、NPU的区别
An example of building 3D effects on the web based on three.js
网络设备硬核技术内幕 路由器篇 14 从鹿由器到路由器 (中)
mysql保存数据提示:Out of range value for column错误
Skywalking distributed system application performance monitoring tool - medium
Jmeter录制接口自动化
How to solve cache avalanche, breakdown and penetration problems