CN106101617A - 一种报文传输方法、装置及系统 - Google Patents
一种报文传输方法、装置及系统 Download PDFInfo
- Publication number
- CN106101617A CN106101617A CN201610405584.XA CN201610405584A CN106101617A CN 106101617 A CN106101617 A CN 106101617A CN 201610405584 A CN201610405584 A CN 201610405584A CN 106101617 A CN106101617 A CN 106101617A
- Authority
- CN
- China
- Prior art keywords
- message
- address
- vpn server
- vpn
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/181—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文传输方法、装置及系统,该方法包括:在接收到来自出口设备的第一报文后,利用源地址将第一报文发送给从VPN服务器,以使从VPN服务器对第一报文进行解封装处理;在接收到来自从VPN服务器的第二报文后,利用目的地址将第二报文发送给管理服务器,以使管理服务器对第二报文进行业务处理;在接收到来自管理服务器的第三报文后,利用目的地址将第三报文发送给从VPN服务器,以使从VPN服务器对第三报文进行封装处理;在接收到来自从VPN服务器的第四报文后,利用目的地址将第四报文发送给出口设备,以使出口设备向视频设备转发第四报文。通过本发明的技术方案,可以提高各VPN服务器的处理性能,提高视频监控系统的整体性能。
Description
技术领域
本发明涉及网络管理技术领域,尤其涉及一种报文传输方法、装置及系统。
背景技术
VPN(Virtual Private Network,虚拟专用网络)是一种远程访问技术,可以利用公用网络来架设专用网络,以使用户可以访问到内网资源。例如,在企业内网架设一台VPN服务器,外地员工在当地连接到互联网(即公用网络)之后,可以通过互联网连接到VPN服务器,然后通过VPN服务器进入到企业内网。这样,就可以认为数据是在一条专用数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上VPN使用的是互联网上的公用链路。
如图1所示,为在视频监控系统中部署VPN服务器的组网示意图,管理服务器(如视频管理服务器)位于专用网络内,且该专用网络内部署有VPN服务器。视频设备(如网络摄像机、模拟摄像机、客户端、NVR(Network Video Recorder,网络硬盘录像机)等位于另一个专用网络内,且在两个专用网络之间通过公用网络来连接。基于此,当视频设备需要访问视频管理服务器时,则需要先连接到VPN服务器,然后通过该VPN服务器访问视频管理服务器。
在上述方式下,需要由VPN服务器处理所有视频设备的报文,处理工作量太大,影响VPN服务器的处理性能,导致视频监控系统整体性能的下降。
发明内容
本发明提供一种报文传输方法,应用在网络设备上,所述方法包括:
在接收到来自出口设备的第一报文后,利用源地址将所述第一报文发送给从VPN服务器,以使所述从VPN服务器对所述第一报文进行解封装处理;
在接收到来自所述从VPN服务器的第二报文后,利用目的地址将所述第二报文发送给管理服务器,以使所述管理服务器对所述第二报文进行业务处理;
在接收到来自管理服务器的第三报文后,利用目的地址将所述第三报文发送给从VPN服务器,以使所述从VPN服务器对所述第三报文进行封装处理;
在接收到来自所述从VPN服务器的第四报文后,利用目的地址将所述第四报文发送给所述出口设备,以使所述出口设备向视频设备转发所述第四报文。
所述方法进一步包括:
在接收到来自所述从VPN服务器的第二报文后,判断转发表项中是否存在所述第二报文的源地址;如果不存在,则在所述转发表项中记录所述第二报文的源地址与所述网络设备上收到所述第二报文的端口之间的对应关系;
所述利用目的地址将所述第三报文发送给从VPN服务器的过程,具体包括:利用所述目的地址查询所述转发表项,并利用查询到的端口将所述第三报文发送给从VPN服务器;其中,第二报文的源地址与第三报文的目的地址相同。
所述接收到来自出口设备的第一报文之前,所述方法进一步包括:在接收到来自出口设备的连接请求报文后,利用源地址查询转发表项;如果没有匹配的记录,则利用目的地址将所述连接请求报文发送给主VPN服务器,以使主VPN服务器选择用于处理连接请求报文的从VPN服务器;从所述主VPN服务器获取所述从VPN服务器的地址信息,并确定与所述地址信息对应的端口,并在所述转发表项中记录所述连接请求报文的源地址与所述端口的对应关系;
所述利用源地址将所述第一报文发送给从VPN服务器的过程,具体包括:利用所述源地址查询所述转发表项,并利用查询到的端口将所述第一报文发送给所述从VPN服务器;其中,第一报文的源地址与连接请求报文的源地址相同。
所述方法进一步包括:
在利用源地址查询转发表项之后,如果有匹配的记录,则利用所述源地址对应的端口将所述连接请求报文发送给从VPN服务器;以使所述从VPN服务器与对应的视频设备建立VPN连接,并为所述视频设备分配虚拟IP地址;
接收来自所述从VPN服务器的携带所述虚拟IP地址的连接响应报文,将所述连接响应报文发送给所述出口设备,以使所述出口设备向所述视频设备转发所述连接响应报文,且所述视频设备利用所述虚拟IP地址发送所述第一报文。
所述从VPN服务器为所述视频设备分配虚拟IP地址的过程,具体包括:
所述从VPN服务器向主VPN服务器发送申请报文,以使主VPN服务器从虚拟地址池中选择一个未被使用的虚拟IP地址;接收来自主VPN服务器的携带所述虚拟IP地址的响应报文,并将所述虚拟IP地址分配给所述视频设备;或者,
所述从VPN服务器从本地的虚拟地址池中选择一个未被使用的虚拟IP地址,将所述虚拟IP地址分配给所述视频设备,并将所述虚拟IP地址通知给所述主VPN服务器,以使所述主VPN服务器将所述虚拟IP地址标记为已经被使用。
所述方法还包括:
各VPN服务器发送多播类型的选举通知报文,并在接收到来自其它VPN服务器的选举通知报文后,利用本VPN服务器的选举参数以及其它VPN服务器的选举参数,确定本VPN服务器为主VPN服务器或者从VPN服务器;
如果本VPN服务器为主VPN服务器,则启用VPN服务地址信息,并对外发布所述VPN服务地址信息,以使所述出口设备将本出口设备的地址信息映射到所述VPN服务地址信息,且使所述网络设备学习到所述VPN服务地址信息;
如果本VPN服务器为从VPN服务器,则启用所述VPN服务地址信息,且不对外发布所述VPN服务地址信息。
本发明提供一种报文传输装置,应用在网络设备上,所述装置包括:
接收模块,用于接收来自出口设备的第一报文,来自从VPN服务器的第二报文,来自管理服务器的第三报文,来自从VPN服务器的第四报文;
发送模块,用于在接收到来自出口设备的第一报文后,利用源地址将所述第一报文发送给从VPN服务器,以使所述从VPN服务器对所述第一报文进行解封装处理;在接收到来自从VPN服务器的第二报文后,利用目的地址将所述第二报文发送给管理服务器,以使所述管理服务器对所述第二报文进行业务处理;在接收到来自管理服务器的第三报文后,利用目的地址将所述第三报文发送给所述从VPN服务器,以使所述从VPN服务器对所述第三报文进行封装处理;在接收到来自从VPN服务器的第四报文后,利用目的地址将所述第四报文发送给所述出口设备,以使所述出口设备向视频设备转发所述第四报文。
还包括:记录模块,用于在接收到来自从VPN服务器的第二报文后,判断转发表项中是否存在所述第二报文的源地址;如果不存在,则在转发表项中记录所述第二报文的源地址与所述网络设备上收到所述第二报文的端口之间的对应关系;所述发送模块,具体用于在利用目的地址将第三报文发送给从VPN服务器的过程中,利用所述目的地址查询所述转发表项,并利用查询到的端口将第三报文发送给从VPN服务器;第二报文的源地址与第三报文的目的地址相同。
所述发送模块,还用于在接收到来自出口设备的第一报文之前,在接收到来自所述出口设备的连接请求报文后,利用源地址查询转发表项;如果没有匹配的记录,则利用目的地址将所述连接请求报文发送给主VPN服务器,以使所述主VPN服务器选择用于处理连接请求报文的从VPN服务器;如果有匹配的记录,则利用所述源地址对应的端口将所述连接请求报文发送给从VPN服务器,以使从VPN服务器与对应的视频设备建立VPN连接,并为视频设备分配虚拟IP地址;接收来自所述从VPN服务器的携带所述虚拟IP地址的连接响应报文,将所述连接响应报文发送给出口设备,以使所述出口设备向所述视频设备转发所述连接响应报文,且所述视频设备利用所述虚拟IP地址发送所述第一报文;
所述记录模块,还用于从所述主VPN服务器获取所述从VPN服务器的地址信息,并确定与所述地址信息对应的端口,并在所述转发表项中记录所述连接请求报文的源地址与所述端口的对应关系;
所述发送模块,具体用于在利用源地址将第一报文发送给从VPN服务器的过程中,利用所述源地址查询所述转发表项,并利用查询到的端口将所述第一报文发送给从VPN服务器;第一报文的源地址与连接请求报文的源地址相同。
本发明提供一种报文传输系统,所述系统包括出口设备、网络设备、从VPN服务器、主VPN服务器、管理服务器、视频设备;其中:
所述出口设备,用于在接收到第一报文后,利用所述第一报文的目的地址将所述第一报文发送给所述网络设备;
所述网络设备,用于在接收到所述第一报文后,利用所述第一报文的源地址将所述第一报文发送给所述从VPN服务器;
所述从VPN服务器,用于在接收到所述第一报文后,对所述第一报文进行解封装处理,得到第二报文,并将所述第二报文发送给所述网络设备;
所述网络设备,用于在接收到所述第二报文后,利用所述第二报文的目的地址将所述第二报文发送给所述管理服务器;
所述管理服务器,用于在接收到所述第二报文后,对所述第二报文进行业务处理,并基于业务处理的结果向所述网络设备发送第三报文;
所述网络设备,用于在接收到所述第三报文后,利用所述第三报文的目的地址将所述第三报文发送给所述从VPN服务器;
所述从VPN服务器,用于在接收到所述第三报文后,对所述第三报文进行封装处理,得到第四报文,并将所述第四报文发送给所述网络设备;
所述网络设备,用于在接收到所述第四报文后,利用所述第四报文的目的地址将所述第四报文发送给所述出口设备;
所述出口设备,用于在接收到所述第四报文后,向视频设备转发第四报文。
基于上述技术方案,本发明实施例中,可以在专用网络内部署多个VPN服务器,一个VPN服务器为主VPN服务器,其它VPN服务器为从VPN服务器。基于此,可以由多个VPN服务器分担所有视频设备的报文,实现不同VPN服务器之间的负载分担,可以避免某个VPN服务器的处理工作量太大,提高各VPN服务器的处理性能,提高视频监控系统的整体性能,解决大量视频设备接入时的VPN服务器性能不足的问题,满足大量视频设备的同时接入需求。
附图说明
为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是在视频监控系统中部署VPN服务器的组网示意图;
图2是本发明一种实施方式中的应用场景示意图;
图3是本发明一种实施方式中的报文传输方法的流程图;
图4是本发明一种实施方式中的网络设备的硬件结构图;
图5是本发明一种实施方式中的报文传输装置的结构图。
具体实施方式
在本发明使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明。本发明和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
针对现有技术中存在的问题,本发明实施例中提出了一种报文传输方法,以图2为本发明实施例的应用场景示意图,该方法可以应用在视频监控系统中。在专用网络1内部署有视频设备(如网络摄像机、模拟摄像机、客户端、NVR等)和NAT(Network AddressTranslation,网络地址转换)设备,且视频设备通过三层交换机连接到NAT设备,图2中的视频设备可以包括视频设备1和视频设备2。在专用网络2内部署有多个VPN服务器、网络设备(如路由器、三层交换机等)、管理服务器(如视频管理服务器)和出口设备(如防火墙设备、安全网关设备等),网络设备与多个VPN服务器分别连接,网络设备与管理服务器连接,网络设备与出口设备连接。图2中的VPN服务器可以包括VPN服务器1、VPN服务器2、VPN服务器3、VPN服务器4,在实际应用中,VPN服务器的数量还可以更多或者比4个少,其处理与4个VPN服务器的处理类似,后续不再赘述。专用网络1与专用网络2之间通过公用网络来连接。
在上述应用场景下,该报文传输方法可以应用在网络设备上,如图2中的专用网络2内的网络设备,如图3所示,该报文传输方法可以包括以下步骤:
步骤301,在接收到来自出口设备的第一报文后,利用源地址将该第一报文发送给从VPN服务器,以使从VPN服务器对该第一报文进行解封装处理。在一个例子中,源地址是指第一报文的源IP地址,或者,源IP地址和源端口。
步骤302,在接收到来自从VPN服务器的第二报文后,利用目的地址将第二报文发送给管理服务器,以使管理服务器对第二报文进行业务处理。在一个例子中,目的地址是指第二报文的目的IP地址,或者,目的IP地址和目的端口。
步骤303,在接收到来自管理服务器的第三报文后,利用目的地址将第三报文发送给从VPN服务器,以使从VPN服务器对第三报文进行封装处理。在一个例子中,目的地址是指第三报文的目的IP地址,或,目的IP地址和目的端口。
步骤304,在接收到来自从VPN服务器的第四报文后,利用目的地址将该第四报文发送给出口设备,以使出口设备向视频设备转发该第四报文。在一个例子中,目的地址是指第四报文的目的IP地址,或者,目的IP地址和目的端口。
本发明实施例中,针对步骤302,在接收到来自从VPN服务器的第二报文后,还可以判断转发表项中是否存在该第二报文的源地址;如果存在,则可以直接利用目的地址将该第二报文发送给管理服务器;如果不存在,则可以在转发表项中记录该第二报文的源地址与本网络设备上接收到该第二报文的端口之间的对应关系,并利用目的地址将该第二报文发送给管理服务器。
在一个例子中,基于在转发表项中记录该第二报文的源地址与本网络设备上接收到该第二报文的端口之间的对应关系的过程,则针对步骤303,利用目的地址将该第三报文发送给从VPN服务器的过程,具体可以包括但不限于如下方式:利用目的地址查询该转发表项,并可以利用查询到的端口将该第三报文发送给从VPN服务器。其中,第二报文的源地址与第三报文的目的地址相同。
在另一个例子中,利用目的地址将该第三报文发送给从VPN服务器的过程,还可以包括但不限于如下方式:由于第三报文的目的地址为虚拟IP地址,因此,可以在网络设备上维护从VPN服务器与该从VPN服务器所分配的虚拟IP地址的对应关系。基于此,网络设备可以利用目的地址查询该对应关系,从而找到该目的地址(即虚拟IP地址)所对应的从VPN服务器,并使用该从VPN服务器对应的端口将该第三报文发送给该从VPN服务器。
当然,利用目的地址将第三报文发送给从VPN服务器的过程,并不局限于上述两种方式,对于其它将第三报文发送给从VPN服务器的方式不再赘述。
本发明实施例中,在接收到来自出口设备的第一报文之前,即执行步骤301之前,在接收到来自出口设备的连接请求报文之后,还可以利用源地址查询转发表项;如果没有匹配的记录,则利用目的地址将该连接请求报文发送给主VPN服务器,以使主VPN服务器选择用于处理连接请求报文的从VPN服务器。从主VPN服务器获取该从VPN服务器的地址信息,并确定与该地址信息对应的端口,并在转发表项中记录连接请求报文的源地址与该端口的对应关系。
在一个例子中,基于在转发表项中记录连接请求报文的源地址与该端口的对应关系的过程,则针对步骤301,利用第一报文的源地址将该第一报文发送给从VPN服务器的过程,可以包括但不限于如下方式:利用第一报文的源地址查询转发表项,并利用查询到的端口(对应于从VPN服务器的端口)将第一报文发送给从VPN服务器。其中,第一报文的源地址与连接请求报文的源地址相同。
在另一个例子中,利用第一报文的源地址将该第一报文发送给从VPN服务器的过程,还可以包括但不限于如下方式:可以在网络设备上维护从VPN服务器与该从VPN服务器需要处理的源地址的对应关系。基于此,网络设备可以利用第一报文的源地址查询该对应关系,从而找到该源地址所对应的从VPN服务器,并使用该从VPN服务器对应的端口将该第一报文发送给该从VPN服务器。
当然,利用源地址将第一报文发送给从VPN服务器的过程,并不局限于上述两种方式,对于其它将第一报文发送给从VPN服务器的方式不再赘述。
本发明实施例中,在接收到来自出口设备的连接请求报文,并利用源地址查询转发表项之后,如果有匹配的记录,则可以利用源地址对应的端口将连接请求报文发送给从VPN服务器;以使从VPN服务器与对应的视频设备建立VPN连接,并为视频设备分配虚拟IP地址。进一步的,接收来自从VPN服务器的携带虚拟IP地址的连接响应报文,将连接响应报文发送给出口设备,以使出口设备向视频设备转发连接响应报文,且视频设备利用虚拟IP地址发送第一报文。
本发明实施例中,从VPN服务器为视频设备分配虚拟IP地址的过程,具体可以包括但不限于如下方式:从VPN服务器向主VPN服务器发送申请报文,以使主VPN服务器从虚拟地址池中选择一个未被使用的虚拟IP地址;之后,接收来自主VPN服务器的携带该虚拟IP地址的响应报文,并将该虚拟IP地址分配给视频设备。或者,从VPN服务器从本地的虚拟地址池中选择一个未被使用的虚拟IP地址,将该虚拟IP地址分配给视频设备,并将该虚拟IP地址通知给主VPN服务器,以使主VPN服务器将该虚拟IP地址标记为已经被使用。
本发明实施例中,各VPN服务器还可以发送多播类型的选举通知报文,并在接收到来自其它VPN服务器的选举通知报文之后,可以利用本VPN服务器的选举参数以及其它VPN服务器的选举参数,确定本VPN服务器为主VPN服务器或者从VPN服务器。进一步的,如果本VPN服务器为主VPN服务器,则可以启用VPN服务地址信息,并对外发布该VPN服务地址信息,以使出口设备将本出口设备的地址信息映射到该VPN服务地址信息,且使网络设备学习到该VPN服务地址信息。此外,如果本VPN服务器为从VPN服务器,则也可以启用VPN服务地址信息,但是不对外发布该VPN服务地址信息。
基于上述技术方案,本发明实施例中,可以在专用网络内部署多个VPN服务器,一个VPN服务器为主VPN服务器,其它VPN服务器为从VPN服务器。基于此,可以由多个VPN服务器分担所有视频设备的报文,实现不同VPN服务器之间的负载分担,可以避免某个VPN服务器的处理工作量太大,提高各VPN服务器的处理性能,提高视频监控系统的整体性能,解决大量视频设备接入时的VPN服务器性能不足的问题,满足大量视频设备的同时接入需求。
以下结合图2所示的应用场景,对上述过程进行详细说明。本应用场景下,以L2TP(Layer 2Tunneling Protocol,二层隧道协议)类型的VPN为例进行说明,其它类型的VPN的处理与此类似,本发明实施例中不再赘述。
一、VPN服务器的选举过程。在该选举过程中,从多个VPN服务器中选举出一个主VPN服务器,且其它VPN服务器为从VPN服务器。
各VPN服务器发送多播类型的选举通知报文,并在接收到来自其它VPN服务器的选举通知报文之后,可以利用本VPN服务器的选举参数以及其它VPN服务器的选举参数,确定本VPN服务器为主VPN服务器或者从VPN服务器。
在一个例子中,假设选举参数为IP地址,并选举IP地址最小的VPN服务器为主VPN服务器。当然,在实际应用中,也可以选举IP地址最大的VPN服务器为主VPN服务器。而且,选举参数也可以为设备标识等其它参数。
基于此,各VPN服务器定时发送多播类型的选举通知报文,多播类型可以为组播类型或者广播类型,因此,选举通知报文可以为组播报文或者广播报文,该组播报文可以跨网段传输,该广播报文只能在一个网段传输。为了方便描述,以选举通知报文为组播报文为例,目的地址为组播地址239.222.222.222(预先定义好),目的端口为12345(预先定义好),报文类型为选举类型。
在一种实现方式中,VPN服务器周期性的发送选举通知报文,并在接收到来自其它VPN服务器的选举通知报文后,记录选举通知报文的源IP地址(即其它VPN服务器的IP地址)。如果本VPN服务器的IP地址大于其它VPN服务器的IP地址,则选举本VPN服务器为从VPN服务器。如果本VPN服务器的IP地址小于其它VPN服务器的IP地址,则向其它VPN服务器发送单播响应报文,该单播响应报文用于指示不再发送选举通知报文。这样,经过一段时间后,只有IP地址最小的VPN服务器在发送选举通知报文,而其它VPN服务器不再发送选举通知报文,且IP地址最小的VPN服务器可以确定本VPN服务器的IP地址最小,并选举为主VPN服务器,而其它VPN服务器选举为从VPN服务器。
在另一种实现方式中,VPN服务器周期性的发送选举通知报文,并在接收到来自其它VPN服务器的选举通知报文后,记录选举通知报文的源IP地址(即其它VPN服务器的IP地址)。如果本VPN服务器的IP地址大于其它VPN服务器的IP地址,则选举本VPN服务器为从VPN服务器,且本VPN服务器不再发送选举通知报文。如果本VPN服务器的IP地址小于其它VPN服务器的IP地址,则本VPN服务器继续发送选举通知报文。这样,经过一段时间后,只有IP地址最小的VPN服务器在发送选举通知报文,而其它VPN服务器不再发送选举通知报文,且IP地址最小的VPN服务器可以确定本VPN服务器的IP地址最小,并选举为主VPN服务器,而其它VPN服务器选举为从VPN服务器。
基于上述两种实现方式,IP地址最小的VPN服务器1(192.169.1.10)均可以被选举为主VPN服务器,此外,VPN服务器2(192.169.1.15)、VPN服务器3(192.169.1.20)、VPN服务器4(192.169.1.25)被选举为从VPN服务器,且主VPN服务器会记录各从VPN服务器的IP地址,如表1所示。
表1
从VPN服务器 | IP地址 |
VPN服务器2 | 192.169.1.15 |
VPN服务器3 | 192.169.1.20 |
VPN服务器4 | 192.169.1.25 |
在VPN服务器1被选举为主VPN服务器之后,将在网卡上启用VPN服务地址信息(如IP地址192.169.1.200),并对外发布该VPN服务地址信息。在VPN服务器2、VPN服务器3、VPN服务器4被选举为从VPN服务器之后,也在网卡上启用VPN服务地址信息,但是不对外发布该VPN服务地址信息。
其中,VPN服务地址信息是指在VPN服务器对外提供VPN服务时,使用的IP地址(如192.169.1.200),其是一个虚拟IP地址,对于访问该VPN服务的设备来说,可以通过该VPN服务地址信息访问到VPN服务器。
其中,对外发布该VPN服务地址信息的方式可以包括但不限于:主动发布携带该IP地址192.169.1.200的免费ARP消息,和/或,在接收到ARP请求消息之后,返回携带该IP地址192.169.1.200的ARP响应消息。
其中,网络设备通过免费ARP消息或者ARP响应消息学习到该VPN服务地址信息。例如,网络设备在通过端口1接收到免费ARP消息或者ARP响应消息之后,可以将该IP地址192.169.1.200学习到端口1,例如,网络设备在本地的转发表项中记录该IP地址192.169.1.200与端口1的对应关系。
其中,出口设备通过免费ARP消息或者ARP响应消息,可以将本出口设备的地址信息映射到该VPN服务地址信息。例如,出口设备在接收到免费ARP消息或者ARP响应消息之后,可以将公网地址202.110.110.25(即本出口设备的IP地址)映射到该IP地址192.169.1.200。
此外,主VPN服务器还可以在预设端口(如端口1701)上开启VPN服务,因此,该VPN服务地址信息还可以包括端口1701。而且,出口设备还可以将公网端口10001(即本出口设备的公网端口)映射到该端口1701。
由于出口设备将公网地址202.110.110.25映射到IP地址192.169.1.200,并将公网端口10001映射到端口1701,因此,对于访问VPN服务器的设备来说,可以将公网地址202.110.110.25和公网端口10001提供给该设备,且该设备可以通过公网地址202.110.110.25和公网端口10001访问到VPN服务器。这样,不是直接将IP地址192.169.1.200和端口1701暴露给设备,避免攻击者拿到IP地址192.169.1.200和端口1701,从而避免攻击者对VPN服务器的攻击,保证安全性。而且,提供给设备的公网地址202.110.110.25和公网端口10001是出口设备的,而出口设备通常是防火墙等安全设备,对于发送到出口设备的报文,出口设备还可以进行安全处理,进一步保证安全性。
在主VPN服务器和从VPN服务器选举完成之后,主VPN服务器还可以通过私有消息与各从VPN服务器建立连接,如可以通过端口12000建立TCP(Transmission ControlProtocol,传输控制协议)连接,且主VPN服务器与从VPN服务器通过该TCP连接传输内容,后续在主VPN服务器与从VPN服务器之间传输的内容,均是通过该TCP连接完成的,在后续过程中不再赘述。
二、L2TP连接建立过程。在L2TP连接建立过程中,会在视频设备与从VPN服务器之间建立L2TP连接,从VPN服务器为视频设备分配虚拟IP地址。
视频设备1发起L2TP连接,发送连接请求报文,该连接请求报文的源IP地址为视频设备1的IP地址192.168.1.103,源端口为任意端口,目的IP地址为出口设备的公网地址202.110.110.25,目的端口为出口设备的公网端口10001。NAT设备收到连接请求报文后,将源IP地址修改为202.100.100.10,将源端口修改为10103,发送连接请求报文,连接请求报文的源IP地址为NAT设备的IP地址202.100.100.10,源端口为NAT设备的端口10103,目的IP地址为出口设备的公网地址202.110.110.25,目的端口为出口设备的公网端口10001。
出口设备收到连接请求报文后,基于公网地址202.110.110.25与IP地址192.169.1.200的映射关系,公网端口10001与端口1701的映射关系,将连接请求报文的目的IP地址修改为192.169.1.200,将连接请求报文的目的端口修改为端口1701,发送连接请求报文。连接请求报文的源IP地址为202.100.100.10,源端口为10103,目的IP地址为192.169.1.200,目的端口为1701。
在一个例子中,网络设备上的端口分为路由器端口和服务器端口,连接出口设备的端口被配置为路由器端口,而其它端口被配置为服务器端口。基于此,对于来自路由器端口的报文,网络设备先根据源地址(如源IP地址和源端口)查询转发表项,如果有对应的记录,则按照查询到的出接口进行转发,如果没有对应的记录,则根据目的地址(如目的IP地址和目的端口)查询转发表项,如果有对应的记录,则按照查询到的出接口进行转发。对于来自服务器端口的报文,网络设备先根据目的地址(如目的IP地址和目的端口)查询转发表项,如果有对应的记录,则按照查询到的出接口进行转发。
基于上述策略,网络设备在接收到来自出口设备的连接请求报文之后,由于是通过路由器端口接收到连接请求报文,因此,先利用连接请求报文的源地址(如源IP地址202.100.100.10和源端口10103)查询转发表项;由于没有匹配的记录,因此,根据目的地址(如目的IP地址192.169.1.200)查询转发表项。由于已经在转发表项中记录IP地址192.169.1.200与端口1的对应关系,因此,网络设备通过端口1将该连接请求报文发送给主VPN服务器。
主VPN服务器在接收到连接请求报文后,选择用于处理连接请求报文的从VPN服务器。在选择从VPN服务器时,主VPN服务器可以根据实际需要任意选择,算法有很多,只要保证在各从VPN服务器之间实现负载分担即可。
在一个例子中,主VPN服务器可以根据连接请求报文的源IP地址和/或源端口,哈希出一台从VPN服务器,可采用的哈希算法任意选择。例如,(连接请求报文的源IP地址(转为整型)+源端口)mod(从VPN服务器数量和)。假设结果为0,则选择VPN服务器2,假设结果为1,则选择VPN服务器3。为了方便描述,以主VPN服务器选择VPN服务器2为例进行说明。
网络设备从主VPN服务器获取其选择的从VPN服务器的地址信息(如IP地址),并确定与该地址信息对应的端口(即本网络设备上连接该从VPN服务器的端口),并在转发表项中记录连接请求报文的源地址与该端口的对应关系。
在一个例子中,主VPN服务器可以通过网管消息将选择的VPN服务器2的IP地址192.169.1.15发送给网络设备。网络设备基于IP地址192.169.1.15查询ARP表项,找到出端口为端口2,即通过端口2连接VPN服务器2。
在一个例子中,主VPN服务器可以通过网管消息将连接请求报文的源地址(如源IP地址202.100.100.10和源端口10103)发送给网络设备。在另一个例子中,网络设备可以在将连接请求报文发送给主VPN服务器时,在本地记录连接请求报文的源地址(如源IP地址202.100.100.10和源端口10103)。
基于上述过程,网络设备可以获得连接请求报文的源地址以及从VPN服务器对应的端口,并在转发表项中记录该源地址(如源IP地址202.100.100.10和源端口10103)与该端口(如端口2)的对应关系,如表2所示。
表2
地址信息 | 出端口 |
202.100.100.10;10103 | 端口2 |
本发明实施例中,主VPN服务器在选择用于处理连接请求报文的从VPN服务器之后,还可以丢弃当前接收到的连接请求报文。这样,视频设备1发送的连接请求报文,未收到相应的连接响应报文,因此重新发送连接请求报文。
对于重新发送的连接请求报文,视频设备1、NAT设备、出口设备的处理相同,在此不再重复赘述。网络设备在接收到来自出口设备的连接请求报文后,由于是通过路由器端口接收到连接请求报文,因此,利用连接请求报文的源地址(如源IP地址202.100.100.10和源端口10103)查询转发表项,如表2所示,由于有匹配的记录,因此,通过端口2将连接请求报文发送给VPN服务器2。在另一个例子中,主VPN服务器还可以将连接请求报文的源地址(如源IP地址202.100.100.10和源端口10103)和VPN服务器2的对应关系发送给网络设备,网络设备维护VPN服务器2与VPN服务器2需要处理的源地址(如源IP地址202.100.100.10和源端口10103)的对应关系。网络设备在接收到来自出口设备的连接请求报文之后,可以利用该连接请求报文的源地址(如源IP地址202.100.100.10和源端口10103)查询该对应关系,得到从VPN服务器为VPN服务器2,通过VPN服务器2对应的端口2将连接请求报文发送给VPN服务器。
VPN服务器2在收到连接请求报文后,由于连接请求报文的目的IP地址为192.169.1.200,且VPN服务器2已启用192.169.1.200,只是未对外发布,因此确定连接请求报文需要由本VPN服务器2进行处理。在处理过程中,VPN服务器2进行VPN连接鉴权、建立等操作,具体操作流程不再赘述,最终,VPN服务器2与对应的视频设备1建立VPN连接,并为视频设备1分配虚拟IP地址。
本发明实施例中,VPN服务器2为视频设备分配虚拟IP地址的过程,具体可以包括但不限于如下方式:VPN服务器2向主VPN服务器发送申请报文,以使主VPN服务器从虚拟地址池中选择一个未被使用的虚拟IP地址;之后,接收来自主VPN服务器的携带该虚拟IP地址的响应报文,并将该虚拟IP地址分配给视频设备。或者,VPN服务器2从本地的虚拟地址池中选择一个未被使用的虚拟IP地址,将该虚拟IP地址分配给视频设备,并将该虚拟IP地址通知给主VPN服务器,以使主VPN服务器将该虚拟IP地址标记为已经被使用。
针对方式一、所有视频设备的虚拟IP地址由主VPN服务器统一分配。
VPN服务器2在为视频设备1分配虚拟IP地址时,向主VPN服务器发送申请报文。主VPN服务器在接收到申请报文之后,从预先配置的虚拟地址池(如10.10.10.20-10.10.10.60)中选择一个未被使用的虚拟IP地址(如10.10.10.20),并通过响应报文将该虚拟IP地址(10.10.10.20)发送给VPN服务器2。VPN服务器2接收携带该虚拟IP地址(10.10.10.20)的响应报文,并在L2TP建立过程中,将该虚拟IP地址(10.10.10.20)分配给视频设备1的虚拟网卡。
基于上述方式,可以由主VPN服务器统一分配所有视频设备的虚拟IP地址,保证虚拟IP地址的统一管理,避免虚拟IP地址的分配错误。
而且,主VPN服务器在分配虚拟IP地址之后,还可以统一维护表3所示的对应关系,基于表3,主VPN服务器可以统一管理所有的虚拟IP地址。在表3中,源IP地址202.100.100.10和源端口10103可以是VPN服务器2通过申请报文上送的,且所属从VPN服务器的标识也可以通过申请报文上送。
表3
视频设备的信息 | 虚拟IP地址 | 所属从VPN服务器的标识 |
202.100.100.10;10103 | 10.10.10.20 | VPN服务器2 |
202.100.100.10;10104 | 10.10.10.21 | VPN服务器3 |
针对方式二、视频设备的虚拟IP地址由从VPN服务器自己分配。
在主VPN服务器和从VPN服务器选举完成之后,主VPN服务器可以将预先配置的虚拟地址池(如10.10.10.20-10.10.10.60)划分为几个不包含相同虚拟地址的虚拟地址池,且虚拟地址池的划分数量可以根据实际经验进行选择,例如为从VPN服务器的数量加1,而且,每个虚拟地址池内的虚拟地址数量可以相同,也可以不同。例如,可以将虚拟地址池(10.10.10.20-10.10.10.60)划分为虚拟地址池(10.10.10.20-10.10.10.29)、虚拟地址池(10.10.10.30-10.10.10.39)、虚拟地址池(10.10.10.40-10.10.10.49)、虚拟地址池(10.10.10.50-10.10.10.60)。进一步的,主VPN服务器可以将虚拟地址池(10.10.10.20-10.10.10.29)下发给VPN服务器2,并将虚拟地址池(10.10.10.30-10.10.10.39)下发给VPN服务器3,并将虚拟地址池(10.10.10.40-10.10.10.49)下发给VPN服务器4。
基于上述过程,VPN服务器2在为视频设备1分配虚拟IP地址时,从本地的虚拟地址池(10.10.10.20-10.10.10.29)中选择一个未被使用的虚拟IP地址(如10.10.10.20),并在L2TP建立过程中,将虚拟IP地址(10.10.10.20)分配给视频设备1的虚拟网卡。此外,VPN服务器2还可以将该虚拟IP地址(10.10.10.20)通知给主VPN服务器,以使主VPN服务器将该虚拟IP地址标记为已经被使用。而且,由于VPN服务器2将该虚拟IP地址(10.10.10.20)通知给主VPN服务器,因此,主VPN服务器也可以维护表3所示的对应关系,在此不再赘述。
基于上述方式,可以由从VPN服务器分配视频设备的虚拟IP地址,减少主VPN服务器与从VPN服务器之间的交互过程,减少报文的传输数量。
上述过程是以主VPN服务器选择从VPN服务器处理连接请求报文为例进行说明的,在实际应用中,主VPN服务器也可以选择自身来处理连接请求报文,因此,可以由主VPN服务器与视频设备建立L2TP连接,并为视频设备分配虚拟IP地址,其处理与从VPN服务器的处理类似,后续不再进行说明。
VPN服务器2在为视频设备分配虚拟IP地址之后,可以向网络设备发送携带该虚拟IP地址(10.10.10.20)的连接响应报文。网络设备接收该连接响应报文,并将该连接响应报文发送给出口设备。出口设备接收该连接响应报文,并将该连接响应报文发送给视频设备1。视频设备1接收该连接响应报文,从该连接响应报文中解析出该虚拟IP地址(10.10.10.20),并利用该连接响应报文与VPN服务器2建立相应的L2TP连接,并利用该虚拟IP地址(10.10.10.20)发送报文,针对视频设备1发送报文的过程,将在后续过程进行说明。
三、报文的传输过程。报文可以为在视频设备与管理服务器之间交互的任意报文,可以为协议报文或者数据报文,如注册报文等。在后续过程中,为了区分方便,使用第一报文、第二报文、第三报文和第四报文进行区分。
在一个例子中,视频设备在发送报文时,原始数据为IP报文,先经过PPP(Point toPoint Protocol,点对点协议)封装,然后进行L2TP封装,并将其封装成UDP(User DatagramProtocol,用户数据报协议),并继续封装成可以在公网上传输的IP报文。基于此,视频设备发送的报文从内层到外层可以依次为:原始数据、内层IP头、PPP协议头、L2TP隧道协议头、UDP头、外层IP头。在后续过程中,会对内层IP头和外层IP头的内容进行说明,对于其它部分的内容,不再进行说明,与目前的报文内容一致。
视频设备1在获得虚拟IP地址(10.10.10.20)之后,基于已经建立的L2TP连接,视频设备1发送报文(为了区分方便,将该报文称为第一报文)。该第一报文的外层IP头的源IP地址为视频设备1的IP地址192.168.1.103,源端口为任意端口,目的IP地址为出口设备的公网地址202.110.110.25,目的端口为出口设备的公网端口10001;内层IP头的源IP地址为虚拟IP地址10.10.10.20,源端口为业务端口5060(该业务端口可以根据实际需要预先配置好),目的IP地址为管理服务器的IP地址192.169.1.100,目的端口为业务端口5060。
NAT设备在接收到第一报文后,将源IP地址修改为202.100.100.10,将源端口修改为10103,并发送该第一报文。第一报文的外层IP头的源IP地址为NAT设备的IP地址202.100.100.10,源端口为端口10103,目的IP地址为出口设备的公网地址202.110.110.25,目的端口为出口设备的公网端口10001;内层IP头的源IP地址为虚拟IP地址10.10.10.20,源端口为业务端口5060,目的IP地址为管理服务器的IP地址192.169.1.100,目的端口为业务端口5060。
出口设备在接收到第一报文之后,基于公网地址202.110.110.25与IP地址192.169.1.200的映射关系,公网端口10001与端口1701的映射关系,将目的IP地址修改为192.169.1.200,并将目的端口修改为端口1701,并发送该第一报文。其中,该第一报文的外层IP头的源IP地址为IP地址202.100.100.10,源端口为端口10103,目的IP地址为192.169.1.200,目的端口为1701;内层IP头的源IP地址为虚拟IP地址10.10.10.20,源端口为业务端口5060,目的IP地址为管理服务器的IP地址192.169.1.100,目的端口为业务端口5060。
在一个例子中,网络设备在接收到来自出口设备的第一报文后,由于是通过路由器端口接收到第一报文,因此,利用第一报文的源地址(如源IP地址202.100.100.10和源端口10103)查询转发表项。如表2所示,由于转发表项中记录有该源地址,因此,利用查询到的端口2将第一报文发送给VPN服务器2。在另一个例子中,由于网络设备维护了VPN服务器2与VPN服务器2需要处理的源地址(如源IP地址202.100.100.10和源端口10103)的对应关系,因此,网络设备可以利用第一报文的源地址(如源IP地址202.100.100.10和源端口10103)查询该对应关系,得到从VPN服务器为VPN服务器2,并通过VPN服务器2对应的端口2将连接请求报文发送给VPN服务器2。
其中,第一报文的源地址是指第一报文的外层IP头的源IP地址和源端口。
在一个例子中,VPN服务器2在接收到第一报文后,由于第一报文的外层IP头的目的IP地址为192.169.1.200,且VPN服务器2已启用192.169.1.200,因此确定第一报文需要由本VPN服务器2进行处理。在处理过程中,VPN服务器2对第一报文进行解封装处理,去除第一报文的外层IP头,得到不包含外层IP头的第二报文,具体解封装流程不再赘述。之后,VPN服务器2将第二报文发送给网络设备,第二报文只包含一个IP头(即第一报文的内层IP头),该IP头的源IP地址为虚拟IP地址10.10.10.20,源端口为业务端口5060,目的IP地址为管理服务器的IP地址192.169.1.100,目的端口为业务端口5060。
在一个例子中,网络设备在接收到来自VPN服务器2的第二报文后,判断转发表项中是否存在该第二报文的源地址(即虚拟IP地址10.10.10.20、业务端口5060)。如果存在,网络设备利用第二报文的目的地址(IP地址192.169.1.100、业务端口5060)将第二报文发送给管理服务器。如果不存在,网络设备在转发表项中记录第二报文的源地址(虚拟IP地址10.10.10.20、业务端口5060)与本网络设备上接收到该第二报文的端口2之间的对应关系,并利用第二报文的目的地址(IP地址192.169.1.100、业务端口5060)将第二报文发送给管理服务器。如表4所示,为在转发表项中记录源地址与端口2之间的对应关系的示例。
表4
地址信息 | 出端口 |
10.10.10.20;5060 | 端口2 |
在一个例子中,网络设备上配置如下学习策略,来自路由器端口的报文不进行源地址的学习,来自服务器端口的报文进行源地址的学习。因此,网络设备在接收到来自服务器端口的第二报文后,如果转发表项中不存在第二报文的源地址,则在转发表项中记录第二报文的源地址与端口2之间的对应关系。
管理服务器在接收到第二报文之后,对该第二报文进行业务处理,如第二报文为注册报文时,则进行注册处理,具体业务处理过程不再赘述。在业务处理完成后,管理服务器发送第三报文,该第三报文是第二报文的响应报文。其中,该第三报文只包含一个IP头,该IP头的源IP地址为管理服务器的IP地址192.169.1.100,源端口为业务端口5060,目的IP地址为虚拟IP地址10.10.10.20(从第二报文中解析出),目的端口为业务端口5060(从第二报文中解析出)。
网络设备在接收到来自管理服务器的第三报文之后,利用第三报文的目的地址(如虚拟IP地址10.10.10.20、业务端口5060)查询转发表项,如表4所示,由于转发表项中存在虚拟IP地址10.10.10.20、业务端口5060,因此,网络设备可以通过查询到的端口2将第三报文发送给VPN服务器2。在另一个例子中,主VPN服务器还可以将表3所示的内容发送给网络设备,由网络设备维护表3所示的内容,即可以在网络设备上维护从VPN服务器与该从VPN服务器所分配的虚拟IP地址的对应关系。基于此对应关系,网络设备可以利用第三报文的目的地址(如虚拟IP地址10.10.10.20)查询表3,得到该虚拟IP地址10.10.10.20对应的从VPN服务器为从VPN服务器2,并使用该从VPN服务器2对应的端口2将该第三报文发送给该从VPN服务器2。
VPN服务器2在接收到第三报文之后,对该第三报文进行封装处理,得到一个包含两个IP头的第四报文,第三报文的IP头为第四报文的内层IP头,此外,重新封装一个外层IP头。其中,VPN服务器2对第三报文进行封装处理的过程,是上述VPN服务器2对第一报文进行解封装处理的逆运算过程。因此,第四报文的内层IP头的源IP地址为管理服务器的IP地址192.169.1.100,源端口为业务端口5060,目的IP地址为虚拟IP地址10.10.10.20,目的端口为业务端口5060;外层IP头的源IP地址为192.169.1.200,源端口为端口1701;目的IP地址为IP地址202.100.100.10,目的端口为端口10103。
之后,VPN服务器2将该第四报文发送给网络设备。网络设备在接收到该第四报文之后,可以基于该第四报文的外层IP头的目的地址(如目的IP地址202.100.100.10,目的端口10103),将该第四报文发送给出口设备。
出口设备在接收到第四报文之后,基于公网地址202.110.110.25与IP地址192.169.1.200的映射关系,公网端口10001与端口1701的映射关系,将源IP地址修改为202.110.110.25,将源端口修改为公网端口10001,并发送第四报文。第四报文的内层IP头的源IP地址为管理服务器的IP地址192.169.1.100,源端口为业务端口5060,目的IP地址为虚拟IP地址10.10.10.20,目的端口为业务端口5060;外层IP头的源IP地址为202.110.110.25,源端口为公网端口10001;目的IP地址为IP地址202.100.100.10,目的端口为端口10103。
NAT设备在接收到第四报文之后,对第四报文的目的地址做NAT转换,具体转换过程不再赘述,并将转换后的第四报文发送给视频设备1。视频设备1收到第四报文后,由于内层IP头的目的IP地址为虚拟IP地址10.10.10.20,获知第四报文需要由本视频设备1进行处理,因此对第四报文进行业务处理,具体业务处理过程不再赘述。至此,完成视频设备1的业务处理过程。
在一个例子中,如果从VPN服务器断电或者故障,则主VPN服务器在选择用于处理连接请求报文的从VPN服务器时,不会选择断电或者故障的从VPN服务器,从而可以避免将报文发送到断电或者故障的从VPN服务器。
在一个例子中,如果主VPN服务器断电或者故障,则主VPN服务器无法继续发送选举通知报文(基于上面的分析,主VPN服务器周期性发送选举通知报文),因此从VPN服务器在预设时间段内不会收到来自主VPN服务器的选举通知报文。基于此,各从VPN服务器重新定时发送选举通知报文,以选择出新主VPN服务器,具体选举过程不再赘述。而且,新主VPN服务器将代替原主VPN服务器的工作,在网卡上启用VPN服务地址信息(如IP地址192.169.1.200),并对外发布该VPN服务地址信息。网络设备会更新自身的ARP表项,将IP地址192.169.1.200学习到新主VPN服务器对应的端口。
对于新主VPN服务器的工作过程,与上述原主VPN服务器的工作过程相同,在此不再重复赘述。需要注意的是,如果原主VPN服务器正在为视频设备3提供VPN服务,则将视频设备3的VPN服务分配给其它从VPN服务器,由其它从VPN服务器建立与视频设备3的L2TP连接,并为视频设备3提供VPN服务。为了实现这一过程,只要通知网络设备将转发表项中记录的,对应于原主VPN服务器的端口修改为对应于其它从VPN服务器的端口即可。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种报文传输装置,该报文传输装置应用在网络设备上。其中,该报文传输装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的网络设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4所示,为本发明提出的报文传输装置所在的网络设备的一种硬件结构图,除了图4所示的处理器、非易失性存储器外,网络设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该网络设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图5所示,为本发明提出的报文传输装置的结构图,所述装置具体包括:
接收模块11,用于接收来自出口设备的第一报文,来自从VPN服务器的第二报文,来自管理服务器的第三报文,来自从VPN服务器的第四报文;
发送模块12,用于在接收到来自出口设备的第一报文后,利用源地址将所述第一报文发送给从VPN服务器,以使所述从VPN服务器对所述第一报文进行解封装处理;在接收到来自从VPN服务器的第二报文后,利用目的地址将所述第二报文发送给管理服务器,以使所述管理服务器对所述第二报文进行业务处理;在接收到来自管理服务器的第三报文后,利用目的地址将所述第三报文发送给所述从VPN服务器,以使所述从VPN服务器对所述第三报文进行封装处理;在接收到来自从VPN服务器的第四报文后,利用目的地址将所述第四报文发送给所述出口设备,以使所述出口设备向视频设备转发所述第四报文。
所述报文传输装置还包括(在图中未体现):记录模块13,用于在接收到来自从VPN服务器的第二报文后,判断转发表项中是否存在所述第二报文的源地址;如果不存在,则在转发表项中记录所述第二报文的源地址与所述网络设备上收到所述第二报文的端口之间的对应关系;
所述发送模块12,具体用于在利用目的地址将第三报文发送给从VPN服务器的过程中,利用所述目的地址查询所述转发表项,并利用查询到的端口将第三报文发送给从VPN服务器;第二报文的源地址与第三报文的目的地址相同。
所述发送模块12,还用于在接收到来自出口设备的第一报文之前,在接收到来自所述出口设备的连接请求报文后,利用源地址查询转发表项;如果没有匹配的记录,则利用目的地址将所述连接请求报文发送给主VPN服务器,以使所述主VPN服务器选择用于处理连接请求报文的从VPN服务器;如果有匹配的记录,利用所述源地址对应的端口将所述连接请求报文发送给从VPN服务器,以使从VPN服务器与对应的视频设备建立VPN连接,并为视频设备分配虚拟IP地址;接收来自所述从VPN服务器的携带所述虚拟IP地址的连接响应报文,将所述连接响应报文发送给出口设备,以使所述出口设备向所述视频设备转发所述连接响应报文,且所述视频设备利用所述虚拟IP地址发送所述第一报文;
所述记录模块13,还用于从所述主VPN服务器获取所述从VPN服务器的地址信息,并确定与所述地址信息对应的端口,并在所述转发表项中记录所述连接请求报文的源地址与所述端口的对应关系;
所述发送模块12,具体用于在利用源地址将第一报文发送给从VPN服务器的过程中,利用所述源地址查询所述转发表项,并利用查询到的端口将所述第一报文发送给从VPN服务器;第一报文的源地址与连接请求报文的源地址相同。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种报文传输系统,所述系统包括出口设备、网络设备、从VPN服务器、主VPN服务器、管理服务器、视频设备;其中:
所述出口设备,用于在接收到第一报文后,利用所述第一报文的目的地址将所述第一报文发送给所述网络设备;
所述网络设备,用于在接收到所述第一报文后,利用所述第一报文的源地址将所述第一报文发送给所述从VPN服务器;
所述从VPN服务器,用于在接收到所述第一报文后,对所述第一报文进行解封装处理,得到第二报文,并将所述第二报文发送给所述网络设备;
所述网络设备,用于在接收到所述第二报文后,利用所述第二报文的目的地址将所述第二报文发送给所述管理服务器;
所述管理服务器,用于在接收到所述第二报文后,对所述第二报文进行业务处理,并基于业务处理的结果向所述网络设备发送第三报文;
所述网络设备,用于在接收到所述第三报文后,利用所述第三报文的目的地址将所述第三报文发送给所述从VPN服务器;
所述从VPN服务器,用于在接收到所述第三报文后,对所述第三报文进行封装处理,得到第四报文,并将所述第四报文发送给所述网络设备;
所述网络设备,用于在接收到所述第四报文后,利用所述第四报文的目的地址将所述第四报文发送给所述出口设备;
所述出口设备,用于在接收到所述第四报文后,向视频设备转发第四报文。
对于该系统的详细处理流程,参见上述方法实施例,在此不再重复赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种报文传输方法,应用在网络设备上,其特征在于,所述方法包括:
在接收到来自出口设备的第一报文后,利用源地址将所述第一报文发送给从VPN服务器,以使所述从VPN服务器对所述第一报文进行解封装处理;
在接收到来自所述从VPN服务器的第二报文后,利用目的地址将所述第二报文发送给管理服务器,以使所述管理服务器对所述第二报文进行业务处理;
在接收到来自管理服务器的第三报文后,利用目的地址将所述第三报文发送给从VPN服务器,以使所述从VPN服务器对所述第三报文进行封装处理;
在接收到来自所述从VPN服务器的第四报文后,利用目的地址将所述第四报文发送给所述出口设备,以使所述出口设备向视频设备转发所述第四报文。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在接收到来自所述从VPN服务器的第二报文后,判断转发表项中是否存在所述第二报文的源地址;如果不存在,则在所述转发表项中记录所述第二报文的源地址与所述网络设备上收到所述第二报文的端口之间的对应关系;
所述利用目的地址将所述第三报文发送给从VPN服务器的过程,具体包括:利用所述目的地址查询所述转发表项,并利用查询到的端口将所述第三报文发送给从VPN服务器;其中,第二报文的源地址与第三报文的目的地址相同。
3.根据权利要求1所述的方法,其特征在于,
所述接收到来自出口设备的第一报文之前,所述方法进一步包括:在接收到来自出口设备的连接请求报文后,利用源地址查询转发表项;如果没有匹配的记录,则利用目的地址将所述连接请求报文发送给主VPN服务器,以使主VPN服务器选择用于处理连接请求报文的从VPN服务器;从所述主VPN服务器获取所述从VPN服务器的地址信息,并确定与所述地址信息对应的端口,并在所述转发表项中记录所述连接请求报文的源地址与所述端口的对应关系;
所述利用源地址将所述第一报文发送给从VPN服务器的过程,具体包括:利用所述源地址查询所述转发表项,并利用查询到的端口将所述第一报文发送给所述从VPN服务器;其中,第一报文的源地址与连接请求报文的源地址相同。
4.根据权利要求3所述的方法,其特征在于,所述方法进一步包括:
在利用源地址查询转发表项之后,如果有匹配的记录,则利用所述源地址对应的端口将所述连接请求报文发送给从VPN服务器;以使所述从VPN服务器与对应的视频设备建立VPN连接,并为所述视频设备分配虚拟IP地址;
接收来自所述从VPN服务器的携带所述虚拟IP地址的连接响应报文,将所述连接响应报文发送给所述出口设备,以使所述出口设备向所述视频设备转发所述连接响应报文,且所述视频设备利用所述虚拟IP地址发送所述第一报文。
5.根据权利要求4所述的方法,其特征在于,所述从VPN服务器为所述视频设备分配虚拟IP地址的过程,具体包括:
所述从VPN服务器向主VPN服务器发送申请报文,以使主VPN服务器从虚拟地址池中选择一个未被使用的虚拟IP地址;接收来自主VPN服务器的携带所述虚拟IP地址的响应报文,并将所述虚拟IP地址分配给所述视频设备;或者,
所述从VPN服务器从本地的虚拟地址池中选择一个未被使用的虚拟IP地址,将所述虚拟IP地址分配给所述视频设备,并将所述虚拟IP地址通知给所述主VPN服务器,以使所述主VPN服务器将所述虚拟IP地址标记为已经被使用。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
各VPN服务器发送多播类型的选举通知报文,并在接收到来自其它VPN服务器的选举通知报文后,利用本VPN服务器的选举参数以及其它VPN服务器的选举参数,确定本VPN服务器为主VPN服务器或者从VPN服务器;
如果本VPN服务器为主VPN服务器,则启用VPN服务地址信息,并对外发布所述VPN服务地址信息,以使所述出口设备将本出口设备的地址信息映射到所述VPN服务地址信息,且使所述网络设备学习到所述VPN服务地址信息;
如果本VPN服务器为从VPN服务器,则启用所述VPN服务地址信息,且不对外发布所述VPN服务地址信息。
7.一种报文传输装置,应用在网络设备上,其特征在于,所述装置包括:
接收模块,用于接收来自出口设备的第一报文,来自从VPN服务器的第二报文,来自管理服务器的第三报文,来自从VPN服务器的第四报文;
发送模块,用于在接收到来自出口设备的第一报文后,利用源地址将所述第一报文发送给从VPN服务器,以使所述从VPN服务器对所述第一报文进行解封装处理;在接收到来自从VPN服务器的第二报文后,利用目的地址将所述第二报文发送给管理服务器,以使所述管理服务器对所述第二报文进行业务处理;在接收到来自管理服务器的第三报文后,利用目的地址将所述第三报文发送给所述从VPN服务器,以使所述从VPN服务器对所述第三报文进行封装处理;在接收到来自从VPN服务器的第四报文后,利用目的地址将所述第四报文发送给所述出口设备,以使所述出口设备向视频设备转发所述第四报文。
8.根据权利要求7所述的装置,其特征在于,还包括:
记录模块,用于在接收到来自从VPN服务器的第二报文后,判断转发表项中是否存在所述第二报文的源地址;如果不存在,则在转发表项中记录所述第二报文的源地址与所述网络设备上收到所述第二报文的端口之间的对应关系;
所述发送模块,具体用于在利用目的地址将第三报文发送给从VPN服务器的过程中,利用所述目的地址查询所述转发表项,并利用查询到的端口将第三报文发送给从VPN服务器;第二报文的源地址与第三报文的目的地址相同。
9.根据权利要求7所述的装置,其特征在于,
所述发送模块,还用于在接收到来自出口设备的第一报文之前,在接收到来自所述出口设备的连接请求报文后,利用源地址查询转发表项;如果没有匹配的记录,则利用目的地址将所述连接请求报文发送给主VPN服务器,以使所述主VPN服务器选择用于处理连接请求报文的从VPN服务器;如果有匹配的记录,则利用所述源地址对应的端口将所述连接请求报文发送给从VPN服务器,以使从VPN服务器与对应的视频设备建立VPN连接,并为视频设备分配虚拟IP地址;接收来自所述从VPN服务器的携带所述虚拟IP地址的连接响应报文,将所述连接响应报文发送给出口设备,以使所述出口设备向所述视频设备转发所述连接响应报文,且所述视频设备利用所述虚拟IP地址发送所述第一报文;
所述记录模块,还用于从所述主VPN服务器获取所述从VPN服务器的地址信息,并确定与所述地址信息对应的端口,并在所述转发表项中记录所述连接请求报文的源地址与所述端口的对应关系;
所述发送模块,具体用于在利用源地址将第一报文发送给从VPN服务器的过程中,利用所述源地址查询所述转发表项,并利用查询到的端口将所述第一报文发送给从VPN服务器;第一报文的源地址与连接请求报文的源地址相同。
10.一种报文传输系统,其特征在于,所述系统包括出口设备、网络设备、从VPN服务器、主VPN服务器、管理服务器、视频设备;其中:
所述出口设备,用于在接收到第一报文后,利用所述第一报文的目的地址将所述第一报文发送给所述网络设备;
所述网络设备,用于在接收到所述第一报文后,利用所述第一报文的源地址将所述第一报文发送给所述从VPN服务器;
所述从VPN服务器,用于在接收到所述第一报文后,对所述第一报文进行解封装处理,得到第二报文,并将所述第二报文发送给所述网络设备;
所述网络设备,用于在接收到所述第二报文后,利用所述第二报文的目的地址将所述第二报文发送给所述管理服务器;
所述管理服务器,用于在接收到所述第二报文后,对所述第二报文进行业务处理,并基于业务处理的结果向所述网络设备发送第三报文;
所述网络设备,用于在接收到所述第三报文后,利用所述第三报文的目的地址将所述第三报文发送给所述从VPN服务器;
所述从VPN服务器,用于在接收到所述第三报文后,对所述第三报文进行封装处理,得到第四报文,并将所述第四报文发送给所述网络设备;
所述网络设备,用于在接收到所述第四报文后,利用所述第四报文的目的地址将所述第四报文发送给所述出口设备;
所述出口设备,用于在接收到所述第四报文后,向视频设备转发第四报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610405584.XA CN106101617B (zh) | 2016-06-08 | 2016-06-08 | 一种报文传输方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610405584.XA CN106101617B (zh) | 2016-06-08 | 2016-06-08 | 一种报文传输方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106101617A true CN106101617A (zh) | 2016-11-09 |
CN106101617B CN106101617B (zh) | 2020-04-10 |
Family
ID=57228516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610405584.XA Active CN106101617B (zh) | 2016-06-08 | 2016-06-08 | 一种报文传输方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106101617B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547621A (zh) * | 2017-06-27 | 2018-01-05 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN108184091A (zh) * | 2017-12-28 | 2018-06-19 | 浙江宇视科技有限公司 | 一种视频监控设备部署方法及装置 |
CN109981725A (zh) * | 2019-01-31 | 2019-07-05 | 咪咕文化科技有限公司 | 一种跨安全域的通信方法、服务器和可读存储介质 |
CN111010329A (zh) * | 2019-03-20 | 2020-04-14 | 新华三技术有限公司 | 一种报文传输方法及装置 |
CN111142963A (zh) * | 2019-11-22 | 2020-05-12 | 贵州电网有限责任公司 | 变电站仪器的端口查询方法、装置设备及存储介质 |
CN112769670A (zh) * | 2021-01-20 | 2021-05-07 | 清华大学 | 一种vpn数据安全访问控制方法及系统 |
CN113141312A (zh) * | 2020-01-20 | 2021-07-20 | 浙江宇视科技有限公司 | 数据处理方法、装置、系统、电子设备及存储介质 |
CN113572759A (zh) * | 2021-07-21 | 2021-10-29 | 华控清交信息科技(北京)有限公司 | 一种数据管理方法、装置、电子设备及存储介质 |
WO2023213148A1 (zh) * | 2022-05-05 | 2023-11-09 | 联洲集团有限公司 | 基于硬件加速的数据传输方法及其装置、处理器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060088031A1 (en) * | 2004-10-26 | 2006-04-27 | Gargi Nalawade | Method and apparatus for providing multicast messages within a virtual private network across a data communication network |
CN1953420A (zh) * | 2006-09-26 | 2007-04-25 | 杭州华为三康技术有限公司 | 一种转发隧道报文的方法和一种网络设备 |
CN101626338A (zh) * | 2009-08-03 | 2010-01-13 | 杭州华三通信技术有限公司 | 一种实现多虚拟专用网实例的方法和设备 |
US20100329252A1 (en) * | 2009-06-26 | 2010-12-30 | Nortel Networks Limited | Method and Apparatus for Enabling Multicast Route Leaking Between VRFs in Different VPNs |
CN102340434A (zh) * | 2011-07-07 | 2012-02-01 | 杭州华三通信技术有限公司 | 基于多归属接入的环路避免方法和边缘设备 |
CN102571613A (zh) * | 2012-03-09 | 2012-07-11 | 华为技术有限公司 | 一种转发报文的方法及网络设备 |
WO2013173973A1 (zh) * | 2012-05-22 | 2013-11-28 | 华为技术有限公司 | 网络通信方法和装置 |
-
2016
- 2016-06-08 CN CN201610405584.XA patent/CN106101617B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060088031A1 (en) * | 2004-10-26 | 2006-04-27 | Gargi Nalawade | Method and apparatus for providing multicast messages within a virtual private network across a data communication network |
CN1953420A (zh) * | 2006-09-26 | 2007-04-25 | 杭州华为三康技术有限公司 | 一种转发隧道报文的方法和一种网络设备 |
US20100329252A1 (en) * | 2009-06-26 | 2010-12-30 | Nortel Networks Limited | Method and Apparatus for Enabling Multicast Route Leaking Between VRFs in Different VPNs |
CN101626338A (zh) * | 2009-08-03 | 2010-01-13 | 杭州华三通信技术有限公司 | 一种实现多虚拟专用网实例的方法和设备 |
CN102340434A (zh) * | 2011-07-07 | 2012-02-01 | 杭州华三通信技术有限公司 | 基于多归属接入的环路避免方法和边缘设备 |
CN102571613A (zh) * | 2012-03-09 | 2012-07-11 | 华为技术有限公司 | 一种转发报文的方法及网络设备 |
WO2013173973A1 (zh) * | 2012-05-22 | 2013-11-28 | 华为技术有限公司 | 网络通信方法和装置 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547621A (zh) * | 2017-06-27 | 2018-01-05 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN107547621B (zh) * | 2017-06-27 | 2020-11-06 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN108184091A (zh) * | 2017-12-28 | 2018-06-19 | 浙江宇视科技有限公司 | 一种视频监控设备部署方法及装置 |
CN108184091B (zh) * | 2017-12-28 | 2020-10-20 | 浙江宇视科技有限公司 | 一种视频监控设备部署方法及装置 |
CN109981725A (zh) * | 2019-01-31 | 2019-07-05 | 咪咕文化科技有限公司 | 一种跨安全域的通信方法、服务器和可读存储介质 |
CN109981725B (zh) * | 2019-01-31 | 2022-06-14 | 咪咕文化科技有限公司 | 一种跨安全域的通信方法、服务器和可读存储介质 |
CN111010329B (zh) * | 2019-03-20 | 2021-09-21 | 新华三技术有限公司 | 一种报文传输方法及装置 |
CN111010329A (zh) * | 2019-03-20 | 2020-04-14 | 新华三技术有限公司 | 一种报文传输方法及装置 |
CN111142963A (zh) * | 2019-11-22 | 2020-05-12 | 贵州电网有限责任公司 | 变电站仪器的端口查询方法、装置设备及存储介质 |
CN111142963B (zh) * | 2019-11-22 | 2023-05-16 | 贵州电网有限责任公司 | 变电站仪器的端口查询方法、装置设备及存储介质 |
CN113141312A (zh) * | 2020-01-20 | 2021-07-20 | 浙江宇视科技有限公司 | 数据处理方法、装置、系统、电子设备及存储介质 |
CN112769670B (zh) * | 2021-01-20 | 2021-11-23 | 清华大学 | 一种vpn数据安全访问控制方法及系统 |
CN112769670A (zh) * | 2021-01-20 | 2021-05-07 | 清华大学 | 一种vpn数据安全访问控制方法及系统 |
CN113572759A (zh) * | 2021-07-21 | 2021-10-29 | 华控清交信息科技(北京)有限公司 | 一种数据管理方法、装置、电子设备及存储介质 |
CN113572759B (zh) * | 2021-07-21 | 2023-05-23 | 华控清交信息科技(北京)有限公司 | 一种数据管理方法、装置、电子设备及存储介质 |
WO2023213148A1 (zh) * | 2022-05-05 | 2023-11-09 | 联洲集团有限公司 | 基于硬件加速的数据传输方法及其装置、处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN106101617B (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106101617A (zh) | 一种报文传输方法、装置及系统 | |
CN101296238B (zh) | 一种保持安全套接层会话持续性的方法及设备 | |
US8549120B2 (en) | System and method for location based address assignment in the distribution of traffic in a virtual gateway | |
CN102971992B (zh) | 虚拟专用局域网设备、网络组件和数据帧转发方法 | |
CN102970227B (zh) | 在asic中实现vxlan报文转发的方法和装置 | |
CN102325197B (zh) | 一种内网设备与外网设备通信的方法和网络地址转换设备 | |
US20140153577A1 (en) | Session-based forwarding | |
CN102355479B (zh) | 一种多nat网关流量转发的方法和设备 | |
CN102647487B (zh) | 一种节约ip地址的方法及接入代理设备 | |
JP2003273935A (ja) | 相異なるプライベートネットワークに存在するネットワーク機器間の直接接続を提供するネットワーク接続装置及びその方法 | |
CN101827039B (zh) | 一种负载分担的方法和设备 | |
JP2011160103A (ja) | ゲートウェイ装置及びプログラム、並びに、通信システム | |
CN102790811A (zh) | 一种在监控网络中穿越nat设备的方法和装置 | |
CN105490957A (zh) | 一种负载分担方法及装置 | |
CN103237092B (zh) | 一种访问私网硬盘录像机的方法和装置 | |
CN106255089A (zh) | 一种无线三层漫游的方法和装置 | |
CN103701945A (zh) | 一种地址转换方法和装置 | |
CN102571814B (zh) | 一种ip监控系统中穿越隔离设备的方法及代理设备 | |
CN102664804B (zh) | 网络设备实现网桥功能的方法及系统 | |
CN108737183A (zh) | 一种转发表项的监测方法及装置 | |
CN106302847A (zh) | 用于多层网路位址转译器结构的网路传输方法及系统 | |
CN107547403A (zh) | 报文转发方法、协助方法、装置、控制器及主机 | |
CN102201996A (zh) | 网络地址转换环境中报文转发的方法及设备 | |
CN105933235A (zh) | 数据通信方法及装置 | |
WO2014156143A1 (ja) | ホームゲートウェイ装置およびパケット転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |