[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN103023783B - 一种基于dvpn的数据传输方法和设备 - Google Patents

一种基于dvpn的数据传输方法和设备 Download PDF

Info

Publication number
CN103023783B
CN103023783B CN201210507271.7A CN201210507271A CN103023783B CN 103023783 B CN103023783 B CN 103023783B CN 201210507271 A CN201210507271 A CN 201210507271A CN 103023783 B CN103023783 B CN 103023783B
Authority
CN
China
Prior art keywords
spoke
neighbours
data
equipment
messages
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.)
Active
Application number
CN201210507271.7A
Other languages
English (en)
Other versions
CN103023783A (zh
Inventor
王佩龙
毛昱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201210507271.7A priority Critical patent/CN103023783B/zh
Publication of CN103023783A publication Critical patent/CN103023783A/zh
Application granted granted Critical
Publication of CN103023783B publication Critical patent/CN103023783B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于DVPN的数据传输方法和设备,该方法包括:Spoke向邻居Spoke发送Cost Request报文;所述Spoke接收所述邻居Spoke返回的Cost Response报文,所述Cost Response报文中携带了所述邻居Spoke与目的Spoke之间的Cost值;所述Spoke比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值,并在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据。本发明中,能够降低数据的转发延迟。

Description

一种基于DVPN的数据传输方法和设备
技术领域
本发明涉及通信技术领域,特别是涉及一种基于DVPN(DynamicVirtualPrivateNetwork,动态虚拟专用网络)的数据传输方法和设备。
背景技术
越来越多的企业希望利用公共网络组建VPN(VirtualPrivateNetwork,虚拟专用网络),以连接地理位置不同的多个分支机构;然而企业分支机构通常采用动态地址接入公共网络,使得通信一端无法事先知道对端的公网地址,为组建VPN提出了难题。为此提出了DVPN技术,其通过NHRP(NextHopResolutionProtocol,下一跳解析协议)或者VAM(VPNAddressManagement,VPN地址管理)协议收集、维护和分发动态变化的公网地址信息,从而在企业网各分支机构使用动态地址接入公网的情况下,在各分支机构间建立VPN。
DVPN包括Full-Mesh(全互联)网络,在Full-Mesh网络中,Spoke之间可以建立direct(直连)隧道直接进行通信,且Hub主要作为路由信息交换的中心;具体的,Spoke在向Server(服务器)注册后可以获得Hub的信息,并与Hub建立永久的隧道连接;且任意两个Spoke之间可以建立direct隧道,该direct隧道是动态的,在一段规定时间内没有数据交互时需要被删除。
在Full-Mesh网络中,隧道建立过程包括如下步骤:
步骤1、如图1所示的Site(节点)接入网络的初始状态示意图;在初始状态下,各Site都接入到网络,但彼此之间没有建立隧道。
步骤2、如图2所示的Site向Server注册示意图;在各Site向Server注册的过程中,各Site可以通过注册请求报文和回应报文的交互,获得Hub或Spoke的身份,且在Spoke和Hub之间建立隧道;其中,该Server可以是NHS(对应于NHRP实现的方式)或者VAMServer(对应于VAM实现的方式)。
步骤3、如图3所示的Spoke之间建立direct隧道示意图;在Spoke之间建立direct隧道的过程中,假设Spoke1与PC1相连,Spoke2与PC2相连,当PC1需要发送数据给PC2时,Spoke1向Server发送下一跳解析请求报文,Server将Spoke2注册的公网地址通过下一跳解析响应报文通知给Spoke1,之后Spoke1可以利用Spoke2的公网地址建立到Spoke2的direct隧道。
在所有Spoke之间都建立direct隧道之后,可以形成一个Full-Mesh网络,如图4所示,为Full-Mesh网络的示意图;该网络中包括Spoke和Hub之间的隧道以及Spoke和Spoke之间的direct隧道;此时,各Spoke之间的数据可以直接通过Spoke之间的direct隧道转发,而不需要通过Hub进行中转。
现有技术中,Spoke之间在通过direct隧道进行数据转发时,Spoke之间的direct隧道并不一定是最短转发路径。如图5所示,为Full-Mesh网络转发路径Cost(开销)示意图;Spoke1到达Spoke2的direct隧道需要经历8跳(此转发路径经过8个路由器或三层交换机),而Spoke1至Hub至Spoke2的路径需要经历2+4=6跳,Spoke1至Spoke3至Spoke2的路径需要经历2+2=4跳。
发明内容
本发明提供一种基于DVPN的数据传输方法和设备,以通过较小的路径开销传输数据,并降低数据的转发延迟。
为了达到上述目的,本发明实施例提供一种基于动态虚拟专用网络DVPN的数据传输方法,应用于包括多个Spoke的网络中,各Spoke上维护有邻居开销Cost表,所述邻居Cost表中记录了本设备与邻居Spoke之间的Cost值,该方法包括以下步骤:
Spoke向邻居Spoke发送开销请求CostRequest报文,所述CostRequest报文中携带了目的Spoke的信息;由所述邻居Spoke在收到所述CostRequest报文之后,利用所述目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与所述目的Spoke之间的Cost值;
所述Spoke接收邻居Spoke返回的开销响应CostResponse报文,所述CostResponse报文中携带了所述邻居Spoke与所述目的Spoke之间的Cost值;
所述Spoke比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值,并在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据。
所述网络中还包括有服务器,各Spoke维护邻居Cost表的过程,进一步包括:各Spoke在向所述服务器发起注册的过程中,接收来自所述服务器的注册应答报文,所述注册应答报文中携带了生存时间TTL值N;
各Spoke均向本设备的邻居Spoke发送保活Keepalive报文,所述Keepalive报文中携带了所述TTL值N;
各Spoke在收到来自邻居Spoke的Keepalive报文后,获得Keepalive报文中携带的TTL值M,并确定本设备与邻居Spoke之间的Cost值为(N-M);
各Spoke在本地维护的邻居Cost表中记录所述邻居Spoke的信息与所述Cost值(N-M)之间的对应关系。
所述目的Spoke的信息包括目的Spoke的公网地址;所述Spoke向邻居Spoke发送开销请求CostRequest报文的过程,进一步包括:
所述Spoke在需要向目的Spoke发送数据时,向邻居Spoke发送携带所述目的Spoke的公网地址的CostRequest报文。
所述Spoke通过Cost值最小的路径向所述目的Spoke发送数据,具体包括:所述Spoke在Cost值最小的路径为所述Spoke至邻居Spoke至目的Spoke时,通过所述Spoke与目的Spoke之间的direct隧道地址对所述数据进行第一层封装,并通过所述Spoke与邻居Spoke之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给所述邻居Spoke;
由所述邻居Spoke在收到第二层封装后的数据时,解第二层封装得到第一层封装后的数据,并将第一层封装后的数据发送给所述目的Spoke。
所述Spoke通过Cost值最小的路径向所述目的Spoke发送数据,具体包括:所述Spoke在Cost值最小的路径为所述Spoke至邻居Spoke至目的Spoke时,通过所述Spoke与邻居Spoke之间的direct隧道地址对所述数据进行封装,并在封装后的数据的指定字段中携带所述目的Spoke的公网地址,并将封装后的数据发送给所述邻居Spoke;
由所述邻居Spoke在收到封装后的数据时,如果发现指定字段中携带的公网地址不是本设备的公网地址,则将封装后的数据的目的地址修改为所述指定字段中携带的公网地址,并将修改后的数据发送给所述目的Spoke。
本发明实施例提供一种基于动态虚拟专用网络DVPN的数据传输设备,作为Spoke应用于包括多个Spoke的网络中,所述设备包括:
维护模块,用于维护邻居开销Cost表,所述邻居Cost表中记录了本设备与邻居Spoke之间的Cost值;
报文发送模块,用于向邻居Spoke发送开销请求CostRequest报文,所述CostRequest报文中携带了目的Spoke的信息;由所述邻居Spoke在收到所述CostRequest报文之后,利用所述目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与所述目的Spoke之间的Cost值;
接收模块,用于接收邻居Spoke返回的开销响应CostResponse报文,所述CostResponse报文中携带了所述邻居Spoke与目的Spoke之间的Cost值;
比较模块,用于比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值;
数据发送模块,用于在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据。
所述网络中还包括有服务器;所述维护模块,进一步用于在向所述服务器发起注册的过程中,接收来自所述服务器的注册应答报文,且所述注册应答报文中携带了生存时间TTL值N;向本设备的邻居Spoke发送保活Keepalive报文,所述Keepalive报文中携带了所述TTL值N;在收到来自邻居Spoke的Keepalive报文后,获得Keepalive报文中携带的TTL值M,并确定本设备与邻居Spoke之间的Cost值为(N-M);在本地维护的邻居Cost表中记录所述邻居Spoke的信息与所述Cost值(N-M)之间的对应关系。
所述目的Spoke的信息包括所述目的Spoke的公网地址;所述报文发送模块,具体用于在需要向目的Spoke发送数据时,向邻居Spoke发送携带所述目的Spoke的公网地址的CostRequest报文。
所述数据发送模块,进一步用于在Cost值最小的路径为本设备至邻居Spoke至目的Spoke时,通过本设备与目的Spoke之间的direct隧道地址对所述数据进行第一层封装,并通过本设备与邻居Spoke之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给所述邻居Spoke;由所述邻居Spoke在收到第二层封装后的数据时,解第二层封装得到第一层封装后的数据,并将第一层封装后的数据发送给所述目的Spoke。
所述数据发送模块,进一步用于在Cost值最小的路径为本设备至邻居Spoke至目的Spoke时,通过本设备与邻居Spoke之间的direct隧道地址对所述数据进行封装,并在封装后的数据的指定字段中携带所述目的Spoke的公网地址,并将封装后的数据发送给所述邻居Spoke;由所述邻居Spoke在收到封装后的数据时,如果发现指定字段中携带的公网地址不是本设备的公网地址,则将封装后的数据的目的地址修改为所述指定字段中携带的公网地址,并将修改后的数据发送给所述目的Spoke。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,能够确定DVPN中各Spoke之间转发数据的最短路径,并可以通过最短路径传输数据,从而以较小的路径开销传输数据,并降低数据的转发延迟。
附图说明
图1是现有技术的Full-Mesh网络中Site接入网络的初始状态示意图;
图2是现有技术的Full-Mesh网络中Site向Server注册示意图;
图3是现有技术的Full-Mesh网络中Spoke之间建立direct隧道示意图;
图4是现有技术的Full-Mesh网络的示意图;
图5是现有技术的Full-Mesh网络转发路径Cost示意图;
图6是本发明实施例提供的一种基于DVPN的数据传输方法流程图;
图7是本发明实施例的具体应用场景示意图;
图8是本发明实施例提出的一种基于DVPN的数据传输设备结构图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
针对现有技术中存在的问题,本发明实施例提出了一种基于DVPN的数据传输方法,该方法可以应用在DVPN的Full-Mesh网络中;且在Full-Mesh网络中,可以至少包括服务器(Server)和多个Spoke(包含Hub和Spoke)。
本发明实施例中,各Spoke上维护有邻居Cost表,且该邻居Cost表中记录了本设备与邻居Spoke之间的Cost值(即转发跳数或者策略优先级等)。假设Full-Mesh网络中包括Spoke1、Spoke2和Spoke3,则:Spoke1上记录Spoke1与Spoke2之间的Cost值、Spoke1与Spoke3之间的Cost值;Spoke2上记录Spoke2与Spoke1之间的Cost值、Spoke2与Spoke3之间的Cost值;Spoke3上记录Spoke3与Spoke1之间的Cost值、Spoke3与Spoke2之间的Cost值。
具体的,各Spoke上为了维护邻居Cost表,则一种优选的实施方式为:
各Spoke在向服务器发起注册的过程中,接收来自服务器的注册应答报文(Registerreplay报文),该注册应答报文中携带了TTL(TimeToLive,生存时间)值N;该TTL值N为Full-Mesh网络的TTL值,且服务器向该Full-Mesh网络中的每个Spoke所发送的注册应答报文中,均携带了相同的TTL值N。
各Spoke从服务器上获得TTL值N之后,如果各Spoke建立起Full-Mesh的隧道连接(即所有Spoke之间建立direct隧道),则各Spoke均向本设备的邻居Spoke发送Keepalive(保活)报文(Keepalive报文可以定时发送),且该Keepalive报文的IP头中携带了TTL值N;例如,Spoke1向Spoke2发送携带TTL值N的Keepalive报文,并向Spoke3发送携带TTL值N的Keepalive报文;Spoke2向Spoke1发送携带TTL值N的Keepalive报文,并向Spoke3发送携带TTL值N的Keepalive报文;Spoke3向Spoke1发送携带TTL值N的Keepalive报文,并向Spoke2发送携带TTL值N的Keepalive报文。
各Spoke在收到来自邻居Spoke的Keepalive报文之后,获得Keepalive报文中携带的TTL值M,并确定本设备与邻居Spoke之间的Cost值为(N-M);以Spoke1和Spoke2之间的处理为例,Spoke1通过本设备与Spoke2之间的direct隧道向Spoke2发送携带TTL值N的Keepalive报文,且Spoke2通过本设备与Spoke1之间的direct隧道向Spoke1发送携带TTL值N的Keepalive报文;Spoke1在收到来自Spoke2的Keepalive报文后,从Keepalive报文的IP头中获得TTL值M,并确定Spoke1与Spoke2之间的Cost值为(N-M);Spoke2在收到来自Spoke1的Keepalive报文后,从Keepalive报文的IP头中获得TTL值M,并确定Spoke2与Spoke1之间的Cost值为(N-M)。
各Spoke在本地所维护的邻居Cost表中记录邻居Spoke的信息(如邻居Spoke的公网地址)与Cost值(N-M)之间的对应关系。例如,在Spoke1的邻居Cost表上,将记录Spoke2的公网地址与Cost值(N-M)之间的对应关系,并记录Spoke3的公网地址与Cost值(N-M)之间的对应关系;在Spoke2的邻居Cost表上,将记录Spoke1的公网地址与Cost值(N-M)之间的对应关系,并记录Spoke3的公网地址与Cost值(N-M)之间的对应关系;在Spoke3的邻居Cost表上,将记录Spoke1的公网地址与Cost值(N-M)之间的对应关系,并记录Spoke2的公网地址与Cost值(N-M)之间的对应关系。
本发明实施例中,由于是针对Full-Mesh网络的处理,因此Full-Mesh网络的各Spoke按照上述方式进行处理后,均可以在本地维护的邻居Cost表中记录邻居Spoke的信息与Cost值(N-M)之间的对应关系。
基于本地维护的邻居Cost表,如图6所示,本发明实施例所提出的基于DVPN的数据传输方法可以包括以下步骤:
步骤601,Spoke向邻居Spoke(即目的Spoke之外的其它邻居Spoke)发送CostRequest(开销请求)报文,该CostRequest报文中携带了目的Spoke的信息;该目的Spoke的信息包括但不限于该目的Spoke的公网地址。
本发明实施例中,Spoke向邻居Spoke发送CostRequest报文的过程,进一步包括:Spoke在需要向目的Spoke发送数据时,向邻居Spoke发送携带目的Spoke的公网地址的CostRequest报文;例如,Spoke1在需要向Spoke2发送数据时,向邻居Spoke发送携带Spoke2的公网地址的CostRequest报文;或者,Spoke定时触发向邻居Spoke发送携带目的Spoke的公网地址的CostRequest报文;例如,Spoke1定时触发向邻居Spoke发送携带Spoke2的公网地址的CostRequest报文和携带Spoke3的公网地址的CostRequest报文。
以图7为本发明实施例的应用场景示意图,则对于Spoke1来说,当有数据需要通过Spoke1转发给Spoke2时,该Spoke1需要向所有邻居Spoke(即Spoke3、SpokeN和Hub)发送CostRequest报文;其中,该CostRequest报文中携带了Spoke2的公网地址,且该CostRequest报文用于使各邻居Spoke查询本设备到达Spoke2的direct隧道的Cost值。
步骤602,邻居Spoke在收到CostRequest报文之后,利用目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与目的Spoke之间的Cost值。
具体的,由于邻居Spoke本地维护的邻居Cost表中记录了邻居Spoke的信息与Cost值(N-M)之间的对应关系,因此邻居Spoke在收到CostRequest报文之后,可以直接利用目的Spoke的信息查询到目的Spoke对应的Cost值,该目的Spoke对应的Cost值为本设备与目的Spoke之间的Cost值。
步骤603,邻居Spoke向Spoke返回CostResponse(开销响应)报文,该CostResponse报文中携带了邻居Spoke与目的Spoke之间的Cost值。
步骤604,Spoke在收到CostResponse报文之后,比较本设备与目的Spoke之间的Cost值和本设备至邻居Spoke至目的Spoke之间的Cost值,并在需要向目的Spoke发送数据时,通过Cost值最小的路径向目的Spoke发送数据。
如图7所示,Spoke1向所有邻居Spoke(即Spoke3、SpokeN和Hub)发送CostRequest报文之后,能够收到来自所有邻居Spoke的CostResponse报文;来自Spoke3的CostResponse报文中携带了Cost值2(即Spoke3与Spoke2之间的Cost值为2);来自SpokeN的CostResponse报文中携带了Cost值5(即SpokeN与Spoke2之间的Cost值为5);来自Hub的CostResponse报文中携带了Cost值4(即Hub与Spoke2之间的Cost值为4)。
基于上述邻居Spoke向Spoke返回的CostResponse报文以及Spoke本地维护的邻居Cost表,Spoke1可以获知:Spoke1与Spoke2之间的Cost值为8,Spoke1至Spoke3至Spoke2之间的Cost值为4(2+2),Spoke1至SpokeN至Spoke2之间的Cost值为7(2+5),Spoke1至Hub至Spoke2之间的Cost值为6(2+4);通过比较本设备与目的Spoke之间的Cost值和本设备至邻居Spoke至目的Spoke之间的Cost值,Cost值最小的路径为Spoke1至Spoke3至Spoke2,因此Spoke1在需要向Spoke2发送数据时,可以通过Cost值最小的路径:Spoke1至Spoke3至Spoke2的路径向目的Spoke发送数据。
综上所述,本发明实施例能够优化隧道转发路径,并降低数据转发延迟。例如,Spoke1至Spoke3至Spoke2的Cost值为4,是最短路径;此时Spoke1可以将PC1发送给PC2的数据从direct隧道切换到Spoke1至Spoke3至Spoke2的隧道上进行转发,由于减小了转发路径的跳数,从而可以降低转发延迟。
本发明实施例中,Spoke在收到邻居Spoke向Spoke返回的CostResponse报文之前,如果Spoke需要向目的Spoke发送数据,则Spoke可以直接通过Spoke和目的Spoke之间的direct隧道转发数据;或者,Spoke还可以通过Spoke至Hub至目的Spoke之间的路径转发数据。
本发明实施例中,Spoke通过Cost值最小的路径向目的Spoke发送数据的方式,具体包括但不限于如下方式:
方式一、Spoke在Cost值最小的路径为Spoke至邻居Spoke至目的Spoke时,通过Spoke与目的Spoke之间的direct隧道地址对数据进行第一层封装,并通过Spoke与邻居Spoke之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给邻居Spoke;进一步的,邻居Spoke在收到第二层封装后的数据时,可以解第二层封装,以得到第一层封装后的数据,并将第一层封装后的数据发送给目的Spoke。
如图7所示,Spoke1通过Spoke1与Spoke2之间的direct隧道地址对数据(PC1发送给PC2的数据)进行第一层封装,但不发送,并通过Spoke1与Spoke3之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给Spoke3;Spoke3在收到第二层封装后的数据时,解掉第二层封装,还原为通过Spoke1与Spoke2之间的direct隧道地址进行封装的第一层封装后的数据,并将第一层封装后的数据发送给Spoke2。
方式二、Spoke在Cost值最小的路径为Spoke至邻居Spoke至目的Spoke时,通过Spoke与邻居Spoke之间的direct隧道地址对数据进行封装,并在封装后的数据的指定字段中携带目的Spoke的公网地址,并将封装后的数据发送给邻居Spoke;由邻居Spoke在收到封装后的数据时,如果发现指定字段中携带的公网地址不是本设备的公网地址,则将封装后的数据的目的地址修改为指定字段中携带的公网地址,并将修改后的数据发送给目的Spoke。
如图7所示,Spoke1通过Spoke1与Spoke3之间的direct隧道地址对数据(PC1发送给PC2的数据)进行封装,在封装后的数据的指定字段(如私有协议报文头)中携带Spoke2的公网地址,并将封装后的数据发送给Spoke3;Spoke3在收到封装后的数据时,如果发现私有协议报文头中携带的公网地址不是本设备的公网地址,则保留数据的源地址,将封装后的数据的目的地址修改为私有协议报文头中携带的公网地址,并将修改后的数据发送给Spoke2。
基于与上述方法同样的发明构思,本发明实施例还提出了一种基于动态虚拟专用网络DVPN的数据传输设备,作为Spoke应用于包括多个Spoke的网络中,如图8所示,所述设备(即Spoke)包括:
维护模块11,用于维护邻居开销Cost表,所述邻居Cost表中记录了本设备与邻居Spoke之间的Cost值;
报文发送模块12,用于向邻居Spoke发送开销请求CostRequest报文,所述CostRequest报文中携带了目的Spoke的信息;由所述邻居Spoke在收到所述CostRequest报文之后,利用所述目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与所述目的Spoke之间的Cost值;
接收模块13,用于接收邻居Spoke返回的开销响应CostResponse报文,所述CostResponse报文中携带了邻居Spoke与目的Spoke之间的Cost值;
比较模块14,用于比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值;
数据发送模块15,用于在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据。
所述网络中还包括有服务器;所述维护模块11,进一步用于在向所述服务器发起注册的过程中,接收来自所述服务器的注册应答报文,且所述注册应答报文中携带了生存时间TTL值N;向本设备的邻居Spoke发送保活Keepalive报文,所述Keepalive报文中携带了所述TTL值N;在收到来自邻居Spoke的Keepalive报文后,获得Keepalive报文中携带的TTL值M,并确定本设备与邻居Spoke之间的Cost值为(N-M);在本地维护的邻居Cost表中记录所述邻居Spoke的信息与所述Cost值(N-M)之间的对应关系。
所述目的Spoke的信息包括所述目的Spoke的公网地址;所述报文发送模块12,具体用于在需要向目的Spoke发送数据时,向邻居Spoke发送携带所述目的Spoke的公网地址的CostRequest报文。
所述数据发送模块15,进一步用于在Cost值最小的路径为本设备至邻居Spoke至目的Spoke时,通过本设备与目的Spoke之间的direct隧道地址对所述数据进行第一层封装,并通过本设备与邻居Spoke之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给所述邻居Spoke;由所述邻居Spoke在收到第二层封装后的数据时,解第二层封装得到第一层封装后的数据,并将第一层封装后的数据发送给所述目的Spoke。
所述数据发送模块15,进一步用于在Cost值最小的路径为本设备至邻居Spoke至目的Spoke时,通过本设备与邻居Spoke之间的direct隧道地址对所述数据进行封装,并在封装后的数据的指定字段中携带所述目的Spoke的公网地址,并将封装后的数据发送给所述邻居Spoke;由所述邻居Spoke在收到封装后的数据时,如果发现指定字段中携带的公网地址不是本设备的公网地址,则将封装后的数据的目的地址修改为所述指定字段中携带的公网地址,并将修改后的数据发送给所述目的Spoke。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (8)

1.一种基于动态虚拟专用网络DVPN的数据传输方法,应用于包括多个接入层设备Spoke的网络中,其特征在于,各Spoke上维护有邻居开销Cost表,所述邻居Cost表中记录了本设备与邻居Spoke之间的Cost值,该方法包括以下步骤:
Spoke向邻居Spoke发送开销请求CostRequest报文,所述CostRequest报文中携带了目的Spoke的信息;由所述邻居Spoke在收到所述CostRequest报文之后,利用所述目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与所述目的Spoke之间的Cost值;
所述Spoke接收邻居Spoke返回的开销响应CostResponse报文,所述CostResponse报文中携带了所述邻居Spoke与所述目的Spoke之间的Cost值;
所述Spoke比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值,并在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据;
其中,所述网络中还包括有服务器,各Spoke维护邻居Cost表的过程,进一步包括:
各Spoke在向所述服务器发起注册的过程中,接收来自所述服务器的注册应答报文,所述注册应答报文中携带了生存时间TTL值N;
各Spoke均向本设备的邻居Spoke发送保活Keepalive报文,所述Keepalive报文中携带了所述TTL值N;
各Spoke在收到来自邻居Spoke的Keepalive报文后,获得Keepalive报文中携带的TTL值M,并确定本设备与邻居Spoke之间的Cost值为N-M;
各Spoke在本地维护的邻居Cost表中记录所述邻居Spoke的信息与所述Cost值N-M之间的对应关系。
2.如权利要求1所述的方法,其特征在于,所述目的Spoke的信息包括目的Spoke的公网地址;所述Spoke向邻居Spoke发送开销请求CostRequest报文的过程,进一步包括:
所述Spoke在需要向目的Spoke发送数据时,向邻居Spoke发送携带所述目的Spoke的公网地址的CostRequest报文。
3.如权利要求1所述的方法,其特征在于,所述Spoke通过Cost值最小的路径向所述目的Spoke发送数据,具体包括:
所述Spoke在Cost值最小的路径为所述Spoke至邻居Spoke至目的Spoke时,通过所述Spoke与目的Spoke之间的direct隧道地址对所述数据进行第一层封装,并通过所述Spoke与邻居Spoke之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给所述邻居Spoke;
由所述邻居Spoke在收到第二层封装后的数据时,解第二层封装得到第一层封装后的数据,并将第一层封装后的数据发送给所述目的Spoke。
4.如权利要求1所述的方法,其特征在于,所述Spoke通过Cost值最小的路径向所述目的Spoke发送数据,具体包括:
所述Spoke在Cost值最小的路径为所述Spoke至邻居Spoke至目的Spoke时,通过所述Spoke与邻居Spoke之间的direct隧道地址对所述数据进行封装,并在封装后的数据的指定字段中携带所述目的Spoke的公网地址,并将封装后的数据发送给所述邻居Spoke;
由所述邻居Spoke在收到封装后的数据时,如果发现指定字段中携带的公网地址不是本设备的公网地址,则将封装后的数据的目的地址修改为所述指定字段中携带的公网地址,并将修改后的数据发送给所述目的Spoke。
5.一种基于动态虚拟专用网络DVPN的数据传输设备,作为Spoke应用于包括多个接入层设备Spoke的网络中,其特征在于,所述设备包括:
维护模块,用于维护邻居开销Cost表,所述邻居Cost表中记录了本设备与邻居Spoke之间的Cost值;
报文发送模块,用于向邻居Spoke发送开销请求CostRequest报文,所述CostRequest报文中携带了目的Spoke的信息;由所述邻居Spoke在收到所述CostRequest报文之后,利用所述目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与所述目的Spoke之间的Cost值;
接收模块,用于接收邻居Spoke返回的开销响应CostResponse报文,所述CostResponse报文中携带了所述邻居Spoke与目的Spoke之间的Cost值;
比较模块,用于比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值;
数据发送模块,用于在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据;
其中,所述网络中还包括有服务器;
所述维护模块,进一步用于在向所述服务器发起注册的过程中,接收来自所述服务器的注册应答报文,且所述注册应答报文中携带了生存时间TTL值N;向本设备的邻居Spoke发送保活Keepalive报文,所述Keepalive报文中携带了所述TTL值N;在收到来自邻居Spoke的Keepalive报文后,获得Keepalive报文中携带的TTL值M,并确定本设备与邻居Spoke之间的Cost值为N-M;在本地维护的邻居Cost表中记录所述邻居Spoke的信息与所述Cost值N-M之间的对应关系。
6.如权利要求5所述的设备,其特征在于,所述目的Spoke的信息包括所述目的Spoke的公网地址;
所述报文发送模块,具体用于在需要向目的Spoke发送数据时,向邻居Spoke发送携带所述目的Spoke的公网地址的CostRequest报文。
7.如权利要求5所述的设备,其特征在于,
所述数据发送模块,进一步用于在Cost值最小的路径为本设备至邻居Spoke至目的Spoke时,通过本设备与目的Spoke之间的direct隧道地址对所述数据进行第一层封装,并通过本设备与邻居Spoke之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给所述邻居Spoke;由所述邻居Spoke在收到第二层封装后的数据时,解第二层封装得到第一层封装后的数据,并将第一层封装后的数据发送给所述目的Spoke。
8.如权利要求5所述的设备,其特征在于,
所述数据发送模块,进一步用于在Cost值最小的路径为本设备至邻居Spoke至目的Spoke时,通过本设备与邻居Spoke之间的direct隧道地址对所述数据进行封装,并在封装后的数据的指定字段中携带所述目的Spoke的公网地址,并将封装后的数据发送给所述邻居Spoke;由所述邻居Spoke在收到封装后的数据时,如果发现指定字段中携带的公网地址不是本设备的公网地址,则将封装后的数据的目的地址修改为所述指定字段中携带的公网地址,并将修改后的数据发送给所述目的Spoke。
CN201210507271.7A 2012-12-03 2012-12-03 一种基于dvpn的数据传输方法和设备 Active CN103023783B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210507271.7A CN103023783B (zh) 2012-12-03 2012-12-03 一种基于dvpn的数据传输方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210507271.7A CN103023783B (zh) 2012-12-03 2012-12-03 一种基于dvpn的数据传输方法和设备

Publications (2)

Publication Number Publication Date
CN103023783A CN103023783A (zh) 2013-04-03
CN103023783B true CN103023783B (zh) 2016-06-29

Family

ID=47971928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210507271.7A Active CN103023783B (zh) 2012-12-03 2012-12-03 一种基于dvpn的数据传输方法和设备

Country Status (1)

Country Link
CN (1) CN103023783B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099926B (zh) * 2015-06-30 2019-03-15 新华三技术有限公司 一种路由开销确定方法及设备
CN108259292B (zh) * 2016-12-29 2020-12-15 华为技术有限公司 建立隧道的方法及装置
CN110995600B (zh) * 2019-12-10 2021-12-17 迈普通信技术股份有限公司 数据传输方法、装置、电子设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1736064A (zh) * 2002-12-17 2006-02-15 思科技术公司 通告数据通信网络中的链路代价的方法和装置
CN102594678A (zh) * 2012-02-15 2012-07-18 杭州华三通信技术有限公司 一种dvpn大规模组网的方法和客户端

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7602737B2 (en) * 2006-03-01 2009-10-13 Cisco Technology, Inc. Methods and apparatus for providing an enhanced dynamic multipoint virtual private network architecture
US8239569B2 (en) * 2006-05-01 2012-08-07 Cisco Technology, Inc. OSPF optimization for hub and spoke environment
US8400945B2 (en) * 2008-09-10 2013-03-19 Cisco Technology, Inc. Transit prevention in hub-and-spoke topologies using link state protocols

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1736064A (zh) * 2002-12-17 2006-02-15 思科技术公司 通告数据通信网络中的链路代价的方法和装置
CN102594678A (zh) * 2012-02-15 2012-07-18 杭州华三通信技术有限公司 一种dvpn大规模组网的方法和客户端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于DMVPN技术的广域网设计和实现";梁玉柱;《信息系统工程》;20120220(第2期);正文第119页第3.1节、第120页第3.3节 *

Also Published As

Publication number Publication date
CN103023783A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
EP1774750B1 (en) Method, apparatuses and computer readable medium for establishing secure end-to-end connections by binding IPSec Security Associations
CN103036809B (zh) 用于具有有效链路利用的可伸缩网络的方法和装置
US8272046B2 (en) Network mobility over a multi-path virtual private network
US7917948B2 (en) Method and apparatus for dynamically securing voice and other delay-sensitive network traffic
US20160036773A1 (en) Internet protocol address resolution
JP4971312B2 (ja) Sctp基盤のハンドオーバ機能を具備した端末装置及びハンドオーバ方法
JP2018515974A (ja) グローバル仮想ネットワーク(gvn)において仮想インタフェースとアドバンストスマートルーティングとを提供するためのシステム及び方法
CN103905284B (zh) 一种基于evi网络的流量负载分担方法和设备
CN103166858A (zh) 一种报文传输方法和设备
CN103957161B (zh) 一种报文转发方法及其装置
CN103209108A (zh) 一种基于dvpn的路由生成方法和设备
CN108512755B (zh) 一种路由信息的学习方法及装置
CN103139075A (zh) 一种报文传输方法和设备
CN103023783B (zh) 一种基于dvpn的数据传输方法和设备
CN102355402B (zh) 一种基于vpn路由建立lsp的方法、系统和路由器
CN101741740B (zh) 一种负载平衡的方法、系统和设备
WO2022142905A1 (zh) 报文转发的方法、装置和网络系统
CN113472913B (zh) 通信方法及装置
CN103391251B (zh) 一种pbb网络中减少冗余流量的方法和设备
CN104852848B (zh) 一种数据传输的方法和设备
KR20040111612A (ko) 하드웨어 방화벽을 이용하여 호스트와 네트워크 데이터를안전하게 공유하는 라우팅 장치를 위한 시스템 및 방법
JP4773239B2 (ja) 高速データベース移行
CN106817727B (zh) 一种多个可搬移无线宽带系统的传输组网方法
CN104683238A (zh) 一种lisp网络中的数据报文的传输方法和设备
CN102045198B (zh) 固网多协议标签交换虚拟专用网络备份传输方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230625

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right