一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种网关设备和将本地数据传入IPsec隧道的方法与流程

2022-02-22 05:17:26 来源:中国专利 TAG:

一种网关设备和将本地数据传入ipsec隧道的方法
技术领域
1.本发明涉及通信技术领域,尤其涉及一种网关设备和将本地数据传入ipsec隧道的方法。


背景技术:

2.随着互联网业务的迅速发展,越来越多的网络运营商采用多地部署网络的方式,例如,数据中心统一部署在总部,连接有独立的网络(远端子网),与该数据中心对应的各个分中心也各自连接有独立的网络(本地子网)。
3.若将某一分中心称为第一网元,数据中心称为第二网元,由于第一网元和第二网元分别处于不同的子网中,无法直接建立二者之间的tcp/ip通信,因此可以利用网关产品,借助互联网安全协议(internet protocol security,简称ipsec),将第一网元的网络与第二网元的网络连通,形成ipsec隧道,以加密和传输数据。当第一网元通过网关产品向第二网元发送数据包时,由于该网关产品既作为网络出口,又作为ipsec的建立者,网关产品转发的数据包在进行源地址选择的时候是通过自身系统路由确认出接口,进而默认选择出接口的主地址(网关产品的公网地址),以完成对该数据包的封装,封装后的数据包的源地址即为公网地址。
4.但是,采用上述方式,只有源地址为本地子网地址,目的地址为远端子网地址的数据包才能由本地网关产品流入ipsec隧道从而完成加密并到达第二网元,而此时的数据包由于其源地址为公网地址从而无法流入ipsec隧道进行加密并传输至第二网元。为了解决上述问题,网络运营商通常在做网关产品的程序开发阶段增加程序源地址的选择功能,以供用户在使用网关产品时可以通过配置相应的接口完成对应程序源地址的选择,以将数据包的源地址变换为本地子网地址。
5.但是,这种基于在网关产品的程序开发阶段增加源地址选择的接口交付方式,由于每一个网关产品上都涉及到多个对外通信的程序,并且每一个网关产品上的程序都需要和远端的同一个服务器通过ipsec隧道进行通信,这就需要网关产品的管理员在每一个程序上都配置相同的源地址,增加开发成本和配置成本。


技术实现要素:

6.本技术提供了一种网关设备和将本地数据传入ipsec隧道的方法,以解决现有技术中网关产品为实现将数据包引入ipsec隧道中导致的开发成本和配置成本增加的问题。
7.一方面,本技术提供一种将本地数据传入ipsec隧道的方法,应用于网关设备,包括:建立第一ipsec隧道,所述第一ipsec隧道用于将所述网关设备与第二网元连接,所述网关设备与所述第二网元处在不同的局域网内;接收第一网元发送的第一数据包,所述第一网元与所述网关设备处在同一局域网内;
获取所述第一数据包的第一地址,所述第一地址是所述第一数据包的源地址;将所述第一数据包的源地址由所述第一地址转换为第二地址,所述第二地址是所述网关设备的一个内网接口的ip地址;将所述源地址是所述第二地址的所述第一数据包传入所述第一ipsec隧道,以输送至第二网元。
8.可选的,所述将所述第一数据包的源地址由所述第一地址转换为第二地址,还包括:建立snat规则,所述snat规则是识别源地址是所述第一地址是所述网关设备公网接口的ip,目的地址是第二网元内的地址的数据包;将所述第一数据包与所述snat规则相匹配;若匹配成功,则将所述第一数据包的源地址由所述第一地址转换为第二地址。
9.可选的,所述将所述源地址是所述第二地址的第一数据包传入所述第一ipsec隧道,还包括:获取所述第一数据包的目的地址;根据所述第一数据包的所述源地址和所述目的地址,判断所述第一数据包是否是第二数据包,其中,所述第二数据包的所述源地址是所述网关设备内网接口的ip地址,所述第二数据包的所述目的地址是所述第二网元的ip地址;若所述第一数据包是所述第二数据包,则将所述第一数据包传入所述第一ipsec隧道。
10.可选的,所述若所述第一数据包是所述第二数据包,则将所述第一数据包传入所述第一ipsec隧道,还包括:若所述第一数据包是所述第二数据包,则封装所述第一数据包;将封装后的所述第一数据包传入所述第一ipsec隧道。
11.可选的,所述根据所述第一数据包的所述源地址和所述目的地址,判断所述第一数据包是否是第二数据包,还包括:若所述第一数据包不是所述第二数据包,查找是否有第二ipsec隧道,所述第二ipsec隧道用于将所述网关设备与第三网元连接,所述第三网元的ip地址与所述第一数据包的目的地址相同;若存在所述第二ipsec隧道,根据所述第一数据包的所述源地址和所述目的地址,判断所述第一数据包是否是第三数据包,所述第三数据包的所述源地址是所述网关设备内网接口的ip地址,以及,所述第三数据包的所述目的地址是所述第三网元的ip地址;若所述第一数据包是所述第三数据包,则将所述第一数据包传入所述第二ipsec隧道。
12.可选的,所述根据所述第一数据包的所述源地址和所述目的地址,判断所述第一数据包是否是第三数据包,还包括:若所述第一数据包不是所述第三数据包,则丢弃所述第一数据包。
13.另一方面,本技术还提供一种网关设备,其特征在于,所述网关设备包括至少一个内网接口,所述网关设备被配置为:建立第一ipsec隧道,所述第一ipsec隧道用于将所述网关设备与第二网元连接,
所述网关设备与所述第二网元处在不同的局域网内;接收第一网元发送的第一数据包,所述第一网元与所述网关设备处在同一局域网内;获取所述第一数据包的第一地址,所述第一地址是所述第一数据包的源地址;将所述第一数据包的源地址由所述第一地址转换为第二地址,所述第二地址是所述网关设备的一个内网接口的ip地址;将所述源地址是所述第二地址的所述第一数据包传入所述第一ipsec隧道,以输送至第二网元。
14.由以上技术方案可知,本技术提供了一种网关设备和将本地数据传入ipsec隧道的方法,所述方法应用于网关设备,包括:建立第一ipsec隧道,第一ipsec隧道用于将所述网关设备与第二网元连接,所述网关设备与第二网元处在不同的局域网内;接收第一网元发送的第一数据包,第一网元与所述网关设备处在同一局域网内;获取第一数据包的第一地址,第一地址是第一数据包的源地址;将第一数据包的源地址由第一地址转换为第二地址,第二地址是该网关设备的一个内网接口的ip地址;将源地址是第二地址的第一数据包传入第一ipsec隧道,以输送至第二网元。本技术提供的网关设备和方法无需在程序开发阶段增加源地址选择的接口交付方式,降低了网关设备的开发成本和配置成本。
附图说明
15.图1示例性示出了现有技术中近端设备与数据中心之间的传输场景的示意图;图2示例性的示出了本技术具体实施方式中的将本地数据传入ipsec隧道的方法的流程图;图3示例性的示出了本技术具体实施方式中的数据包在第一网关内部的流向图;图4示例性的示出了本技术具体实施方式中的数据包在postrouting中的处理流程图。
具体实施方式
16.下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本技术相一致的所有实施方式。仅是与权利要求书中所详述的、本技术的一些方面相一致的系统和方法的示例。
17.基于本技术描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术所附权利要求保护的范围。此外,虽然本技术中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
18.需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
19.本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另
外注明(unless otherwise indicated)。应该理解这样使用的用语在适当情况下可以互换,例如能够根据本技术实施例图示或描述中给出那些以外的顺序实施。
20.此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
21.本技术中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
22.为便于理解本技术实施例的技术方案,在对本技术实施例的具体实施方式进行阐述说明之前,首先对本技术实施例所属技术领域的一些技术术语进行简单解释说明。
23.互联网安全协议(internet protocol security,ipsec)是一种端到端的确保网络(internet protocol,ip)层通信安全(保密性、完整性、真实性)的机制。为确保通信双方之间传输的ip数据包的安全性,可以基于通信双方所处的网络在通信双方之间建立ipsec隧道,以使通信双方交互的ip数据包可以在该ipsec隧道中传输,避免ip数据包在传送中受到拦截、伪造和篡改。
24.snat(source network address translation)为源地址转换,它是地址转换的一种方式,该方式主要替换的是数据报文中的源地址信息,通常是通过一定的条件如数据报文的源地址、目的地址、出接口等条件确认好需要转换的数据连接,然后在出接口处完成源地址的替换,达到最终目的,常见的使用场景是内网私网网段在进入公网前完成将数据包源地址换成公网地址,保证数据应答包可以正确的回到用户处。
25.图1中示例性示出了现有技术中近端设备与数据中心之间的传输场景的示意图。如图1所示,近端设备连接局域网a,数据中心连接局域网b,由于近端设备和数据中心连接的局域网不同,无法直接实现近端设备和数据中心之间信息的交互,因此需要通过将近端设备和数据中心分别接入网关,两个网关分别与可以同时覆盖这两个网关的互联网连接,从而实现两个网关之间的通信,进一步可以间接实现近端设备和数据中心之间信息的交互。
26.图1中示出的第一网关和第二网关均可以包括内网接口(图中未示出)和公网接口(图中未示出),近端设备通过局域网a与第一网关的内网接口连接,数据中心通过局域网b与第二网关的内网接口连接,第一网关的公网接口和第二网关的公网接口均与互联网连接,从而可以在第一网关和第二网关之间建立ipsec隧道,以实现将近端设备发送的数据包通过第一网关传入ipsec隧道,经过ipsec隧道加密后传入第二网关,最终加密后的数据包流入数据中心。
27.当近端设备向数据中心发送数据包时,首先将数据包发送至第一网关,第一网关获取该数据包的源地址和目的地址,数据包的目的地址是数据包最终输出位置的地址,由于数据包最后要从第二网关输出并流入至数据中心,因此数据包的目的地址即为第二网关所保护的第二网元内的ip地址。本地数据包的源地址是数据包从第一网关流出时经过的接口的ip地址,因此在第一网关本省产生数据时,会预先判断数据包从哪一接口流出,该接口的ip地址即为数据包的源地址,由于第一网关通过其公网接口与互联网连接,通常由默认路由覆盖,因此,数据包的源地址会被默认为是第一网关的公网接口的ip地址,确认好数据包的源地址和目的地址后,第一网关将数据包封装并通过其公网接口发送至ipsec隧道。
28.但是,在上述场景中,第一网关的公网接口既是数据包流出的接口又是建立ipsec隧道的接口(进入ipsec隧道的入口),会导致源地址是第一网关的公网接口的ip地址的数据包无法流入ipsec隧道进行加密,从而造成传输失败。
29.为了解决上述问题,通常在做网关产品的程序开发阶段对应增加了源地址的选择功能,以供用户在使用网关产品时可以通过配置相应的接口完成对数据包封装时的源地址的选择,避免由于数据包的源地址是网关产品的公网接口的ip地址导致的无法流入ipsec隧道进行加密和传输的问题。
30.但是,这种基于在网关产品的程序开发阶段增加源地址选择的接口交付方式,由于每一个网关产品上都涉及到多个对外通信的程序,并且每一个网关产品上的程序都需要和远端的同一个服务器通过ipsec隧道进行通信,这就需要网关产品的管理员在每一个程序上都配置相同的源地址,需要很大的开发成本和配置成本。
31.为了在实现将数据包成功引入ipsec隧道的同时,节约网关产品的开发成本和配置成本,本技术提供了一种将本地数据传入ipsec隧道的方法,所述方法的执行主体为网关设备,参见图2,示例性的示出了本技术具体实施方式中的将本地数据传入ipsec隧道的方法的流程图,由图2可知,该方法包括:s100:建立第一ipsec隧道,第一ipsec隧道用于将网关设备与第二网元连接,网关设备与第二网元处在不同的局域网内。
32.在一些实施例中,网关设备可以是一种计算机系统,也可以是一种连接器或任意形式的装置,例如,本技术提供的网关设备可以是图1中的第一网关。此外,第一网元是与第一网关直接进行信息交互的设备,如图1中示出的近端设备。第二网元是第一网元期望进行信息交互的某个远端设备和与该远端设备连接的第二网关的总和,如图1中示出的数据中心和第二网关。第二网关可以是和第一网关相同种类的网关设备,也可以是其他网关设备。
33.在一些实施例中,与第一网元处在同一局域网内的网关设备(第一网关)包括至少一个内网接口和至少一个公网接口,第一网元通过第一网关的任意一个内网接口与第一网关连接,第二网元包括第二网关和数据中心,第二网关也包括至少一个内网接口和至少一个公网接口,数据中心通过第二网关的任意一个内网接口与第二网关连接。
34.在一些实施例中,第一网关的公网接口与互联网连接,第二网关的公网接口也与互联网连接,在第一网关和第二网关之间,可以建立ipsec隧道,ipsec隧道可以对由第一网关流入的数据包进行加密并传输至第二网关。
35.需要说明的是,在本技术具体实施例中提到的互联网可以是传统意义上的internet网,也可以是将第一网元、第一网关以及第二网元完全覆盖的其他网络。
36.s110:接收第一网元发送的第一数据包,第一网元与网关设备处在同一局域网内;在一些实施例中,第一网元向第一网关(网关设备)发送第一数据包,第一网关接收由第一网元发送的第一数据包,并将其发送出去。参见图3,示例性的示出了本技术具体实施方式中的数据包在第一网关内部的流向图。图3中示出的preouting、input、output、forwarding以及postrouting代表了五个用于处理数据包的hook函数,输入包路由和输出包路由代表了两个判决模块,当数据包经过这些函数时,对应的函数将会被调用,对数据包进行相应的处理。例如,第一数据包通过第一网关的某一内网接口流入,经历preouting处理后到达输入包路由,经过输入包路由判定是将该数据包转发出去还是留在第一网关中,
若判定将数据包留在第一网关中,则将第一数据包发送至input函数,经过input函数处理后发送至上层协议栈。若输入包路由判断要将该第一数据包转发出去,则将第一数据包发送至forwarding,经过forwarding处理后发送至postrouting,进一步经过postrouting处理后,根据第一数据包的目的地址,将第一数据包发送出去。
37.s120:获取所述第一数据包的第一地址,所述第一地址是所述第一数据包的源地址;在一些实施例中,可以在postrouting上挂载用于查询数据包源地址的功能函数,第一数据包到达postrouting后,postrouting上挂载的用于查询数据包源地址的功能函数会获取第一数据包的源地址。
38.s130:将所述第一数据包的源地址由所述第一地址转换为第二地址,所述第二地址是所述网关设备的一个内网接口的ip地址。
39.在一些实施例中,可以预先制定snat规则,并将snat规则挂载在postrouting中,其中,snat规则用于识别源地址是网关设备(第一网关)公网接口的ip地址的数据包。
40.在一些实施例中,可以将snat规则挂载在用于查询第一数据包源地址的功能函数之后,以使第一数据包在postrouting中经历如图4所示的处理流程,第一数据包流入postrouting后,首先会读取该第一数据包的源地址,并将第一数据包与snat规则相匹配,若第一数据包的源地址是第一网关公网接口的ip地址,目的地址是第二网元或者第三网元内包含的ip地址的数据包,则匹配成功,进一步将第一数据包的源地址由第一网关公网接口的ip地址转换为第一网关任意一个符合本地保护子网的内网接口的ip地址。
41.在一些实施例中,postrouting会进一步对与snat规则匹配成功和/或匹配失败的第一数据包进行认证,读取该第一数据包当前的源地址和目的地址,判断该第一数据包是否是第二数据包,第二数据包是第一网关和第二网关之间建立的ipsec隧道的感兴趣流,第二数据包是源地址是第一网关内网接口的ip地址,目的地址是数据中心的ip地址的数据包。若认证后判定经过snat规则匹配成功和/或匹配失败的数据包是第二数据包,即第一数据包的源地址为第一网关任意一个内网接口的ip地址,目的地址为数据中心的ip地址,则将第一数据包封装并传入第一网关和第二网关之间建立的ipsec隧道。
42.在一些实施例中,若认证后判定经过snat规则匹配成功和/或匹配失败的第一数据包不是ipsec隧道的感兴趣流,则查找是否有第二ipsec隧道,第二ipsec隧道是第一网关在第一网关和第三网元之间建立的,第三网元包括第三网关和与第三网关连接的接收端设备。若存在第二ipsec隧道,根据第一数据包的源地址和目的地址,判断第一数据包是否是第三数据包,第三数据包是第二ipsec隧道的感兴趣流,第三数据包的源地址是所述网关设备内网接口的ip地址,第三数据包的所述目的地址是所述第三网元的ip地址,若第一数据包是第三数据包,则将第一数据包封装并传入第一网关和第三网关之间建立的第二ipsec隧道。
43.需要说明的是,第三网元可以是区别于前述数据中心的其他数据中心,也可以是服务器,或者,可以是其他用户端设备,例如,电视或电脑等电子设备。
44.在一些实施例中,第三网关也包括内网接口和公网接口,第一网关和第三网关之间建立的第二ipsec隧道会对流入的数据包进行加密处理,并将该数据包由第三网关的公网接口传入,第三网关接收到该数据包后对该数据包进行解封,获取数据包的目的地址,并
根据该数据包的目的地址,将该数据包由第三网关的某一个内网接口传出,传入与之连接的接收端设备。
45.在一些实施例中,若认证后判定经过snat规则匹配成功和/或匹配失败的第一数据包不是ipsec隧道的感兴趣流(第二数据包),且未查找到第二ipsec隧道(第一数据包不是第三数据包),则终止对第一数据包的处理,将第一数据包丢弃至互联网中。
46.s140:将所述源地址是所述第二地址的所述第一数据包传入所述第一ipsec隧道,以输送至第二网元。
47.在一些实施例中,第一网关和第二网关之间建立的ipsec隧道会对流入的数据包进行加密处理,并将该数据包由第二网关的公网接口传入,第二网关接收到该数据包后对该数据包进行解封,获取数据包的目的地址,并根据该数据包的目的地址,将该数据包由第二网关的某一个内网接口传出,传入与第二网关连接的数据中心。
48.根据上述实施例,本技术实施例还提供了一种网关设备,所述网关设备可以是如图1所示的第一网关,所述网关设备包括至少一个内网接口和至少一个公网接口,所述网关设备被配置为:建立第一ipsec隧道,所述第一ipsec隧道用于将所述网关设备与第二网元连接;接收第一网元发送的第一数据包;获取所述第一数据包的第一地址,所述第一地址是所述第一数据包的源地址;将所述第一数据包的源地址由所述第一地址转换为第二地址,所述第二地址是所述网关设备的一个内网接口的ip地址。
49.在一些实施例中,所述将所述第一数据包的源地址由所述第一地址转换为第二地址还包括建立snat规则,所述snat规则是识别所述第一地址是所述网关设备公网接口的ip地址的数据包。
50.将所述第一数据包与所述snat规则相匹配;若匹配成功,则将所述第一数据包的源地址由所述第一地址转换为第二地址。
51.将所述源地址是所述第二地址的所述第一数据包传入所述第一ipsec隧道,以输送至第二网元。
52.在一些实施例中,所述将所述源地址是所述第二地址的第一数据包传入所述第一ipsec隧道,还包括获取所述第一数据包的目的地址;根据所述第一数据包的所述源地址和所述目的地址,判断所述第一数据包是否是第二数据包,其中,所述第二数据包的所述源地址是所述网关设备内网接口的ip地址,所述第二数据包的所述目的地址是所述第二网元的ip地址;若所述第一数据包是所述第二数据包,则将所述第一数据包传入所述第一ipsec隧道。
53.在一些实施例中,所述若所述第一数据包是所述第二数据包,则将所述第一数据包传入所述第一ipsec隧道,还包括:若所述第一数据包是所述第二数据包,则封装所述第一数据包,将封装后的所述第一数据包传入所述第一ipsec隧道。
54.在一些实施例中,所述根据所述第一数据包的所述源地址和所述目的地址,判断所述第一数据包是否是第二数据包,还包括:若所述第一数据包不是所述第二数据包,查找是否有第二ipsec隧道,所述第二ipsec隧道用于将所述网关设备与第三网元连接,所述第三网元的ip地址与所述第一数据
包的目的地址相同;若存在所述第二ipsec隧道,根据所述第一数据包的所述源地址和所述目的地址,判断所述第一数据包是否是第三数据包,所述第三数据包的所述源地址是所述网关设备内网接口的ip地址,以及,所述第三数据包的所述目的地址是所述第三网元的ip地址;若所述第一数据包是所述第三数据包,则将所述第一数据包传入所述第二ipsec隧道。
55.在一些实施例中,所述根据所述第一数据包的所述源地址和所述目的地址,判断所述第一数据包是否是第三数据包,还包括,若所述第一数据包不是所述第三数据包,则丢弃所述第一数据包。
56.本技术提供了一种网关设备和将本地数据传入ipsec隧道的方法,所述方法应用于网关设备,包括:接收第一网元发送的第一数据包;建立第一ipsec隧道,第一ipsec隧道用于将网关设备与第二网元连接;获取第一数据包的第一地址,第一地址是第一数据包的源地址;将第一数据包的源地址由第一地址转换为第二地址,第二地址是该网关设备的一个内网接口的ip地址;将源地址是第二地址的第一数据包传入第一ipsec隧道,以输送至第二网元。本技术提供的网关设备和方法无需在程序开发阶段增加源地址选择的接口交付方式,降低了网关设备的开发成本和配置成本。
57.具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的网关设备和将本地数据传入ipsec隧道的方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
58.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
59.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于显示设备及显示设备的控制方法实施例而言,由于其基本相似于显示设备实施例,所以描述的比较简单,相关之处参见显示设备实施例中的说明即可。
60.以上所述的本发明实施方式并不构成对本发明保护范围的限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献