SRv6网络编程自学系列之二 | SRv6技术的硬件实现挑战

书籍来源:《SRv6:可编程网络技术原理与实践》

2022年刚出的书,业界的众多大佬合力,将SRv6最前沿的技术分享了出来。一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:SRv6网络编程自学系列之二 | 汇总_COCOgsta的博客-CSDN博客


现阶段,网络设备仍以路由器、交换机为主,SRv6给这些设备的处理能力带来了巨大挑战。

5.2.1 IP报文的硬件处理过程

此处以路由器针对IP报文的常规转发过程为例,简要介绍IP报文的硬件处理流程(如图5-2所示),具体如下。

步骤1 报文通过物理链路基于比特流进入路由器,路由器将串行比特流转换为以byte为单位的以太帧(Ethernet帧),并送至NP处理。

步骤2 上行NP若集成MAC芯片功能,则将Ethernet帧转化为IP报文;否则,直接对IP报文进行处理。

步骤3 上行NP对IP报文进行报文解析、流分类,根据分类结果执行包过滤、重标记、重定向等处理;进行查表操作,获得报文的出接口、下一跳信息;根据报文入接口配置或上行复杂流分类中配置的承诺访问速率(Committed Access Rate,CAR)进行报文处理。

步骤4 报文进入上行TM的队列后,由TM进行队列调度,并进行拥塞避免/管理以及流量整形等操作。

步骤5 报文在上行FIC处被切分为信元,以便在路由器内部进行快速交换。

步骤6 交换矩阵将信元交换至下行FIC;下行FIC将信元重组为IP报文。

步骤7 报文进入下行TM的队列后,由TM进行队列调度,并进行拥塞避免/管理以及流量整形等操作。

步骤8 报文进入下行NP后,获得链路封装信息,对IP报文进行流分类,根据分类结果执行包过滤、重标记、重定向等处理;根据报文出接口配置或下行复杂流分类中配置的CAR进行报文处理。

步骤9 下行NP若集成MAC芯片功能,则将IP报文转化为Ethernet帧;否则,直接将IP报文转至“报文发送”环节。

步骤10 若“报文发送”环节具备Ethernet帧封装功能,则将IP报文转化为Ethernet帧;否则,对NP生成的Ethernet帧直接进行处理。路由器将该帧转换为串行比特流,采用光/电信号形式发送出去。

5.2.2 SRv6报文处理对硬件的挑战

SRv6报文在端到端转发过程中主要增加了SRv6报文封装、本地SID表查表、SRH报头操作以及报文解封装等环节。这些环节都由上行NP完成,因而SRv6报文对硬件的需求主要集中在NP芯片。

SRv6报文封装过程通常发生在SRv6的Headend节点。在该节点,NP芯片可根据指令对IP报文进行SRv6 Insert模式与SRv6 Encaps模式的封装。以SRv6 Insert封装模式性及例进行介绍,如图5-3所示。

NP在对IP报头进行解析、封装等操作时,会为每个报头分配一个固定大小的报文处理单元。假定NP芯片为每个IP报头所分配的报文处理单元为144byte,每个IPv6基本报头为40byte,则每个报文处理单元为封装SRv6报头所剩余的空间为104byte。

Insert模式下可封装的SRv6 SID不超过6层。如果采用Encaps模式,所封装的SRv6 SID将不超过三层。

如果SRv6报头超过了报文处理单元尺寸,则IP报头需在NP芯片内多次流转,才能完成操作。这对报文转发性能与带宽都将产生巨大影响。为了实现更多层数的SRv6 SID封装,需要对NP芯片进行重新优化设计。

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/129917030