卫星通信网关的设计与实现
2016-11-09林顺平
蔡 诚 林顺平
1(贵州电网公司电力调度控制中心 贵州 贵阳 550002)2(四川安迪科技实业有限公司 四川 成都 610061)
卫星通信网关的设计与实现
蔡诚1林顺平2*
1(贵州电网公司电力调度控制中心贵州 贵阳 550002)2(四川安迪科技实业有限公司四川 成都 610061)
目前,基于卫星通信是构建电力应急通信系统的主要方式。针对电力调度数据MPLS网络和卫星IP网络的异构网络互联问题,设计一种卫星专用通信网关。该网关可以完成电力调度MPLS网络与卫星IP网络之间的协议处理转换功能以及利用IP隧道在卫星网络透明传输电力MPLS业务报文。最后,在X86和Linux系统上实现了该方案,且通过在贵州电力调度网的测试,验证了该方案的可行性。
电力通信网卫星网络卫星网关MPLS-VPN
0 引 言
电力通信网承载着重要的电力系统业务,其可靠性与电网的安全、稳定运行密切相关。然而以光纤传输介质等地面链路构建的通信网络面对较大的自然灾害时(如地震),将会显得十分脆弱,甚至会引发大面积业务中断的灾难性后果。而卫星通信是一种无线传输技术,传输距离远,且具有较强的抗灾能力,因此选用卫星通信来构建电力应急通信系统是电力行业的一种主要实现方案[1,2]。
卫星网络主要有两种架构的网络:一种是基于ATM(Asynchronous Transfer Mode)的卫星网络,一种是基于IP的卫星网络[3]。目前在电力行业中,构建应急电力通信网的VSAT(Very Small Aperture Terminal)卫星通信系统[4]均为IP卫星网络,而电力调度通信网是MPLS-VPN(Multi-Protocol Label Switching-Virtual Private Network)网络[5]。因此构建基于卫星的应急通信系统,就必须解决电力通信网和IP卫星网络两种异构网络的互联问题。本文针对IP卫星网络,设计了一种卫星专用通信网关,通过该网关,能够互联电力调度通信网和卫星网络,使建立在MPLS-VPN协议之上的电力系统业务可以通过IP卫星网络在电力的各变电站之间进行传输[6]。
1 电力卫星应急通信系统网络架构
如图1所示基于卫星网络的电力应急系统网络架构中,电力中心控制主站与远端站之间是以光纤传输介质构建的调度网络,主站和远端站通过PE(Provider Edge)路由器构建MPLS-VPN传输网络[7]。当主站和远端站用户之间需要传输业务数据时,首先将数据发送到本侧的PE路由器,PE路由器将业务数据封装成MPLS报文,经MPLS-VPN隧道传输到对端的PE路由器,对端PE路由器解封装MPLS报文,根据内层报文的目的IP地址转发报文到对应的VPN用户。
图1 基于卫星电力应急通信系统网络架构图
在图1中,卫星传输网络是地面调度网络的备用传输网络。若主站和远端站之间的光纤传输链路发生了中断时,各自变电站的PE路由器会把MPLS业务报文转发到其卫星侧网络。若此时卫星网络中没有部署卫星通信网关,则MPLS报文会转发到卫星猫Modem。卫星猫Modem只具有简单的路由转发功能,但并不支持动态路由及MPLS功能,所以MPLS报文将会被丢弃,业务将发生中断。卫星通信网关是电力调度网络和卫星网络的边界设备,一方面它需要支持动态路由协议,使得主站或者远端站之间的路由通过卫星网络能够相互可达;另一方面,由于主站和远端站之间VPN用户业务的IP为私网地址,在网络中无法进行IP路由转发,因此卫星通信网关需要支持MPLS功能,使得主站和远端站之间通过卫星网络也能进行MPLS数据转发。
2 卫星通信网关的设计与实现
2.1卫星通信网关的设计原理
从如图2所示,业务报文通过卫星网络协议栈的变化图中,可以发现卫星通信网关要处理MPLS报文及IP报文,且需完成这两种报文之间的适配及转发功能[8]。
图2 业务报文通过卫星网络的协议栈变化图
(1) 开启主站和远端站的卫星通信网关OSPF进程,建立主站和远端站之间的卫星路由;
(2) 开启卫星通信网关与电力调度网和卫星网络相连接的两个网口的MPLS功能,建立主站与远端站之间的MPLS转发路径;
(3) 建立主站与远端站卫星通信网关之间私有的IP隧道,使得非IP报文能够穿透卫星网络,通过卫星网络连接主站和远端站的VPN网络。
本设计MPLS采用的标签分发协议为LDP(Label Distribution Protocol)。
卫星通信网关的处理模块主要包括两部分(如图3所示):一是协议处理部分,生成报文转发表,主要包括OSPF进程模块和标签分发协议LDP进程模块;二是业务报文处理部分,根据报文转发表转发报文,主要包括MPLS业务报文处理模块和IP业务报文处理模块。卫星通信网关从网口接收到报文后,会根据报文的类型将报文分发到不同的模块进行处理。
图3 卫星通信网关功能框图
2.2卫星通信网关的协议处理流程
卫星通信网关的协议处理模块包括OSPF和LDP这两个后台协议处理进程,如图4所示。
图4 协议处理逻辑
OSPF进程模块:OSPF后台进程处理OSPF协议报文[9],能够动态学习到全网络的路由信息,形成IP路由转发表。OSPF是部署MPLS标签转发的基础。
LDP进程模块:LDP后台进程处理LDP协议报文,会接收邻居Peer发送的FEC远端标签,与同一个FEC的本地标签组成一对FEC标签交换项,添加到FEC标签转发表中。
OSPF进程会动态更新路由表,并将路由变化信息发送给LDP进程。LDP进程接收到Route Add消息时,会给FEC分配本地标签并将标签信息发送给LDP邻居,然后将FEC及其本地标签添加到FEC转发表中;LDP进程收到Route Del消息时,向LDP邻居发送release报文,释放FEC的本地标签,同时将FEC标签转发表中本地标签置空;LDP进程收到Route Update消息时,向邻居LDP发送release报文,释放原来FEC的本地标签,再发送FEC新的本地标签给邻居LDP,最后更新FEC转发表中的本地标签。
2.2.1MPLS业务报文的处理流程
如图5所示,卫星通信网关接收到MPLS业务报文后,用FEC和入标签查找FEC转发表。如果不存在该条FEC的转发表项,则该条报文将被丢弃,否则判断该FEC转发表项的出标签是否存在。如果出标签存在,则用出标签替换MPLS报文的标签,转发到出接口;如果出标签不存在,则进行IP路由转发。网关预先会在与卫星网络连接的接口处建立IP隧道,当发送报文时,如果出接口是IP隧道口,报文会被封装在IP隧道内发送,否则报文会直接被发送。
图5 MPLS业务报文处理流程
2.2.2IP业务报文处理流程
图6中,卫星通信网关接收到IP报文时,如果接收报文的接口为IP隧道口,则剥掉IP隧道头,解析隧道内的报文类型。MPLS报文根据2.2.1节描述的流程进行处理,IP报文根据IP路由表进行转发。如果接收报文的接口不是IP隧道口,则用报文目的IP查找IP路由表,路由不存在,则报文将被丢弃;如果路由存在且路由表项中携带FTN索引,则在报文中添加MPLS标签协议层,否则将报文转发到出接口。同样的,如果出口为IP隧道,则报文会被封装在IP隧道内发送,否则将被直接转发到下一跳。
图6 IP业务报文处理流程
2.3卫星通信网关的实现
根据以上设计原理,本文采用4口Eth接口,基于X86+Linux软硬件平台开发了该网关设备。Linux是一个强大的网络开源系统,支持TCP/IP协议栈[10,11],且其平台上具有大量的开源软件,可以快速定制开发需要的产品。如图7所示,本文采用Linux 2.6.35系统,OSPF、LDP等开源软件来架构卫星通信网关的软件系统。
图7 卫星通信网关软件架构图
卫星通信网关的协议处理功能采用OSPF和LDP开源软件来实现,部署在Linux的应用层。OSPF和LDP后台进程通过Socket接口从Linux内核中收发OSPF和LDP协议报文,形成应用层的IP路由表及FEC标签转发表。OSPF和LDP进程之间的消息通信是通过ZSYS后台进程来完成的。
ZSYS后台进程是一个控制通道,负责控制OSPF进程、LDP进程及Kernel之间的消息通信。其中OSPF、LDP进程与ZSYS进程通过Socket通信,而Kernel与ZSYS通过Netlink进行通信。
由于卫星通信网关的业务报文转发及IP隧道功能是在Linux内核中完成的[12],因此OSPF和LDP进程也会通过ZSYS将IP路由表和FEC标签转发表下发存储到Linux内核之中,用于业务报文的转发。为了支持MPLS报文的转发功能,需要在Linux内核的网络协议栈中注册mpls_uc_packet_type(单播)和mpls_mc_packet_type(多播) 两种packet_type。Linux根据MPLS协议号0x8847来识别MPLS报文,将报文分发到mpls_uc_packet_type或者mpls_mc_packet_type的接收处理函数中,如2.2.2节所描述的流程转发报文。
3 卫星通信网关系统测试
为了说明本方案的可行性,用卫星通信网关搭建了贵州电力调度应急通信系统如图8所示。
图8 卫星通信网关测试组网图
在主站和远端站中部署卫星通信网关,和卫星网络组成电力调度传输网的备份应急通信网络。当地面的电力调度网发生故障时,业务传输链路会自动从电力调度网切换到卫星网络;当地面的电力调度网故障恢复时,业务的传输链路会自动回切到地面的电力调度网。
在测试前先配置卫星通信网关及R1路由器的接口cost值,使得从主站到子站的OSPF路由通过电力调度数据网优先。用断开远端站R1、R2路由器与电力调度数据网的物理连接来模拟电力调度网传输链路发生故障的情况。当断开子变电站R1、R2路由器与电力调度数据网时,主站与子站的传输链路切换到卫星传输链路,此时从主站路由器ping子站R1路由器的网络延迟大致为500 ms;当恢复子变电站R1、R2路由器与电力调度网的连接时,主站与子站的传输链路恢复到电力调度数据网。测试时,将从卫星通信网关协议转换及业务切换两个方面验证。
3.1卫星通信网关协议转换测试
(1) 在主站的卫星通信网关Gateway#1上与主站B路由器连接的网口上捕获报文。图9矩形框说明进入卫星通信网关的报文为MPLS报文。
图9 卫星通信网关网口报文截图
(2) 在主站的卫星通信网关Gateway#1上与卫星猫连接的网口上捕获报文。图10矩形框说明从卫星通信网关进入卫星网络的报文是IP报文,完成报文的转换。
图10 卫星通信网关网口报文截图
从上面卫星通信网关两个网口的抓包可以看出,卫星通信网关将MPLS协议报文转化为了IP协议报文,在卫星网络上传输,业务报文能够在两个异构网络上传输。
3.2卫星通信网关业务切换测试
(1) 在断开R1、R2路由器与电力调度数据网连接前,从R1路由器上ping省调A路由器,如图11所示。
图11 卫星通信网关业务切换测试截图
(2) 在断开R1、R2路由器与电力调度数据网连接后,从R1路由器上ping省调A路由器,如图12所示。
图12 卫星通信网关业务切换测试截图
从测试结果中可以看到,在R1、R2断开与电力调度网的连接前,ping的网络延迟为10 ms左右,说明报文通过地面调度网传输;当断开R1、R2与电力调度网的连接后,ping延迟变为550 ms以上,说明报文通过卫星网络传输,且在切换的过程中业务正常,卫星网关正确地连接了这两个异构网络。
4 结 语
本文设计了一种卫星通信网关,该网关可以解决电力调度数据网与卫星网络两种异构网络的连接问题,为电力系统通过卫星部署电力应急通信网提供了一种比较简单的实现方案。
[1] 杜珊三.VSAT卫星通信在电力系统中的应用分析[D].北京:中山大学信息科学与技术学院,2010.
[2] Li C.Application of Satellite Communication System to Power Dispatching in Mountainousarea[J].Automation of Electric Power Systems,2002,26(6):76-77.
[3] John Farserotu.IP/ATM移动卫星网络[M].谷深远,译.北京:电子工业出版社,2003.
[4] 安丰东.中小型VSAT卫星通信网网管协议研究[D].西安:电气与控制工程学院,2013.
[5] 俞浩.基于MPLS VPN的地区通信数据网络设计与建设[J].中国新通信,2014(3):112-114.
[6] 张涛,牛明涛,冯振明.用于卫星通信系统的空间通信协议网关设计[J].电讯技术,2013,53(3):335-340.
[7] Ghein L D.MPLS技术架构[M].陈麒帆,译.北京:人民邮电出版,2008.
[8] Douglas E Comer.Internetworking with TCP/IP:Principles,Protocols and Architecture,Volume I[M].5th ed.Prentice-Hall, Englewood Cliffs,NJ,2005.
[9] RFC2328.OSPF Version2[S].J.Moy,Ascend Communications, Inc. April 1998.
[10] 张丁丁,孙志毅.TCP/IP协议栈的实现方法[J].工业控制计算机,2013,26(9):35-36.
[11] 张洁,傅明.Lwip协议栈在嵌入式Linux下的移植与实现[J].微计算机信息,2011,27(4):94-96.
[12] 沈晶,石教英.MPLS-Linux体系结构及交换路由性能分析[J].通信学报,2002,23(12):63-72.
DESIGN AND IMPLEMENTATION OF SATELLITE COMMUNICATION GATEWAY
Cai Cheng1Lin Shunping2*
1(Guizhou Power Grid Dispatching and Control Center,Guiyang 550002,Guizhou,China)2(SichuanAndiS&TIndustryCo.,Ltd,Chengdu610061,Sichuan,China)
Currently the main way of building power emergency communication network is based on satellite communication. In order to resolve the problem of the interconnection between heterogeneous networks of power dispatching traffic data MPLS network and satellite IP network, we designed a dedicated satellite communication gateway. This gateway can accomplish the function of protocol processing and conversion between MPLS network and IP network, and can use IP tunnel to transparently transmit power MPLS traffic packets through satellite network. Finally we implemented this scheme in X86 and Linux system, the feasibility of this design has been verified by the tests in Guizhou power dispatching traffic network.
Power communication networkSatellite networkSatellite gatewayMPLS-VPN
2015-05-20。科技部科技型创新基金项目(13C262151 04915);中国南方电网科研项目(K-GZ2013-434)。蔡诚,工程师,主研领域:电力系统光传输通信和卫星通信相关技术。林顺平,工程师。
TP393.03
A
10.3969/j.issn.1000-386x.2016.09.028