您的位置  > 互联网

利用支持协议的硬件交换机转发逻辑的软件路由器

2 引言 有研究人员认为,在未来的网络发展中,底层数据设备(交换机、路由器)只需要提供对外开放的流表公共接口,同时应用控制器来控制整个网络。 技术的出现解决了此类问题。 它由斯坦福大学和加州大学的一个联盟发起,允许研究人员使用企业级以太网交换机作为大学网络实验的定制组件,并希望服务器能够直接访问交换机的转发表。 一种开放标准协议,后来被用作斯坦福大学 Clean Slate 项目的计划投资。 Clean Slate 项目致力于研究使用技术在现有网络上试验新的网络协议,最终目标是重新设计网络。 当前网络的报文转发过程完全由交换机/路由器等交换设备控制,而网络中的报文转发过程则由交换机和控制器完成,从而实现了数据转发与路由控制的分离。 控制器可以通过预先指定的接口操作来控制交换机中的流表,例如修改流表条目来改变网络中流量的方向,从而控制数据转发。 网络由交换机、控制器()组成,结构如图1所示。交换机转发数据层,虚拟化网络,对网络进行集中控制,实现控制层的功能。

(1)交换机 交换机是网络的核心设备,由流表(Flow table)、安全通道( )和协议组成。 流表:流表由多个流表项组成,是交换机控制数据转发的关键数据结构。 交换机通过查找流表中的条目来确定对接收到的数据流采取适当的操作。 每个流表项包括三个字段:头字段(Field)、计数器()和行为()。 头字段包括12个字段,包括输入接口、MAC源地址、MAC目的地址、以太网类型、Vlan id、Vlan优先级、IP源地址、IP目的地址、IP协议、IP ToS位、TCP/UDP目的端口、源港口。 每个字段包含某个值或所有值(任意)。 通过掩模可以实现更准确的匹配。 计数器用于计算有关流量的某些信息,例如发送的数据包数量。 动作是交换机收到报文后采取的处理方式,包括丢弃和转发端口。 每个条目可以有多个操作。 安全通道:安全通道用于交换机和控制器之间的连接。 使用应用程序协议。 控制器可以通过安全通道对交换机进行配置和管理,也可以通过交换机发送消息。 协议:协议支持三种消息类型,每种消息类型又包含多个子类型。

-to-消息由控制器发起,用于管理或获取交换机的状态。 消息由交换机发起以将状态信息更新到控制器。 消息可以由交换机或控制器发起,主要用于建立连接。 (2)控制器() 网络中的控制器主要完成路由控制的功能。 控制器通过协议控制交换机中的流表,交换机通过流表项对报文进行相应的操作。 (3)运行在控制器和交换机之间,实现网络虚拟化。 通过抽象层将物理网络划分为多个逻辑网络。 每个逻辑网络都有唯一的地址和转发机制,并且可以共享相同的物理设备。 其中,切片隔离是实现虚拟化的基本要素,其技术正在开发中。 目前,虚拟化和隔离是通过带宽、拓扑、流量、设备CPU和转发表来实现的。 它被认为是SDN架构的控制平面和数据层平面之间的第一个标准通信接口。 该技术仍在开发和改进中。 控制器负责制定转发策略,通过协议与交换机建立通信,下发策略,监控状态。

控制器与交换机之间的工作模式一般为多对多或一对多。 交换机可以是技术支持的交换机,也可以是扩展传统交换机的混合交换机。 交换机的转发策略主要存储在一个或多个流表(Flow Table)和组表(Group Table)中。 最初的设计只包括一张流表。 为了提高存储资源利用率和加快检索速度,提出了流水线多表结构。 交换机的每个流表都包含一系列流表项(Flow Entry),每个流表项由三部分组成:匹配字段(Match)、计算器()和指令()。 3 简介 是一个开源软件路由引擎,其主要功能是提供基于TCP/IP的路由服务。 支持的路由协议包括:OSPF v2、OSPF v3、RIP v1、RIP v2、BGP-4等。还支持特殊的路由反射器和路由服务器行为。 除了传统的IPv4路由协议外,还支持IPv6路由协议。 MIBS (Base) 还可以在支持 SMUX 协议的 SNMP 守护程序的帮助下得到支持。

它采用先进的软件架构,提供高质量的多服务器路由引擎,为每种路由协议提供交互式用户界面,提供一组通用的用户命令。 基于这样的设计,研究人员可以方便地添加自己实现的协议守护进程,并且程序库也是公共的,可以作为编程库自由使用。 软件根据 GNU 许可证发布。 4 设计思路:在计算机上安装一个软件路由器,通过跟踪路由器表的变化,将路由表变化信息发送给控制器,控制器控制交换机转发数据。 在该方案中,控制是集中的,但逻辑是分布式的。 无需对现有路由协议进行修改。 如果路由消息可以发送到控制器,传统网络就可以透明地集成。 这将带来灵活、高性能、低成本的路由解决方案。 该解决方案由控制器、路由服务器、软件路由器和交换机组成。 控制器通过API操作交换机并发现网络拓扑。 路由服务器完成了本方案的核心控制逻辑。 其主要功能是维护网络状态并处理相关的网络变化事件。 软件路由器是安装了软件路由引擎的Linux服务器。

当网络连接时,路由引擎根据网络状态调整报文转发信息库。 路由器上的监控程序跟踪数据包转发信息库的每次更新,并将这些信息发送给路由服务器,请求路由服务器控制交换机的流表项,从而控制交换机进行端口转发、Mac重写等、TTL缩减、IP头求和、更新等路由行为。 5 路由服务器的实现是一个独立运行的程序,通过控制基于NOX平台的控制器来完成本方案的核心逻辑,并用C++语言实现来操作交换机。 路由监控程序采用C++语言实现,通过Linux API收集数据包转发信息表的更新,并将更新的信息发送到路由器服务器。 6 结论 本文将开源软件路由与支持的硬件交换机相结合,达到软件路由的加速效果,为软件定义网络中三层协议的实现提供参考。 参考文献[1] [2] 龚向阳. 基于网络的Qos集中管理系统的研究与实现。 北京邮电大学[M],2012. 基金资助:湖南省高等教育科研项目:《软件“路由器硬件加速研究”》,项目编号:。作者简介:吴廷彦(1976-),男中南大学,硕士,目前就职于湖南铁道职业技术学院,从事网络技术领域的教学与研究。

推荐参观: