一种模块化的IPv6路由转发“两性”实验设计

2018-09-29 03:08陈世伟
实验室研究与探索 2018年8期
关键词:单播两性网络设备

陈世伟, 高 明

(浙江工商大学 a.组织部;b.信息与电子工程学院,杭州 310018)

0 引 言

尽管IPv4是当前网络的基本形态,但是IPv6被认为是下一代互联网的基础备受关注[1]。路由转发是IPv6网络中路由器最为重要的功能,解决IPv6数据包如何从原主机到达目的主机的问题[2]。当前针对IPv6的实践教学分为两个层次,绝大多数学校采用组网工程的方式进行教学,基于现有的IPv6路由器产品组建一个规模不大的IPv6数据传输网络,重点考察学生的设备操作和调试能力,基本不用编程,所以难度不大,不足的地方是实验的“两性”无法体现[3-4];对于一些学生能力强的学校则会采用基于二次代码开发的方式进行教学,让学生在已有的网络函数库基础之上自行编写代码实现IPv6数据包的路由查表过程[5-7],这种方式一般不太强调IPv6组网的概念,更多关注的是单个路由器内IPv6数据包处理,重点考察学生的基础理论知识和编程能力,难度大,并不适合全面推广。

为了改变传统IPv4网络的“僵化”问题,近年来许多研究者尝试对网络进行体系结构方面的重新设计,雨后春笋般地出现一批新颖性的网络设计,如主动网络、开放可编程网络、柔性可重构网络、软件定义网络等[8-9,15]。作为一名网络工程专业的学生了解网络领域的这些新动态无疑是十分必要的[10]。

在全面考察各种网络新设计之后,发现了一些很有趣的研究成果可用于平时的网络教学,其中转发与控制分离(Forwarding and Control Element Separation,ForCES)就是一个典型。ForCES是互联网权威机构——互联网工程任务组下面一个专门从事开放可编程IP路由器研究的工作组,创新性地提出网络设备中的控制件(Control Element,CE)和转发件(Forwarding Element,FE)应在物理上分离,彼此之间的通信协议应标准化、公开化[11],使得任意厂商的CE和FE可以无缝对接,降低网络设备的研发门槛和成本。传统上作为网络设备“大脑”的CE对“躯干”FE的控制属于不能说的“机密”,对外不开放。此外,ForCES还创造性地将FE解构成一系列逻辑功能块(Logical Function Block,LFB)组合,每一个LFB都是对网络设备内部对数据包加工处理的一个动作,且每个LFB的行为都受到CE的控制[12]。CE可以根据需要灵活配置LFB的组合方式,实现对数据包的不同处理流程,进而体现为不同功能的网络设备,如IPv4路由转发、IPv6路由转发、防火墙、入侵检测等。ForCES思想是有前瞻性的,特别是它提出的LFB动态拓扑的概念[12]和当下研究热点微服务[13]和服务功能链[14]一脉相传,对于学习网络设备内部组成和原理意义具有十分重要的意义。

利用LFB动态拓扑构建不同功能的网络设备的过程类似搭积木,每个LFB就像一个积木块,搭建者需要了解每个LFB的功能、属性以及输入输出约束。完成整个构建过程虽不需要大量的代码编写,却要求操作者具有扎实的路由交换理论知识、熟悉网络设备内部组成及原理,有趣不枯燥且具有良好的可操作性,用做网络通信领域内“两性”实验的开发再适合不过。

1 转发件建模

FE模型由ForCES工作组提出,旨在描述FE内数据包从输入到输出的处理过程,将每个独立的数据包处理功能建模为一个LFB,LFB根据事先约定的操作来处理数据包。一个完整的LFB拓扑可以实现诸如IPv4转发的网络服务,CE通过控制LFB修改FE的行为,如LFB的属性。典型的FE模型如图1所示。

图1 FE模型

FE由若干个LFB组成,每个LFB包含的内容有输入、输出、属性以及它的功能定义[5]。数据通道描述了数据包从输入到输出的中间过程,前一个LFB的输出就是下一个LFB的输入。LFB之间前后关系受到FE模型定义的约束,这种约束以LFB库的形式被CE和FE共享,用户在配置之前需要掌握这些信息。

每一种常见的网络服务(例如IPv6路由转发)都可被定义为一组LFB集合。实现图2所示的基于ForCES的IPv6路由转发服务,关键在于分析和设计与IPv6相关的LFB并构造具有合理拓扑的FE模型。

图2 支持IPv6的FE转发件模型

2 IPv6路由转发设计

IPv6数据包转发由以下3个阶段组成[2]:

(1) 验证阶段。在此阶段,首先IPv6包头检查确认数据包没有任何标识错误,错误的包被发送到CE进行进一步处理或被FE直接删除。

(2) 转发阶段。从提取目的IPv6地址、查询转发表,当查询操作成功后获得下一跳IPv6地址,输出接口等;当查询操作失败后数据包被丢弃或发送到CE进行进一步处理。这个阶段最重要的数据结构是转发表,不同的实现可能在转发表上有不同的组织,通常有两种方案:统一表和分离表。本实验采用分离表设计来表示IPv6单播转发信息,如图3所示。这两个分开的数据实体被称为前缀表和下一跳表。前缀表由包括前缀和下一跳表中的条目的下一跳索引组成。前缀表由包括下一跳索引和下一跳信息列表的条目组成[6]。

图3 IPv6路由转发表设计

(3)发送阶段。数据包已经获得正确的路由信息后,发送之前需要进行链路层的封装,如添加以太网报头。该阶段维护了一个重要数据结构2层地址解析表,通过改变为路由后的数据包查找正确的2层地址。

根据上述3个转发阶段的讨论,可以看出路由转发表建模正是FE建模的关键。图3中描述了每个表的条目以及路由转发表和2等地址解析表之间的关系。这样的分离表设计相较于统一表具有如下2个优势:①当一组路由改变时,一些高性能网络节点需要更新整个转发信息表,工作量很大,而分离表则可以通过改变下一跳表项的子集来有效地更新转发信息;②对于前缀相同的多条路由,可以共享同一个前缀表项,节省了路由表存储空间。

一个满足IPv6路由转发的LFB连接关系如图4,定义了以下LFB:包头校验、单播最长前缀匹配和下一跳应用 。图3中的前缀表保存在单播最长前缀匹配LFB中,下一跳表保存在下一跳应用LFB中,2层地址解析表保存在以太单播封装LFB中。

以太网接口(输入)LFB:表示的是网络接口,用户接受外界输入的数据包;

封装/解封装LFB:负责去除以太网的帧头并进行简单的数据包分类,主要用于分流IPv4和IPv6;

包头校验LFB:对IPv6数据包进行校验,将正确的数据包输入到单播最长前缀匹配LFB;

单播最长前缀匹配LFB:根据存储的前缀表对IPv6数据包进行最长前缀匹配,进而确定下一跳索引;

下一跳应用LFB:根据前一个LFB所确定的下一跳索引,查询下一跳表,获得2层索引;

以太单播封装LFB:以2层索引查找2层地址解析表,获得下一跳地址等信息,完成IPv6数据包以太网帧封装。

以太网接口(输出)LFB:表示的是网络接口,用于对外发送封装后的以太网帧数据。

图4 实现IPv6路由转发的LFB连接关系

LFB是FE的基本构件,每一个LFB的实现包含了模型描述、输入输出及数据结构等内容,这里以下一跳应用LFB为例,详细介绍LFB的设计思路。

如图5所示,下一跳应用LFB对IPv6数据包执行下一跳操作,例如跳限增量和校验和重计算。IPv6前缀表查找成功后,需要根据前缀表中的下一跳索引查找下一跳信息,因此从IPv6前缀表中检索到的IPv6数据包和元数据成为LFB的输入 。输出有3种可能情况:①成功,满足下一跳应用的数据包,它产生由下一跳应用LFB修改的新IPv6数据包和新的元数据,包括转发件号,输出端口号,2层索引,2层索引类型等;②异常,以下数据包被标识为异常:跳限为零、接口的最大传输单元小于报文大小、输出端口与接收数据包的输入出端口相同、数据包目的地址用于本地接口,这种情况下下一跳应用LFB将生成经过修改的IPv6数据包和新的元数据,包括输入端口号和异常ID;③失败,用于标识在下一跳操作中失败的数据包,下一跳应用LFB删除IPv6数据包并且不生成元数据。

图5 下一跳应用LFB设计

3 实验设计评估

实验中CE基于Linux系统实现,硬件平台为通用处理器,IPv6路由协议栈使用开源的路由软件Zebra。FE硬件平台是英特尔公司的网络处理器,每个LFB基于微块加工数据包。微块是具有单个功能的物理组件,通常可以处理数据包,LFB是微块的逻辑抽象和建模。通过图形用户界面可以动态地添加和删除LFB,以及查询和配置LFB的属性和能力,如图6所示。这种通过动态配置LFB拓扑定义IPv6转发功能的过程就像在Linux内核中动态插入或删除的模块一样,具有极大的灵活性。

图6 实验的图形化操作接口

实验中FE具有两个100 MB端口,场景配置为跨两个端口之间的IPv6转发,使用SmartBits软件来测量两个100 MB端口的线速率下的零丢失吞吐量。测试生成7种大小的数据包,分别是:64,128,256,512,1 024,1 280和1 518 Byte,结果如图7所示。

可以看出,吞吐量接近理论极限。在不牺牲任何性能的情况下,本实验所设计实现的IPv6路由转发平台具有高度灵活性,可配置和可扩展。

4 结 语

一种基于模块化的IPv6路由转发实验设计本质上就是利用ForCES LFB的模块化和抽象化特征,用搭积木的方式构建一个支持IPv6报文转发功能的LFB连接关系,当然使用这种方式可以构建的网络功能远不止IPv6报文转发,其他还有防火墙、入侵检测等。实验设计具有明显的“两性”实验特征,通过实验的学习学生们有机会得以一窥网络设备的内部结构,为以后从事该领域的研发工作打下了良好的基础。

猜你喜欢
单播两性网络设备
高空通信平台非正交广播与单播复用容量研究
网络设备的安装与调试课程思政整体设计
一种基于C# 的网络设备自动化登录工具的研制
DMC-IA-AM两性聚丙烯酰胺用于混合废纸浆抄纸
两性聚丙烯酰胺的性质、合成与应用研究进展
DADMAC-AA两性共聚物的合成及应用
城市车辆网络单播路由协议:审查、分类和开放问题研究
IP互动电视快速频道切换的解决方案与实现
基于列车监测网络设备的射频功放模块设计
基于三层交换技术架构数字化校园网络设备的配置与管理