当前位置:网站首页>网络设备硬核技术内幕 路由器篇 (10) CISCO ASR9900拆解 (四)
网络设备硬核技术内幕 路由器篇 (10) CISCO ASR9900拆解 (四)
2022-07-27 14:06:00 【用户8289326】
先小结一下前三篇的内容:
CISCO ASR99作为高端路由器,一般在企业总部/DC出口、广域网核心,以及运营商城域边缘(Metro Edge)作为BRAS/SR使用,因此,整机采用了分布式和HA设计,包括NP+FIA+Switch Fabric构成的线卡和Switch Fabric+仲裁单元构成的交换网板。特别地,分布式交换网仲裁和VoQ交换的设计,避免了交换网内拥塞,也避免了线卡上单端口拥塞引发其他流丢包。
那么,ASR9900在控制平面的分布式HA实现是怎么做的呢?
如图,ASR9900的控制平面由主控CPU、线卡CPU以及NP的控制平面包处理单元构成。
当路由协议、BFD、生成树协议等数据包被送到NPU时,首先会由LPTS(Local Packet Transport Service)进行处理。由于控制平面处理能力大大低于转发平面,因此,LPTS会按照一定的策略进行限流,避免过多的本地数据包上送主控。
对于BFD这种数量大,周期频繁(3.3ms),处理简单(连续若干个周期没有收到即触发事件)的数据包,NP可以在本地硬件处理,不上送主控。
ARP,ICMP,OAM以及二层生成树协议等这种具有局部性的控制包则在线卡的CPU上处理。
什么控制包需要在主控CPU处理呢?
当然是涉及全局的控制包了。如路由协议、MPLS LDP,PIM,HSRP和VRRP等。
它们的工作界面划分如下:
记得我们提过的,FIB表项的生成过程吗?
对于分布式转发的路由器,实际上,FIB表项有软件FIB(SW FIB)和硬件FIB(HW FIB)的区别。为什么需要这样的设计呢?
原来,如果所有的线卡都向主控CPU发起查询,主控CPU的负担会比较重。因此,在主控CPU学习到路由后,会根据RIB选出合适的路由表项,生成软件FIB,并下发到各个线卡的CPU。当线卡NP收到转发不出去的数据包的时候,会在线卡CPU查询软件FIB,还查询不到的时候才会上主控查询。这样,就可以通过线卡上的CPU分担主控CPU下发FIB的工作,体现分布式系统的优势。
对于二层转发的情况,路由器与交换机的工作方式类似,需要对未知MAC学习。ASR9900的MAC学习分两步走:
- NP本身学习到未知二层数据包的MAC;
- NP对MAC表项经过Switch Fabric泛洪到本线卡内所有的NP,以及其他线卡上的NP。
控制平面还有一个重要任务,是处理OAM/BFD一类心跳报文。
由于BFD的数据包数量很多,以3.3ms周期计,每秒会产生300个。如果整机有480个接口,每秒钟整机需要处理144000个BFD报文。我们需要利用分布式的方法,避免这144K个BFD报文都在主控CPU处理。
如图,在主控(RP)上配置BFD之后,主控(RP)会维护一个BFD会话表,并将其下发到所在的线卡。每个线卡的NP芯片会处理BFD会话,并在BFD状态有变时,上报主控(RP)。RP会针对BFD状态倒换路由。
由于NP有着强大的数据包处理能力,在Tomahawk和LightSpeed线卡上支持NP处理BFD。
每个BFD Hello在NP上进行处理,NP发现连续三个BFD丢失,才会上报线卡CPU处理。
本期问题:
在一台ASR9906上配置了双主控,4块线卡和5块交换网板,那么,控制平面的功能由几颗CPU进行分担?
上期遗留问题解答:
既然ASR9900有N+1冗余的交换网板,而且同一线卡之间的NP也需要在交换网板上互通,为什么还要在线卡上设计Switch Fabric?
由于NP到接口的Serdes容量与到Switch Fabric的交换容量是相等的,因此,如果线卡上没有Switch Fabric提供到交换网板的冗余带宽,那么,无法实现交换网板的N+1冗余。
边栏推荐
- 事务_基本演示和事务_默认自动提交&手动提交
- Summary of basic knowledge of C language
- Visual system design example (Halcon WinForm) -9. text display
- web上构建3d效果 基于three.js的实例
- DirectX 入门知识
- 移动端使用vantUI的list组件,多个tab项来回切换时,列表加载多次导致数据无法正常展示
- What you want most is the most comprehensive summary of C language knowledge. Don't hurry to learn
- TXT把换行 替换为空格或者取消换行
- If we were the developer responsible for repairing the collapse of station B that night
- 网络设备硬核技术内幕 路由器篇 15 从鹿由器到路由器 (下)
猜你喜欢

FPGA时序约束分享04_output delay 约束

对话框管理器第三章:创建控件

Stock trading 4

Interprocess communication

@Bean 与 @Component 用在同一个类上,会发生什么?
How to solve cache avalanche, breakdown and penetration problems

一文搞懂 Redis 架构演化之路

Who can't capture packets these days? Wireshark packet capture and common protocol analysis are for you!

Finally, someone finished all the dynamic planning, linked list, binary tree and string required for the interview

Jmeter录制接口自动化
随机推荐
NEFU118 n!后面有多少个0【算术基本定理】
腾讯二面:@Bean 与 @Component 用在同一个类上,会怎么样?
< C> C language hash table usage
多表查询_练习1&练习2&练习3
Unity3D学习笔记10——纹理数组
多表查询_子查询概述和多表查询_子查询情况1&情况2&情况3
@Bean 与 @Component 用在同一个类上,会发生什么?
Airport cloud business sign analysis
代码覆盖率统计神器-jacoco工具实战
Is there a regular and safe account opening platform for gold speculation
What you want most is the most comprehensive summary of C language knowledge. Don't hurry to learn
[medical industry] DICOM converter tools
于不确定中见“安全感” 沃尔沃2022年中问道
Printf function buffer problem
@Detailed explanation of repository
网络设备硬核技术内幕 路由器篇 21 可重构的路由器
FPGA timing constraint sharing 04_ Output delay constraint
周鸿祎:数字安全能力落后也会挨打
南山区民政局关于开展2022年度南山区社会组织等级评估工作的通知
DXGI 方式采集流程