软件路由器的硬件加速研究

时间:2022-09-01 07:44:04

软件路由器的硬件加速研究

【 摘 要 】 OpenFlow作为软件定义网络的一种实现方案,允许我们可以通过编程实现控制器,从外部控制高速交换机的包转发行为。本文提出了一种使用软件路由器(Quagga)来作为路由引擎,根据路由表状态向控制器发送控制消息,从而控制支持OpenFlow的高速交换机实现路由器效果的一种软件路由器加速方案。

【 关键词 】 quagga;OpenFlow;加速

The Hardware Acceleration Tesearch About Software Router

Wu Ting-yan Wen Fan-rong

(Hunan vocational college of railway technology HunanZhuzhou 412000)

【 Abstract 】 OpenFlow as the implementation of a software defined network, allowing the controller can be programmed and controlled from an external high-speed switch packet forwarding behavior. This paper introduced a novel solution that use a software router (quagga) as the routing engine, according to the state of the routing tables to send control messages to the controller, which control OpenFlow enabled high-speed switches to realize packet forward acceleration purpose.

【 Keywords 】 quagga; openflow; accelerated

1 研究背景

本文提出了一种利用支持OpenFlow协议的硬件交换机作为快速、可编程控制的数据转发平面,通过监控软件路由器的路由表控制交换机转发逻辑的软件路由器硬件加速方案。

2 OpenFlow介绍

一些研究者认为,未来网络发展必然是底层的数据设备(交换机、路由器)只需提供对外开放的流表的公用接口,同时应用控制器控制器,来控制整个网络。OpenFlow技术的出现解决了此类问题。

OpenFlow 发起于斯坦福大学和加州大学联盟,是让研究人员可将企业级以太网交换机作为定制构件用于大学的网络实验,并希望服务器能够直接访问交换机的转发表。在后来斯坦福大学的Clean Slate 计划中OpenFlow 作为计划投资的开放式标准协议。Clean Slate 计划致力于研究在现有网络上利用OpenFlow 技术试验新型的网络协议,最终目标是重新设计网络。

当前网络的报文转发过程完全由交换机/路由器等交换设备控制,而OpenFlow 网络中报文转发过程由交换机和控制器共同完成,从而实现了数据转发和路由控制的分离。控制器可以通过事先规定好的接口操作来控制OpenFlow 交换机中的流表,如修改流表表项以改变流量在网络中的走向,从而达到控制数据转发的目的。

OpenFlow网络由OpenFlow交换机、控制器(Controller)和FlowVisor组成,结构如图1所示。

OpenFlow交换机进行数据层的转发;FlowVisor对网络进行虚拟化;Controller对网络进行集中控制,实现控制层的功能。

(1) OpenFlow交换机

OpenFlow 交换机是OpenFlow 网络的核心设备,由流表(Flow table)、安全通道(Secure Channel)和OpenFlow 协议组成。

流表:流表由多个流表项构成,是交换机进行数据转发控制的关键数据结构,交换机通过查找流表的表项决定对接收到的数据流采取适合的动作。每个流表项包括包头域(Header Field)、计数器(Counter)、行为(Actions)三个域。

包头域包括12 个域,包括输入接口、MAC 源地址、MAC 目标地址、以太网类型、Vlan id、Vlan 优先级、IP 源地址、IP目标地址、IP 协议、IP ToS 位,TCP/UDP 目标端口、源端口。每一个域包括一个确定值或者所有值(any),更准确的匹配可以通过掩码实现。

计数器用来统计流量的某些信息,如发送包数等;动作是交换机接收到报文后的处理方法,包括丢弃、转发端口等,每个表项可有多个动作。

安全通道:安全通道用于交换机与控制器之间的连接,应用OpenFlow 协议,控制器可以通过安全通道配置和管理交换机,也可通过交换机发送报文等。

OpenFlow 协议:OpenFlow 协议支持Controller-to-Switch、Asynchronous 和Symmetric 三种消息类型,每种消息类型都包括多个子类型。Controller-to-Switch 消息由控制器发起,用于管理或获取交换机的状态。Asynchronous 消息由交换机发起,将状态信息更新到控制器。Symmetric消息可由交换机或控制器发起,主要用于建立连接。

(2) 控制器(Controller)

OpenFlow 网络中控制器主要完成路由控制的功能,控制器通过OpenFlow 协议控制交换机中的流表,交换机通过流表项中的action对报文进行相应的操作。

(3)FlowVisor

FlowVisor运行于控制器与交换机之间,用于实现网络的虚拟化。FlowVisor通过抽象层将物理网络分为多个逻辑网络,每个逻辑网络有不能的地址和转发机制,且能共享相同的物理设备。其中,切片隔离是实现FlowVisor 虚拟化的基本要素,其技术正在发展之中。当前,FlowVisor按带宽、拓扑结构、流量、设备CPU和转发表进行虚拟化及隔离。

OpenFlow被认为是SDN架构的控制平面和数据层平面间的第一个标准通信接口。至今OpenFlow技术还在不断发展完善中。OpenFlow控制器负责转发策略的制定,通过OpenFlow协议与OpenFlow交换机进行通信建立、策略下发、状态监控。OpenFlow控制器与OpenFlow交换机之间的工作模式一般是多对多、一对多。OpenFlow交换机可以是支持OpenFlow技术的交换机,也可以是在传统交换机上进行扩展而形成的混合型交换机。

OpenFlow交换机的转发策略主要保存在一个或多个流表(Flow Table)和一个组表(Group Table)内。在最初的设计中仅包含一个流表,为了提高存储资源利用率、加快检索速度,流水线式的多表结构被提出。交换机的每个流表都包含一系列流表项(Flow Entry),每条流表项都包含匹配域(Match Fields)、计算器(Counters)和指令(Instructions)三部分。

3 Quagga介绍

Quagga是一个开源的软件路由引擎,它的主要功能是提供基于TCP/IP的路由服务。Quagga支持的路由协议有:OSPF v2、OSPF v3,RIP v1、RIP v2、BGP-4等,Quagga还支持特殊的路由反射物和路由服务器行为。除了传统的IP v4的路由协议,Quagga还支持IPv6的路由协议。在支持SMUX协议的SNMP守护进程的帮助下,Quagga还支持MIBS(Management Information Base)。Quagga使用一个先进的软件体系结构,可以提供高质量的,多服务器路由引擎Quagga针对每一个路由协议,都有一个交互式的用户接口,提供通用的用户命令的集合。基于这样的设计,研究人员可以很容易地向Quagga增加自己实现的协议守护进程,Quagga的程序库也是公开的,可以自由地作为编程库来使用。Quagga软件在GNU许可证下。

4 设计思路

在LinuxPC Server上安装Quagga软件路由器,通过netlink跟踪路由器表的变化,将路由表变化信息发送到OpenFlow控缺器上,由控制器控制OpenFlow交换机进行数据转发。在本方案中,控制是集中化的,但逻辑是分布式的。不需要对存在的路由协议进行修改。假如路由消息能够发送到控制器上的话,传统网络就能够被透明的集成。这将产生一个灵活的,高性能的,低成本的路由方案。

本方案由控制器,路由服务器,软件路由器,OpenFlow交换机组成。控制器通过OpenFlow API操作交换机,发现网络拓扑。路由服务器完成本方案的核心控制逻辑,主要功能是维护网络状态,相关网络变化事件处理。软件路由器为一台安装了Guagga软件路由引擎的Linux服务器。当网络连通后,路由引擎根据网络状态调整包转发信息库。路由器上的监控程序通过netlink跟踪每一次包转发信息库的更新,将该信息发送给路由服务器,请求路由服务器控制交换机的流表项目,从而控制交换机进行端口转发、Mac重写、TTL减少、IP头求和更新等路由行为。

5 实现

路由服务器是一个独立运行的程序,通过控制基于NOX平台,C++语言实现的控制器操纵交换机来完成本方案的核心逻辑。路由监控程序由C++语言实现,通过netlink Linux API收集包转发信息表的更新,交更新信息发送给路由器服务器。

6 结束语

本文将开源的软件路由与支持OpenFlow的硬件交换机结合到一起,实现了软件路由的加速效果,为软件定义网络中三层协议的实现提供了一个参考。

参考文献

[1] http://.

[2] 龚向阳.基于OpenFlow网络的Qos集中管理系统的研究与实现.北京邮电大学[M], 2012.

基金支持:

湖南省高等学校科学研究项目:“软件路由器的硬件加速研究”,项目编号:11C0882。

作者简介:

吴廷焰(1976-)男,中南大学,硕士,现任职于湖南铁路科技职业技术学院,从事网络技术领域的教学和研究工作。

上一篇:法律 第12期 下一篇:基于AP2DR2指挥信息系统的安全防护体系研究