本公开涉及数据通信技术领域,尤其涉及一种报文传输方法及系统。
背景技术:
隧道技术(tunneling)是一种通过使用互联网的基础设施在网络之间传递报文的方式。使用隧道传递的报文或负载可以是不同协议的报文帧或包。隧道协议将其它协议的报文帧或包重新封装然后通过隧道发送。但是,目前一般采用公有协议构造隧道。采用公有协议构造隧道来传递报文会产生一些问题:传递报文过程中,报文容易被截取、分析,最终导致报文被伪装或攻击。对于一些密级较高的报文来说,其安全性难以得到保证。
技术实现要素:
为克服相关技术采用公有协议构造隧道来传递报文,报文容易被截取、分析,导致报文被伪装或攻击,对于一些密级较高的报文来说,其安全性难以得到保证的问题,本申请提供一种报文传输方法及传输装置,能够在传递报文过程中,防止报文被截取、分析,避免报文被伪装或攻击,保证报文传输过程的安全性。
本申请的第一方面,提供一种报文传输方法,应用于第一私有转发网络边缘设备,包括:
从第一终端获取源报文;
利用udh隧道封装所述源报文,得到隧道封装报文;
利用私有转发网络,将所述隧道封装报文发送至第二私有转发网络边缘设备;其中,所述私有转发网络包括多个私有转发装置。
结合第一方面,在第一种可能的实现方式中,利用udh隧道封装所述源报文,得到隧道封装报文,具体包括:
获取隧道属性配置;其中,所述隧道属性配置,为根据所述第一私有转发网络边缘设备系统配置获取的udh隧道编号之后得到的,或者,由所述第一私有转发网络边缘设备中route/bridge模块指定的;
将所述源报文经由所述第一终端发送时所属端口和所述隧道属性配置,填写到udh的各个自定义域,得到udh隧道的数据结构;
利用所述udh隧道的数据结构封装所述源报文,得到隧道封装报文;其中,所述隧道封装报文包括隧道转发信息。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
在利用所述udh隧道的数据结构封装所述源报文的过程中,还包括:对所述源报文的入udh隧道的ttl处理和添加udh封装的dscp处理。
结合第一种可能的实现方式,在第三种可能的实现方式中,在利用所述udh隧道的数据结构封装所述源报文的过程中,还包括:对所述源报文的checksum处理。
结合第一种可能的实现方式,在第四种可能的实现方式中,利用私有转发网络,将所述隧道封装报文发送至第二私有转发网络边缘设备,具体包括:
获取udb匹配模板索引;
通过所述第一私有转发网络边缘设备的转发端口,利用所述udb匹配模板索引,对所述隧道封装报文进行policy匹配处理,以使对所述隧道封装报文进行识别;
根据所述隧道转发信息,将识别后的所述隧道封装报文发送至所述第二私有转发网络边缘设备。
结合第四种可能的实现方式,在第五种可能的实现方式中,在将识别后的所述隧道封装报文发送至所述第二私有转发网络边缘设备的过程中,还包括:
对识别后的所述隧道封装报文进行udh隧道中间转发识别ttl处理、udh隧道中间转发识别dscp处理以及udh隧道中间转发remarkttl处理。
本申请的第二方面,提供一种报文传输方法,应用于第二私有转发网络边缘设备,包括:
利用私有转发网络,从第一私有转发网络边缘设备获取隧道封装报文;其中,所述的隧道封装报文为利用udh隧道封装源报文后得到的报文;
对所述隧道封装报文进行出udh隧道处理,得到所述源报文;
将所述源报文发送至第二终端。
结合第二方面,在第六种可能的实现方式中,对所述隧道封装报文进行出udh隧道处理,具体包括:
获取udb匹配模板;
通过所述第二私有转发网络边缘设备的报文输出端口,利用udb匹配模板,对所述隧道封装报文进行policy匹配处理,以使获取udh隧道编号;
根据所述udh隧道编号对所述隧道封装报文进行隧道编辑处理和qos处理,得到所述源报文。
结合第六种可能的实现方式,在第七种可能的实现方式中,在对所述隧道封装报文进行出udh隧道处理的过程中,还包括:
对进行隧道编辑处理和qos处理后的所述隧道封装报文进行出udh隧道的ttl处理和删除udh封装的dscp处理。
本申请的第三方面,提供一种报文传输系统,所述系统包括:第一终端、第一私有转发网络边缘设备、私有转发网络、第二私有转发网络边缘设备以及第二终端;其中所述私有转发网络包括多个转发设备;
所述第一终端与所述第一私有转发网络边缘设备,所述第一私有转发网络边缘设备与所述私有转发网络,所述私有转发网络与所述第二私有转发网络边缘设备通信连接,所述第二私有转发网络边缘设备与所述第二终端,所述私有转发网络中的多个所述转发设备之间相互通信连接。
本申请实施例提供一种报文传输方法及传输系统,所述方法包括:从第一终端获取源报文;利用udh隧道封装所述源报文,得到隧道封装报文;利用私有转发网络,将所述隧道封装报文发送至第二私有转发网络边缘设备;其中,所述私有转发网络包括多个私有转发装置。第一终端将源报文发送至第一私有转发网络边缘设备,第一私有转发网络边缘设备对源报文进行udh隧道封装,再将udh隧道封装后的报文利用私有转发网络,发送至第二私有转发网络边缘设备。本申请实施例使用的隧道为利用udh技术构造的隧道,并且整个传递过程利用的是私有转发网络边缘设备和私有网络,因此能够防止报文被截取、分析,避免报文被伪装或攻击,保证报文传输过程的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请示例性实施例示出的一种报文传输系统结构示意图;
图2为本申请实施例提供的第一私有转发网络边缘设备端的报文传输方法的工作流程示意图;
图3为本申请实施例提供的第一私有转发网络边缘设备端的报文传输方法流程示意图;
图4为本申请实施例提供的报文封装具体实现过程示意图;
图5为本申请实施例提供的第一私有转发网络边缘设备端的报文转发流程示意图;
图6为本申请实施例提供的隧道封装报文转发具体实现过程示意图;
图7为本申请实施例提供的用户自定义内容policy匹配的表项关联关系的示例示意图;
图8为本申请实施例提供的第二私有转发网络边缘设备端的报文传输方法流程示意图;
图9为本申请实施例提供的隧道封装报文出隧道处理具体实现过程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了全面理解本申请,在以下详细描述中提到了众多具体的细节,但是本领域技术人员应该理解,本申请可以无需这些具体细节而实现。在其他实施例中,不详细描述公知的方法、过程、组件和电路,以免不必要地导致实施例模糊。
图1为本申请示例性实施例示出的一种报文传输系统结构示意图。该系统包括第一终端es1(endstation,终端)、第一私有转发网络边缘设备pe1(privateforwardingnetworkedge,私有转发网络边缘设备)、私有转发网络pfn(privateforwardingnetwork,私有转发网络)、第二私有转发网络边缘设备pe2以及第二终端es2,其中私有转发网络pfn包括多个转发设备pf1、pf2…pfn(privateforwarder,私有转发装置)。第一终端es1与第一私有转发网络边缘设备pe1通信连接,第一私有转发网络边缘设备pe1与私有转发网络pfn通信连接,私有转发网络pfn与第二私有转发网络边缘设备pe2通信连接,第二私有转发网络边缘设备pe2与第二终端es2通信连接。私有转发网络pfn中的多个转发设备pf1、pf2…pfn之间相互通信连接。
udh(userdefinedheader,用户自定义报文头),可以让用户自行配置需要使用的字段并被识别出来字段的内容。udb(userdefinedbyte,用户自定义字),udh的组成部分,用来定义udh中各字节的内容。用户通过软件配置需要使用字段的位置,芯片内部逻辑即可从数据中提取出这些字段。参见图2所示的第一私有转发网络边缘设备端的报文传输方法的工作流程示意图,所述方法包括以下步骤:
步骤101,从第一终端获取源报文;例如,图1所示的第一终端es1将源报文发送至第一私有转发网络边缘设备pe1。
步骤102,利用udh隧道封装所述源报文,得到隧道封装报文;
第一私有转发网络边缘设备pe1获取到源报文后,对该源报文进行udh隧道封装。
利用udh隧道封装所述源报文,得到隧道封装报文,如图3所示,具体包括:
步骤201,获取隧道属性配置;其中,所述隧道属性配置,为根据所述第一私有转发网络边缘设备系统配置获取的udh隧道编号之后得到的,或者,由所述第一私有转发网络边缘设备中route/bridge模块指定的;
步骤202,将所述源报文经由所述第一终端发送时所属端口和所述隧道属性配置,填写到udh的各个自定义域,得到udh隧道的数据结构;
步骤203,利用所述udh隧道的数据结构封装所述源报文,得到隧道封装报文;其中,所隧道封装报文包括隧道转发信息。
pe1接收终端es1发送的报文,pe1将该报文添加udh隧道,即利用udh隧道封装报文;其处理流程如图4所示。根据所述第一私有转发网络边缘设备系统配置获取的udh隧道编号,之后根据udh隧道编号获取隧道属性配置,或者所述第一私有转发网络边缘设备中route/bridge模块指定隧道属性配置。
将上述得到的隧道属性配置和所述源报文经由所述第一终端发送时所属端口,填写到udh各个自定义域,得到udh隧道的数据结构。之后根据所述udh隧道的数据结构对报文进行封装,最终从转发端口输出。其中,生成的隧道封装报文还包括隧道转发信息,用于在私有转发网络中转发该隧道封装报文。
本申请实施例可以通过udh对用户自定义域进行编辑,报文的前128字节范围内不超过40字节的报文内容为udh,通过定义udh的处理命令,实现对报文插入udh操作。pe1通过配置在表1中的udh_object阵列对udh进行编辑,每个udh_object对应一个udh的一个字节,表1定义了udh隧道封装的数据结构,具体包括以下的编辑方式:
表1udh隧道封装的数据结构
通过udh承载ip报文时,udh和ip头应该完全位于报文的前64字节范围内,且ip报文应该紧邻udh封装而不能插入其他的封装协议。如果udh和ip报文之间包含其他的数据结构,应该把对应的数据结构定义为udh的一部分。
另外,通过udh封装ip报文,需要同时处理udh和ip报文的ttl(timetolive,生存时间)。ttl即数据包“生存期”,是ip协议包中的一个参数,每经过一台转发设备,ttl参数值自减一,直到值为0,该数据包被转发设备判断是“生存期”满,从而被丢弃。当发生路由环路的时候,ip数据包周而复始的在环路上的设备之间传输,耗费设备的资源和链路带宽,直到ttl参数值耗尽,设备丢弃数据包。
通过udh承载ipv4报文时,要保证报文封装为正常的ipv4数据结构,即报文的封装为:1)dmac+smac+ethertype(0x0800)+ipv4,或者,2)dmac+smac+vlan+ethertype(0x0800)+ipv4。
对ip报文进行udh封装时,净荷ip报文的ttl要进行递减处理。配置策略路由、路由表路由或者三层组播转发时,转发装置都会对ttl进行递减处理。递减后的ttl回写到ip报文封装中。
udh封装的ttl通过udh编辑对象,由用户配置表项来实现。配置udh的ttl字节对应的udh_object类型为0x0,同时在udh_object中配置期望的ttl(用户设置某值或者做ttl-1操作)。净荷ip报文的dscp(differentiatedservicescodepoint,差别服务代码点)也可以进行重映射处理。在转发输出接口上配置基于端口的qos(qualityofservice,服务质量)重映射表,或者基于流的qos重映射表,启用dscp重映射,即可对净荷ip报文的dscp进行回写操作。udh封装的dscp通过udh编辑对象实现。配置udh的dscp字节对应的udh_object类型为0x1,同时在udh_object中配置期望的dscp(用户设置某值)。
通过udh封装ip报文时,转发装置还可以重新计算ip报文的checksum(校验和,在数据处理和数据通信领域中,用于校验目的的一组数据项的和。这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串。保证数据的完整性和准确性),用于在对隧道封装后的ip报文剥离udh时,根据checksum判断ip报文是否合法,从而保证ip报文能够正常转发。
步骤103,利用私有转发网络,将所述隧道封装报文发送至第二私有转发网络边缘设备;其中,所述私有转发网络包括多个私有转发装置。
如图5所示,步骤103具体包括:
步骤301,获取udb匹配模板索引;
步骤302,通过所述第一私有转发网络边缘设备的转发端口,利用所述udb匹配模板索引,对所述隧道封装报文进行policy(策略)匹配处理,以使对所述隧道封装报文进行识别;
步骤303,根据所述隧道转发信息,将识别后的所述隧道封装报文发送至所述第二私有转发网络边缘设备。
第一私有转发网络边缘设备利用转发网络pfn中的各转发装置pf1/pf2/…/pfn,根据隧道转发转发信息转发报文,可以包括单播和组播复制(单播是客户端与服务器之间的点到点连接。“点到点”指每个客户端都从服务器接收远程流。仅当客户端发出请求时,服务器才发送单播流。多播也被称为组播,是一种多地址的广播,发送和接受端是一对多的关系,服务器只向特定的一组用户发送一个数据包,组中的用户可以共享这个数据包,组外的用户是无法接受到的),其处理流程如图6所示。
转发过程中,通过报文所属端口/vlan,依据policy匹配对隧道封装报文进行识别,之后依次进行隧道编辑命令和qos处理以及隧道属性配置,之后编辑隧道转发信息、进行ttl处理和qos处理,最终从转发端口输出。
转发装置pe/pf支持多级policy匹配(policy类似于博通的acl,可以通过某些字段的匹配进行报文的操作;多级policy匹配可以根据不同的需要实现更多的报文操作)实现多级流表。多次policy完全等价,可以对本地输入的报文和出隧道的报文进行匹配,通过policy命令模板表实现用户自定义报文内容识别等。图7为用户自定义内容policy匹配的表项关联关系的示例示意图,为4级流表,通过4次policy匹配实现用户自定义报文内容识别。表2为对应于图5中的各表项的说明。
图7具体的描述了通过输入端口表/输入vlan(虚拟局域网)表/qinq-tfb(qinq-tunnelforwardingbase,基于qinq技术的隧道转发库)表/mpls-tfb(multi-protocollabelswitching-tunnelforwardingbase,基于多协议标签交换技术的隧道转发库)表/local-vlan-tfb(local-vlan-tunnelforwardingbase,基于本地虚拟局域网技术的隧道转发库)表获取udb匹配模板索引,依据policy-cmd-template(策略-命令提示符-模板)表获取policy的匹配命令,然后依次进行policy匹配,每次匹配都要先根据udb模板表获取用户自定义字节在报文中的位置,正确的进行policy匹配,根据policy匹配后的索引查找policy-action(策略定位)表,得到qos信任关系、绑定policy匹配到behaviour(特征)表、发起强制关联匹配、启用统计,实现n:1的vlan转换。最终实现用户自定义报文内容识别,继续转发识别后的报文内容。
表2图5中的各表项的说明
参见图8所示的第二私有转发网络边缘设备端的报文传输方法的工作流程示意图,所述方法包括以下步骤:
步骤401,利用私有转发网络,从第一私有转发网络边缘设备获取隧道封装报文;其中,所述的隧道封装报文为利用udh隧道封装源报文后得到的报文;该隧道封装报文为第一私有转发网络边缘设备通过私有转发网络发送的隧道封装报文;
步骤402,对所述隧道封装报文进行出udh隧道处理,得到所述源报文;
步骤403,将所述源报文发送至第二终端。
对所述隧道封装报文进行出udh隧道处理,如图9所示,具体包括:
获取udb匹配模板;
通过所述第二私有转发网络边缘设备的报文输出端口,利用udb匹配模板,对所述隧道封装报文进行policy匹配处理,以使获取udh隧道编号;
根据所述udh隧道编号对所述隧道封装报文进行隧道编辑处理和qos处理,得到所述源报文。
出隧道时需要删除udh隧道,根据用户报文头进行转发。其处理流程的示意图如图9所示。通过pe2将pf1/pf2/…/pfn转发的es1发送的报文所属端口进行policy匹配获取udh隧道id,依次进行隧道编辑命令和qos处理,对报文进行出隧道处理,依据用户配置可以选择从出接口出去,也可以选择分析净荷报文并路由或桥接进行正常转发处理,最终从转发端口输出到目的地。剥离udh封装时,获取udh净荷ip报文的ttl字节,ttl-1回写到ip报文封装中。剥离udh封装时,使用udb匹配获取udh封装的ip净荷的dscp,对净荷ip报文的dscp进行回写操作。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的一种报文传输方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、rom(read-onlymemory,只读存储记忆体)或ram(randomaccememory,随机存储记忆体)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。