《课程学期论文之一种新型IPv6路由器fhaq.docx》由会员分享,可在线阅读,更多相关《课程学期论文之一种新型IPv6路由器fhaq.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、淮阴工学院课程学期论文课程名称:通信设备(自学)选题名称: 一种新型IPv6路由器 系(院): 计算机工程系 专 业: 通信工程 班 级: 通 信1051 姓 名: 张 姆 敏 学 号: 1051302133 指导教师: 于 永 彦 学年学期: 2008 2009 学年 第 1 学期2008年 12月 19 日摘要:传统路由器通常基于单个通用CPU,采用实时操作系统,CPU既要完成报文的转发还要运行路由协议和其他控制和管理协议。这种将控制和转发集成在一起的紧耦合结构导致对控制层面和转发层面的任何改动都会牵一发而动全身,致使路由器的扩展性和软件的移植性较差。转发与控制分离体系结构将路由器严格划分
2、为控制和转发两个层面,具有开发成本低、系统可扩展性强、可靠性高等优点。文章介绍了一种基于转发与控制分离设计思想的互联网协议第六版(Internet Protocal Version 6 ,IPv6)路由器,给出了控制平面软件模块设计,包括路由子系统、内核协议栈、用户空间的应用级进程(OpenRouter Master)、用户空间的代理级进程(OpenRouter Agent)等模块。关键词:IPv6 路由器;控制与转发分离;体系结构目 录1 论文综述12 OPENROUTER 总体框架12.1 系统体系结构12.2 软件总体视图13 路由子系统设计与实现24 基于虚拟路由器模型的协议栈34.1
3、 虚拟驱动程序34.2 内核协议栈与用户进程的通信35 OPENROUTER MASTER46 OPENROUTER AGENT4总 结5参 考 文 献6通信设备(自学)课程学期论文1 论文综述转发与控制分离体系结构(forwarding and control element separating, ForCES)的关键思想是打破控制和转发紧耦合的集成方式,将路由器严格地划分为控制和转发两个层面。控制层面使用通用CPU负责路由的控制和计算,转发层面的每块转发板使用专用CPU(例如网络处理器)负责报文的转发,转发与控制各司其职,在提供高性能报文转发的同时保证了路由控制和计算的高可靠性。本文介绍
4、一种基于ForCES思想的IPv6路由器通用路由体系结构OpenRouter模型的设计与实现,着重介绍ForCES体系结构下OpenRouter IPv6路由器控制平面的设计与实现。2 OpenRouter 总体框架2.1 系统体系结构OpenRouter IPv6路由器是国防科大计算机学院在自行研制的传统IPv4路由器结构基础上,开发研制的一款支持IPv6、采用转发与控制分离设计理念的新型路由器原型系统。系统继承了传统IPv4路由器的硬件与微码系统,修改微码,使其能够支持IPv6报文转发。所有有关IPv6的路由协议和控制报文的计算与处理不再由路由器内部的CPU完成,而是使用外接通用计算机处理
5、,称之为路由服务器。整个OpenRouter IPv6路由器由路由服务器和传统路由器设备组成。作为转发平面的传统路由器设备功能包括:IPv6报文硬件转发;重定向目的报文到路由服务器;接收和响应来自路由服务器的控制报文,并转化为对被控路由器的操作执行;路由分离控制协议;主动向路由服务器报告异步事件。作为控制平面的路由服务器基于开源路由软件(GUI zebra),完成下列功能:IPv6控制协议(如路由协议、IPv6协议栈、邻居发现等);通用路由器抽象模型及控制接口;路由器分离控制协议;路由器用户界面。2.2 软件总体视图所有和IPv6路由协议相关的处理,全部由外置的路由服务器IPv6系统完成,IP
6、v6转发表同样由外部IPv6系统生成之后发送给设备的主控。在外置路由服务器和路由器的主控之间遵循标准的协议和接口。OpenRouter 路由器控制软件划分为以下子系统:路由子系统;协议栈及路由设备抽象;OpenRouter Master;OpenRouter Agent和控制微码扩展;IPv6微码功能支持。3 路由子系统设计与实现如图2-1所示,OpenRouter路由器的路由子系统在外置路由服务器上实现,系统采用开源的zebra 软件为原型。有关IPv6协议栈功能借助了Linux操作系统现有的协议栈。Zebra是一个路由器的软件实现,如何实现软件控制、硬件转发,是OpenRouter 路由器
7、必须要解决的关键问题,也是集中体现转发与控制分离设计理念的地方。为实现路由器硬件转发,外置路由服务器系统必须为路由器设备提供:(1)接口地址添加、删除等更新信息;(2)转发表添加、删除等更新信息;(3)邻居表添加、删除等更新信息。图2-1 OpenRouter 路由子系统软件结构整个外置路由控制系统与硬件路由器设备的通信都是通过OpenRouter通信协议完成的。OpenRouter通信协议由外置主控方的OpenRouter Master和硬件路由器设备方的OpenRouter Agent共同组成:二者之间分别建立数据通路和控制通路。数据通路用于重定向数据信息;控制通路用于重定向转发表、邻居表
8、操作等控制信息。在zebra路由软件中,有关接口地址操作和转发表操作是在zebra进程中实现的。为把相关信息重定向到路由器硬件设备上,建立与OpenRouter Master的通信连接,并由OpenRouter Master把信息转发到硬件设备上。有关邻居表的维护是在Linux 操作系统内核完成的。为获得邻居表的实时状态信息,笔者定时查询邻居表,监测其状态变化,并把邻居表的添加、删除、更新等信息通过OpernRouter Master重定向到路由器硬件设备上。4 基于虚拟路由器模型的协议栈内核协议栈需实现的功能包括:慢速路径的转发平面 (TCP/IP协议栈);通用路由器的实现表示(如虚拟驱动程
9、序);内核消息通信(内核与OpenRouter的接口规范)。4.1 虚拟驱动程序外接的路由服务器负责IPv6路由协议和控制报文的处理,位于一台独立的PC 上并通过以太网同路由器硬件平台连接。由于外接的控制服务器系统的协议栈之下没有具体的硬件设备,因此协议栈必须建立在一个虚拟的通用路由器设备之上。图3-1给出内核协议栈和虚拟通用路由器设备层次示意图。通过虚拟的通用路由器模型,可以使用户在外接路由服务器PC上的操作“感觉”就像真实作用在路由器硬件设备上一样。图3-1 内核协议栈和虚拟通用路由器设备虚拟通用路由器设备的功能:1)动态反映真实路由器硬件设备的状态变化;2)把用户对虚拟设备的操作转化为对
10、真实硬件设备的操作;3)通过与协议层和用户空间OpenRouterMaster的交互实现控制信息和IPv6报文的转发。虚拟通用路由器设备通过虚拟驱动程序在内核中为系统虚拟出真实路由器的硬件接口,虚拟接口通过内核消息通信模块与用户空间的OpenRouter Master 交互,获得真实硬件接口的状态以及转发报文和控制信息;通过与协议层的交互,接收控制信息的转发报文。本原型系统设计了5种类型的虚拟驱动程序,分别对应百兆以太网、千兆以太网、155兆POS、622兆POS 和2.5吉POS接口。每种虚拟驱动程序各有14个驱动程序,编号为114,分别对应于路由器硬件设备相应槽口号的相应类型的网络接口板。
11、这样通过动态加载、卸载驱动程序模块就可以满足对设备热插拔的要求。4.2 内核协议栈与用户进程的通信路由服务器同路由器硬件平台之间的通信是通过在用户空间建立的TCP 连接来实现的。为了实现协议栈报文到驱动程序的重定向就必须依靠内核协议栈和用户进程的通信。在本原型系统中,虚拟驱动程序位于Linux内核空间,与之交互的OpenRouter Master位于用户空间。因此为了完成控制信息和IPv6报文的转发,就必须解决好内核空间与用户空间的通信问题。综合考虑了多种通信策略,结合本系统的实际情况,采用为内核增加一套新的系统调用的方式来满足内核与用户空间通信的需要。5 OpenRouter MasterO
12、penRouter Master负责实现基本的控制报文重定向、数据报文重定向、通用控制协议过程实现、协议报文的编码、IPv6 控制配置分发(路由表分发,邻接表分发)、路由器异步事件报告。在现有程序设计中,OpenRouter Master 是zebra、neigh、OpenRouter Agent 以及协议栈内核的通信枢纽。它负责如下功能:(1)zebra模块与OpenRouter Agent control通路的双向数据通信;(2)邻居发现监测模块与OpenRouter Agent control通路的双向数据通信;(3)从协议栈内核读取数据,写向OpenRouter Agent Data通
13、路,采用定时轮询方式读取协议栈内核数据;(4)从OpenRouter Agent Data通路读取数据,写给协议栈内核。采用select调用方式读取OpenRouter Agent Data通路的数据由于OpenRouter Master 在Linux 系统中负责协调调度来自3方(zebra 进程、Linux内核与OpenRouter Agent)的消息,在zebra 进程、Linux 内核同时与OpenRouter Master通信的过程中面临着访问阻塞的问题,并且考虑到方案实现的阶段性,系统采用双OpenRouter Master的结构。其中, OpenRouter Master A负责控
14、制报文的转发,OpenRouterMaster B负责数据报文的转发。6 OpenRouter AgentOpenRouter Agent模块负责:路由器硬件系统的初始化;路由器能力、功能配置和拓扑结构表示;通用控制协议过程实现;协议报文的编码(OpenRouter Master与OpenRouterAgent的接口规范);通用路由器模型向路由器硬件的控制映射。服务器方主要处理控制单元要求转发单元完成的各种操作及操作结果汇报。OpenRouter Agent及和消息处理相关的部分统称为控制代理。控制代理通过扩展NPAS和网络处理器进行。总 结传统路由器通常基于单个通用CPU,采用实时操作系统,
15、CPU既要完成报文的转发还要运行路由协议和其他控制和管理协议。这种将控制和转发集成在一起的紧耦合结构导致对控制层面和转发层面的任何改动都会牵一发而动全身,致使路由器的扩展性和软件的移植性较差。转发与控制分离体系结构(forwarding and control element separating, ForCES)的关键思想是打破控制和转发紧耦合的集成方式,将路由器严格地划分为控制和转发两个层面。控制层面使用通用CPU负责路由的控制和计算,转发层面的每块转发板使用专用CPU(例如网络处理器)负责报文的转发,转发与控制各司其职,在提供高性能报文转发的同时保证了路由控制和计算的高可靠性。典型的转发
16、与控制分离体系结构研究包括:网络数据过滤结(the network processing forum ,NPF);IETFForCES;开源路由平台(extensible open router platform ,XORP)等。与传统路由器体系结构相比,转发与控制分离的体系结构具有以下特点和优势:(1)较低的开发和应用成本;(2)软件开发可以独立于具体的硬件平台;(3)增强了系统的扩展性和可靠性。本文基于控制与转发分离思想设计实现了一个IPv6路由器,重点介绍OpenRouter原型系统各模块设计与实现。OpenRouter原型系统目前可在实际网络中与Cisco等路由器互联,构成IPv6 网
17、络。今后将在此基础上进一步研究多个转发单元、多个控制单元如何协同工作,冗余备份等问题。另外,还将研究基于控制与转发分离的路由器与传统硬件路由器、软件路由器的性能比较问题。参 考 文 献1周逊.IPv6-下一代互联网的核心M.北京:电子工业出版,20062邬江兴.新一代核心路由交换器面临的问题及发展趋势J.电信科学,2005,17(7):20223栗大超,宋光德,靳世久.嵌入式系统的Internet互连技术J.微计算机信息, 2003,13(12)4周卫东,罗国民,朱勇等.现代传输与交换技术.国防工业出版社,2003.105李驹光,聂雪媛等. ARM应用系统开发详解-基于S3C4510B的系统设计M .北京:清华大学出版社, 2003 6