APP下载

基于路由器虚拟化技术的SDN平台研究与设计

2016-11-10黎文伟

光通信研究 2016年5期
关键词:路由器报文交换机

黎文伟,吉 萌,戴 非

(1.武汉邮电科学研究院,武汉 430074; 2.武汉烽火网络有限责任公司,武汉 430074;3.江西师范大学,南昌 330022)

基于路由器虚拟化技术的SDN平台研究与设计

黎文伟1,2,吉 萌1,2,戴 非3

(1.武汉邮电科学研究院,武汉 430074; 2.武汉烽火网络有限责任公司,武汉 430074;3.江西师范大学,南昌 330022)

将路由器虚拟化技术应用于SDN(软件自定义网络)中,既可以实现SDN对传统电信流量的正常转发,还可以补充当前SDN技术对路由功能支持的不足。在SDN控制器中,扩展南向接口对虚拟路由器的管理和控制,并对路由表和流表进行转换,进而控制虚拟路由器或Openflow交换机的数据转发功能,可以弥补当前SDN控制器对路由功能支持的不足,并实现SDN流量和传统电信流量的兼容转发。文章在研究虚拟路由器和SDN控制器转发功能的基础上,提出了一种SDN平台的设计方法和系统,并实现了该平台的基本路由功能,最后对系统调试和评测进行了分析。结果表明,该平台具有通用性和灵活性好、易于与云计算技术结合等特点。

软件自定义网络;虚拟路由器;Openflow协议

0 引 言

SDN(软件自定义网络)[1]和NFV(网络功能虚拟化)技术是当前网络领域的发展热点,SDN采用控制和转发相分离的思想,可以实现网络的灵活可控和更好的功能拓展。NFV技术可使网络设备软硬件解耦,使网络功能在虚拟机内实现。虚拟化技术[2]是实现NFV的关键,随着通用X86处理器性能的提高,在通用服务器上采用虚拟化技术实现网络设备的虚拟化,特别是路由器的虚拟化,不仅可实现常规路由器的功能,还可将NFV和SDN技术结合起来,实现优势互补,并良好地应用于云计算中。

由于目前SDN控制器对三层路由功能支持较弱,导致其在城域网和广域网中部署困难;而且基于流表的转发行为对传统电信网中某些需要特殊处理的协议报文支持不足。而虚拟路由器具有完善的三层路由转发和协议报文处理功能,将虚拟路由器应用于SDN控制器中,可以弥补当前SDN控制器[3]的部分不足。对于数据转发层面,由于当前Openflow协议还在演进和TCAM(三态内容寻址存储区)容量限制,Openflow硬件交换机还不成熟,因此转发层面还是采用虚拟Openflow交换机,并配合虚拟路由器,完成数据层面的功能。

1 技术简介

1.1 技术背景

SDN为新业务的部署和新协议的拓展提供了便捷。SDN的实现方式有多种,当前比较流行的是基于Openflow协议的实现方式。另外,随着Intel VT技术的发展和X86处理器性能的改进,纯软件虚拟化技术的性能已经得到了提高,在通用服务器上实现的虚拟路由器已经可以满足部分商用环境下所要求的数据吞吐量和转发性能。因此为了弥补当前SDN控制器在三层路由功能方面的不足,并实现SDN流量和传统电信流量的兼容转发,可以结合SDN控制器和虚拟路由器的各自优势。从传统电信网络流入SDN的流量,可以由SDN控制器控制Openflow虚拟交换机进行转发;由SDN流向传统电信网络的流量,可以由SDN控制器做出判别后,由虚拟路由器进行路径计算与转发;传统电信网络内部的流量,由虚拟路由器进行转发;SDN内部的流量,由Openflow虚拟交换机进行转发。

Openflow虚拟交换机和虚拟路由器均运行于虚拟机中,云计算系统可以很方便地对虚拟路由器和虚拟交换机进行管理,因而基于本方案实现SDN平台的方法,不仅有利于SDN技术在现网环境下的推广,还可以更好地推动SDN技术应用于云计算环境中。

1.2 技术框架

图1所示为基于虚拟路由器的SDN平台框架图。图中,虚拟机中运行虚拟路由器和Openflow虚拟交换机,外部Windows系统中运行SDN控制器。该方案还可结合Openstack的Neutron和Nova节点实现SDN在云计算系统下的应用。

图1 基于虚拟路由器的SDN平台框架图

虚拟路由器基于Vx Works操作系统,相比Linux操作系统,Vx Works的实时性和安全性更好。Openflow虚拟交换机可采用pofswitch或Openflow vSwitch。SDN控制器可采用Floodlight。由于传统电信网络中路由器需要对某些协议报文进行包头处理,而SDN控制器并没完全提供协议报文包头处理的功能,因而当前SDN[4]和电信网络流量无法完全互通,为了实现流量互通,除了完善SDN控制器的路由协议功能外,还可在SDN控制器中维护路由表和流表,由它们生成转发表,并决定电信网络和传统网络交叉数据流量的转发路径。

2 SDN平台设计

SDN平台的设计包括两个方面:SDN控制器和虚拟路由器Openflow API(可编程接口)层。SDN控制器除了负责控制Openflow虚拟交换机的转发外,还要根据接收到的数据包判断转发类型,如果涉及到三层路由的转发功能,可以将数据包交给虚拟路由器处理后,再通过SDN控制器生成流表,交由Openflow虚拟交换机转发。

2.1 SDN控制器功能拓展

SDN控制器除了要控制Openflow虚拟交换机外,还要实现路由表和流表之间的转换。传统电信网络运行着很多协议报文,如VLAN(虚拟局域网)、ARP(地址解析协议)和ICMP(Internet控制报文协议)等,有些协议报文到达转发节点时要进行包头的增减操作,而当前SDN控制器对这些报文的处理能力较弱,因而对这些协议报文,可以交由虚拟路由器计算出转发路径,形成路由表并由SDN控制器转换成流表后,再由SDN控制器下发该流表控制虚拟Openflow交换机进行转发。

图2所示为数据包在SDN平台中的流向,可以分为4种情况:传统网络内部流量;SDN内部流量;传统网络到SDN的流量;SDN到传统网络的流量。前两种情况由于只涉及网络内部流量交互,因而直接由虚拟路由器或虚拟Openflow交换机控制转发即可。而后两种情况由于涉及到SDN和传统网络之间的流量交互,因而其转发行为可以由虚拟路由器所产生的路由表和SDN控制器所生成的流表来共同控制。

图2 数据包在SDN平台中的流向

2.2 封装虚拟路由器Openflow API层

在虚拟路由器上封装Openflow API层有两个作用:一是SDN控制器通过Openflow API层完成与虚拟路由器之间的通信;二是虚拟路由器将需要转发至SDN的数据包,由Openflow API层送至SDN控制器,然后由SDN控制器控制Openflow交换机完成转发。

封装虚拟路由器Openflow API层的框架如图3所示。虚拟路由器下的代码层包括BSP(板级支持包)、虚拟网卡驱动、MUX(一种驱动接口)、协议驱动程序、TCP/IP(传输控制协议/因特网协议)协议栈。在该图中,Openflow API层对路由协议栈和驱动层的接口函数做封装,并增加处理报文识别功能的函数,即识别报文头部端口、目的和源IP地址等,然后由协议栈处理生成转发路径后,判断该报文是SDN还是传统电信网络流量,如果是SDN流量,则由虚拟路由器将报文交给SDN控制器,SDN控制器根据生成的转发路径进一步转化为流表,并下发给Openflow交换机将数据包转发出去。

图3 封装虚拟路由器API层框架

因而对于虚拟路由器的Openflow API层来说,关键是识别报文,判断报文的源及目的,为此,Openflow API层可以直接从虚拟路由器的虚拟网卡驱动层统计和分析数据包,这样可以监控虚拟机内外的所有流量。

2.3 数据包的转发过程

由于当前SDN控制器对三层路由功能支持不足,且对某些协议报文的处理能力较弱,因而其数据包的转发过程不同于传统路由器。传统路由器包括主控卡、线卡和业务卡,数据包到达路由器端口时,首先由线卡判别是否可以直接进行转发,如果是某些不能进行直接转发的协议报文,则将该数据包交给主控卡进行路由计算,再由主控卡控制转发。而对于虚拟路由器来说,由于不存在线卡的概念,数据包到达虚拟路由器时,均由主控控制转发。但是对于本SDN平台而言,由于SDN控制器对三层路由功能支持较弱,因而虚拟路由器不仅要处理传统电信网络数据包的路由计算,还要处理来自SDN数据包的路由计算。数据包的转发流程图如图4所示。

由图4可以看出,服务器接收数据包后,数据包按照端口IP或MAC(媒体访问控制)地址自动桥接到虚拟路由器或Openflow交换机的虚拟网卡上。其中Openflow交换机可以是Openflow vSwitch(OVS)。对于虚拟路由器来说,虚拟主控首先根据数据包端口地址判断其流向,如果是传统流量,则直接由虚拟主控计算路径后,由虚拟路由器的虚拟网卡进行转发,如果是SDN流量,则将数据包交给Openflow虚拟交换机。Openflow虚拟交换机接收到的数据包来源于两部分:一是虚拟路由器转交过来的数据包,即传统网络流向SDN的数据包;二是Openflow虚拟交换机虚拟网卡接收到的来自服务器外部SDN的数据包。

图4 数据包转发流程图

Openflow虚拟交换机对数据包的处理过程如下:首先Openflow虚拟交换机查询缓存中的流表,如果有匹配项,则数据包直接由Openflow虚拟交换机的虚拟网卡进行转发,如果没有匹配项,则Openflow虚拟交换机会向SDN控制器发送packet in消息,请求SDN控制器计算转发路径并生成流表;SDN控制器根据虚拟路由器路由表的情况,计算出数据包的转发路径,并根据转发路径所属网段判断数据包是否是SDN流量,如果是,则直接下发流表控制Openflow虚拟交换机将数据包转发出去,如果不是,则将数据包交给虚拟路由器进行转发。

3 SDN平台的调试与评测

3.1 SDN平台的调试

由于当前SDN控制器之间的规范不统一,本平台不对SDN控制器之间的路由调试做描述。对于SDN平台的调试,首先进行基本二三层数据包的收发功能调试,然后进行三层路由等协议包的调试,最后对数据包的吞吐量和转发速率进行调试和测试。图5所示为SDN平台调试拓扑图。

图5 SDN平台调试拓扑图

虚拟路由器VR和Openflow虚拟交换机OVS可运行于同一服务器内。调试步骤如下:(1)对SDN控制器进行功能拓展并在封装虚拟路由器的Openflow API层后,首先单独对虚拟路由器进行功能调试,包括二三层数据包的收发、路由功能调试等,然后调试SDN控制器与虚拟路由器之间、虚拟路由器与Openflow虚拟交换机之间的通信,并观察Openflow虚拟交换机流表和虚拟路由器路由表的状态和关系。(2)利用思博伦仪表调试与测试虚拟路由器与Openflow虚拟交换机之间的二三层数据包收发情况。(3)利用思博伦仪表调试其与测试虚拟路由器以及Openflow虚拟交换机之间的路由功能,包括OSPF(开放式最短路径优先)、BGP(边界网关协议)和RIP(路由信息协议)等。

只有虚拟路由器和SDN交换机的数据包能够双向互发,并实现了路由功能,SDN平台才实现了传统网络流量和SDN流量互通的基本功能。

3.2 SDN平台的评测

对SDN平台的评测可以与调试过程同步进行,除了测试SDN平台最基本的二三层数据包收发功能外,最重要的是测试SDN平台的三层路由功能,因为三层路由功能是实现当前SDN和传统网络[5]流量互通的关键。最后测试SDN平台的系统吞吐量和转发速率等指标。

三层路由测试包括许多方面,如互通性测试、OSPF路由重分配和OSPF认证等方面,其中OSPF点对点的互通性测试是基本。对于本SDN平台来说,实现SDN流量和传统网络流量互通的关键是虚拟路由器和Openflow虚拟交换机能否建立路由邻居关系。图6所示为虚拟路由器和Openflow虚拟交换机之间不同网段OSPF的邻居学习情况。

图6 虚拟路由器与Openflow虚拟交换机之间OSPF测试

该图为点对点网络类型,其他网络类型类似。其配置命令如下:

VR#router ospf 1

router-id 1.1.1.1

network 1.1.1.1 0.0.0.0 area 0

network 192.168.100.0 0.0.0.3 area 0

OVS#router ospf 1

router-id 2.2.2.2

network 2.2.2.2 0.0.0.0 area 0

network 192.168.100.0 0.0.0.3 area 0

配置完成后,在f0/0上启动OSPF进程,并观察虚拟路由器和Openflow虚拟交换机的邻居建立关系和路由学习情况,其中Openflow虚拟交换机的邻居学习由SDN控制器控制。

影响SDN平台性能的因素有很多,包括系统的损耗、虚拟机调度的开销、协议栈和驱动中断的开销等。但随着Intel处理器性能的提升,由纯软件实现的SDN平台性能会得到改善,另外对于虚拟路由器的虚拟网卡驱动,可以将中断方式改为轮询方式,以减少中断处理64 k小包时过多的上下文切换时间,提高SDN平台性能。

4 结束语

利用虚拟路由器和SDN技术相结合形成SDN平台,可以使SDN流量和传统网络流量之间实现互通,解决当前SDN技术由于三层路由功能不足而在城域网和广域网中应用受阻的问题。SDN三层路由功能的不足,主要是由于传统网络和SDN路由计算困难,而采用纯软件SDN平台可以综合路由表和流表来共同维护转发表,进而实现不同网络之间的路由学习功能。本文首先分析了SDN平台的设计过程,然后对其调试和评测进行了研究。本文所述的虚拟路由器与SDN相结合的方案,可以实现SDN和传统网络流量的互通,为SDN技术的推广和应用以及SDN技术在现网下的过渡方向提供了很好的技术借鉴,具有一定的理论指导和实践意义。

[1]张朝昆,崔勇,唐翯翯,等.软件定义网络(SDN)研究进展[J].软件学报,2015,26(1):62-81.

[2]梁飞.虚拟路由器平台管理系统设计与关键技术研究[D].北京:北京邮电大学,2014.

[3]Shin M K,Nam K H,Kim H J.Software-defined networking(SDN):A reference architecture and open APIs[J].International Conference on IctConvergence,2012,36(3):440-448.

[4]Kurose James F,Ross Keith W.Computer Networking:A Top-Down Appproach[M].第四版.北京:机械工业出版社,2008.

[5]Wright G R,Stevens W R.TCP/IP IIIustrated Volume2:The Implementation[M].北京:机械工业出版社,2010.

Research and Design of SDN Platform Based on Router Virtualization Technology

LI Wen-wei1,2,JI Meng1,2,DAI Fei3
(1.Wuhan Research Institute of Posts and Telecommunications,Wuhan 430074,China; 2.Wuhan Fiber Home Networks Co.,Ltd.,Wuhan 430074,China; 3.Jiangxi Normal University,Nanchang 330022,China)

Applying router virtualization technology into SDN can not only forward traditional telecom traffic in SDN but also solve the problem of insufficient support of current SDN in fields of routing functions.In SDN controller,we can extend south interface to manage and control virtual router,and convert flow table and route table.Then we can control the data forwarding function of virtual router or Openflow switch.This method can make up the deficiencies of routing function in the current SDN controller,and achieve compatibility forwarding function of SDN traffic and traditional telecommunications traffic.This paper proposes a designing method and system of SDN platform based on the study of forwarding function of virtual router and SDN controller,which can realize basic routing functions.The system analysis result shows that the platform has features of excellent versatility,flexibility,and simple combining with cloud computing technologies.

SDN;virtual router;Openflow protocols

TP393

A

1005-8788(2016)05-0012-04

10.13756/j.gtxyj.2016.05.004

2016-04-26

黎文伟(1985-),男,湖北大悟人。硕士研究生,主要研究方向为通信与信息系统。

猜你喜欢

路由器报文交换机
基于J1939 协议多包报文的时序研究及应用
买千兆路由器看接口参数
维持生命
路由器每天都要关
路由器每天都要关
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
基于地铁交换机电源设计思考
修复损坏的交换机NOS
使用链路聚合进行交换机互联