一种数据报文传输方法和装置与流程

文档序号:16198990发布日期:2018-12-08 06:25阅读:213来源:国知局
一种数据报文传输方法和装置与流程

本申请涉及通信技术领域,尤其涉及一种数据报文传输方法和装置。

背景技术

evpn(ethernetvirtualprivatenetwork,以太网虚拟专用网)是一种二层vpn(virtualprivatenetwork,虚拟专用网)技术,控制平面可以采用mp-bgp(multiprotocolbordergatewayprotocol,多协议边界网关协议)通告evpn路由信息,而数据平面则可以采用vxlan(virtualextensiblelocalareanetwork,可扩展虚拟局域网络)封装数据报文。在evpn网络中,当租户的物理站点分散在不同的位置时,则可以基于已有的服务提供商网络或者企业ip网络,为同一租户的相同网段提供二层互联,并为同一租户的不同网段提供三层互联。

在evpn网络中,当接入设备支持多个vpn时,不同vpn不允许存在重叠网段,一旦存在重叠网段,且重叠网段对应的vpn互通,就会导致数据报文无法正常传输。例如,若接入设备支持vpn1和vpn2,vpn1和vpn2互通,vpn1存在网段10和网段11,vpn2存在网段11和网段12,由于vpn1的网段11与vpn2的网段11相同,因此,若vpn1的网段10下的主机1访问vpn2的网段11下的主机2时,如果vpn1的路由表中不存在主机2的主机路由,则无法将数据报文传输给主机2,从而导致数据报文无法正常传输。

目前,随着网络规模的不断扩大,需要配置的网段越来越多,用户配置容易出现错误,导致不同vpn存在重叠网段,继而导致数据报文无法正常传输。



技术实现要素:

本申请提供一种数据报文传输方法,应用于接入设备,包括:

接收第一虚拟专用网vpn内的第一主机发往第二主机的第一数据报文;

若确定出所述第一数据报文的目的ip地址命中第一vpn的网段路由,则向控制器发送第一地址解析协议arp请求;以使所述控制器确定所述第二主机对应的ip网段是否为属于所述第一vpn且属于第二vpn的重叠网段,若确定结果为是,则下发第二数据报文和所述第二vpn对应的网络标识;其中,所述第二数据报文的目的ip地址为所述第二主机的ip地址;

接收所述控制器下发的第二数据报文和第二vpn对应的网络标识,并根据所述网络标识确定出所述第二主机对应的第二vpn;

若确定出所述第二数据报文的目的ip地址命中第二vpn的网段路由,则通过所述第二vpn对应的出接口发送第二arp请求。

本申请提供一种数据报文传输方法,应用于控制器,包括:

接收接入设备发送的第一arp请求和第一vpn的vsi接口信息,所述第一arp请求的目的ip地址为第二主机的ip地址;

在确定出第二主机对应的ip网段为属于第一vpn且属于第二vpn的重叠网段时,构造第二数据报文,第二数据报文的目的ip地址为第二主机的ip地址;

向所述接入设备下发第二数据报文和所述第二vpn对应的网络标识,以使所述接入设备在确定出第二数据报文的目的ip地址命中第二vpn的网段路由时,通过所述网络标识对应的第二vpn对应的出接口发送第二arp请求。

本申请提供一种数据报文传输装置,应用于接入设备,包括:

接收模块,用于接收第一虚拟专用网vpn内的第一主机发往第二主机的第一数据报文;

确定模块,用于确定出所述第一数据报文的目的ip地址命中第一vpn的网段路由;

发送模块,用于向控制器发送第一地址解析协议arp请求;以使所述控制器确定所述第二主机对应的ip网段是否为属于所述第一vpn且属于第二vpn的重叠网段,若确定结果为是,则下发第二数据报文和所述第二vpn对应的网络标识;所述第二数据报文的目的ip地址为所述第二主机的ip地址;

所述接收模块,还用于接收所述控制器下发的第二数据报文和第二vpn对应的网络标识;

所述确定模块,还用于根据所述网络标识确定出所述第二主机对应的第二vpn,并确定出所述第二数据报文的目的ip地址命中第二vpn的网段路由;

所述发送模块,还用于通过第二vpn对应的出接口发送第二arp请求。

本申请提供一种数据报文传输装置,应用于控制器,包括:

接收模块,用于接收接入设备发送的第一arp请求和第一vpn的vsi接口信息,所述第一arp请求的目的ip地址为第二主机的ip地址;

处理模块,用于在确定出第二主机对应的ip网段为属于第一vpn且属于第二vpn的重叠网段时,则构造第二数据报文,其中,所述第二数据报文的目的ip地址为第二主机的ip地址;

发送模块,用于向接入设备下发第二数据报文和所述第二vpn对应的网络标识,以使接入设备在确定出第二数据报文的目的ip地址命中第二vpn的网段路由时,通过所述网络标识对应的第二vpn对应的出接口发送第二arp请求。

基于上述技术方案,本申请实施例中,当接入设备支持多个vpn,不同vpn存在重叠网段时,接入设备在接收到数据报文后,可以在不同的vpn分别发送arp(addressresolutionprotocol,地址解析协议)请求报文,这样,无论数据报文的目的ip地址的主机属于哪个vpn,该vpn的主机均会返回响应报文,这样,接入设备可以根据该响应报文生成主机路由,并通过该主机路由发送数据报文,使得数据报文能够正常传输。在上述方式中,使得网络规划变得简单,在规模较大的网络中,即使用户配置出现错误,导致不同vpn存在重叠网段,也可以保证数据报文的正常传输,避免重叠网段问题导致的传输异常。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1是本申请一种实施方式中的应用场景示意图;

图2是本申请一种实施方式中的数据报文传输方法的流程图;

图3是本申请另一种实施方式中的数据报文传输方法的流程图;

图4是本申请一种实施方式中的数据报文传输装置的结构图;

图5是本申请一种实施方式中的接入设备的硬件结构图;

图6是本申请另一种实施方式中的数据报文传输装置的结构图;

图7是本申请一种实施方式中的控制器的硬件结构图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例提出一种数据报文传输方法,可以应用于evpn网络。参见图1所示,为本实施例的应用场景示意图,主机可以为pc(personalcomputer,个人计算机)、vm(virtualmachine,虚拟机)和移动终端,接入设备可以为evpn网络的边缘设备,如vtep(vxlantunnelendpoint,vxlan隧道端点),控制器可以为sdn(softwaredefinednetwork,软件定义网络)控制器。

在本实施例中,接入设备121配置有vpn1和vpn2,且接入设备122配置有vpn1和vpn2,当然,接入设备121和接入设备122配置的vpn数量可以更多,后续以两个vpn为例进行说明。其中,通过在接入设备121和接入设备122上分别配置vrouter1,从而通过vrouter1实现对发往vpn1对应的主机的数据报文的转发,通过在接入设备121和接入设备122上分别配置vrouter2,从而通过vrouter2实现对发往vpn2对应的主机的数据报文的转发。

本实施例中,可以配置vpn1和vpn2互通,在配置vpn1和vpn2互通后,接入设备121可以将vpn1的路由表中的路由表项(路由表中的每个表项称为路由表项)插入到vpn2的路由表,将vpn2的路由表中的路由表项插入到vpn1的路由表,接入设备122可以将vpn1的路由表中的路由表项插入到vpn2的路由表,将vpn2的路由表中的路由表项插入到vpn1的路由表。

例如,主机111属于vpn1,在主机111未上线时,vpn1的路由表没有主机111的路由表项,在主机111上线后,接入设备121可以将主机111的路由表项学习到vpn1的路由表中。进一步的,若vpn1和vpn2不互通,则接入设备121不会将主机111的路由表项插入到vpn2的路由表中;若vpn1和vpn2互通,则接入设备121可以将主机111的路由表项插入到vpn2的路由表中。

在本实施例中,用户或者云平台141可以将接入设备121的配置信息a发送给控制器131,由控制器131将接入设备121的配置信息a发送给接入设备121,该配置信息a可以包括:vpn1的配置信息a1和vpn2的配置信息a2。

在vpn1的配置信息a1中,可以包括但不限于:vpn实例名称,如vrfa;vsiif(virtualswitchinstanceinterface,虚拟交换实例接口)信息,后续称为vsi接口信息,如vsiif1;网段信息,如网段10和网段11;mac地址信息,如mac地址11。此外,在vpn2的配置信息a2中,可以包括但不限于:vpn实例名称,如vrfb;vsi接口信息,如vsiif2;网段信息,如网段11和网段12;mac地址信息,如mac地址11,其与配置信息a1中的mac地址相同。

综上可以看出,vpn1对应网段10和网段11,vpn2对应网段11和网段12,也就是说,vpn1和vpn2存在重叠网段,即该重叠网段是网段11。

此外,用户或者云平台141还可以将接入设备122的配置信息b发送给控制器131,由控制器131将接入设备122的配置信息b发送给接入设备122,配置信息b的内容与配置信息a的内容类似,对配置信息b的内容不再赘述。

在一个例子中,若控制器131根据vpn信息确定不同vpn内的主机存在重叠网段,则可以向重叠网段的主机对应的接入设备发送控制流表;其中,所述控制流表的匹配选项可以包括所述重叠网段对应的vpn的vsi接口信息、且报文类型为arp类型,所述控制流表的动作选项可以为上送控制器131。

例如,控制器131获取到接入设备121的配置信息a后,若根据配置信息a确定接入设备121存在vpn1和vpn2,且vpn1与vpn2存在重叠网段,则可以生成控制流表1和控制流表2,向接入设备121发送控制流表1和控制流表2。若根据配置信息a确定接入设备121只存在一个vpn,或虽然存在vpn1和vpn2,但vpn1与vpn2不存在重叠网段,则不需要生成控制流表。

显然,控制器131根据配置信息a确定接入设备121存在vpn1和vpn2,且vpn1与vpn2存在重叠网段11,因此,生成控制流表1和控制流表2。

其中,控制流表1的匹配选项可以为:vpn1的vsi接口信息(如vsiif1)、报文类型为arp类型,控制流表1的动作选项为:上送控制器131。

控制流表2的匹配选项可以为:vpn2的vsi接口信息(如vsiif2)、报文类型为arp类型,控制流表2的动作选项为:上送控制器131。

控制器131获取到接入设备122的配置信息b后,若根据配置信息b确定接入设备122存在vpn1和vpn2,且vpn1与vpn2存在重叠网段,则可以生成控制流表3和控制流表4,向接入设备122发送控制流表3和控制流表4,控制流表3和控制流表4的内容参见控制流表1和控制流表2,在此不再赘述。

在上述应用场景下,以主机111访问主机113为例,参见如下流程所示:

步骤201,主机111发送arp请求,该arp请求的源ip地址为主机111的ip地址111,目的ip地址为主机113的ip地址113。

步骤202,接入设备121接收到arp请求后,向主机111发送arp响应报文,该arp响应报文的源ip地址为主机113的ip地址113,源mac地址为接入设备121的mac地址,目的ip地址为主机111的ip地址111。

其中,接入设备121可以使能arp代理功能,这样,接入设备121接收到arp请求后,不再广播该arp请求,而是直接向主机111发送arp响应报文,该arp响应报文的源mac地址为接入设备121的mac地址。

步骤203,主机111发送数据报文1,该数据报文1的源ip地址为ip地址111,目的ip地址为ip地址113,目的mac地址为接入设备121的mac地址。

在一个例子中,接入设备121接收到数据报文1后,可以先确定vpn;若该vpn的路由表中存在与ip地址113对应的主机路由,则可以直接通过该主机路由发送数据报文1;若该vpn的路由表中不存在与ip地址113对应的主机路由,但是存在与ip地址113对应的网段路由,则可以生成arp请求,并在该vpn内发送该arp请求,以下对这些过程进行详细说明。

步骤204,接入设备121接收到数据报文1后,确定主机111对应的vpn。

其中,接入设备121在接收到数据报文1后,由于数据报文1的目的mac地址为本设备的mac地址,因此,接入设备121需要对数据报文1进行三层转发,而在对数据报文1进行三层转发时,可以先确定主机111对应的vpn。

其中,数据报文1可以携带vlan标识,接入设备121可以查询与该vlan标识对应的vxlan标识,并查询与该vxlan标识对应vsi。然后,接入设备121可以查询与该vsi对应的vsi接口信息。基于上述配置信息a,若查询到的vsi接口信息是vsiif1,则确定主机111对应vpn1。假设主机111属于vpn1,则基于上述过程,可以根据数据报文1确定主机111对应vpn1。

其中,用户或者云平台141还可以通过控制器131在接入设备121进行如下配置:配置vlan标识与vxlan标识的对应关系、配置vxlan标识与vsi的对应关系、配置vsi与vsi接口信息的对应关系,对于这些配置不再赘述。

进一步的,基于vlan标识与vxlan标识的对应关系,接入设备121从数据报文1中解析出vlan标识后,就可以通过该对应关系,查询到与该vlan标识对应的vxlan标识。然后,基于vxlan标识与vsi的对应关系,接入设备121在查询到vxlan标识后,就可以通过该对应关系,查询到与该vxlan标识对应vsi。然后,基于vsi与vsi接口信息的对应关系,接入设备121在查询到vsi后,就可以通过该对应关系,查询到与该vsi对应的vsi接口信息。

步骤205,接入设备121在vpn1的路由表中查询ip地址113命中的路由。

其中,接入设备121确定主机111对应vpn1后,可以通过ip地址113(即数据报文1的目的ip地址)查询vpn1的路由表。

若ip地址113命中该路由表的主机路由(即32位ip地址的路由),则表示接入设备121此前已经学习到主机113的ip地址,并在vpn1的路由表中记录了路由表项,因此,接入设备121可以直接通过该主机路由发送数据报文1。

若ip地址113命中该路由表的网段路由(即非32位ip地址的路由,如24位ip地址的路由、16位ip地址的路由等),则表示接入设备121此前还没有学习到主机113的ip地址,vpn1的路由表中也没有记录主机113对应的主机路由,因此,接入设备121执行步骤206和后续步骤,并通过这些步骤学习主机113的ip地址,以在vpn1的路由表中生成主机113对应的主机路由。

步骤206,接入设备121生成arp请求,并在vpn1内发送arp请求,其中,该arp请求的目的ip地址为主机113的ip地址113。

其中,由于ip地址113命中vpn1的路由表中的网段路由,而不是命中vpn2的路由表中的网段路由,因此,接入设备121在vpn1内发送arp请求。

其中,接入设备121可以利用配置信息a确定vpn1的vsi接口信息,如vsiif1,然后,基于vsi与vsi接口信息的对应关系,接入设备121可以确定与vsiif1对应的vsi,如vsi1,该vsi1可以对应一个或者多个出接口(如ac(attachmentcircuit,接入电路)和/或隧道等)。然后,可以通过该vsi1对应的出接口发送arp请求,从而在vpn1内广播该arp请求。

参见图1所示,假设主机113属于vpn2,主机112和主机114属于vpn1,vsi1对应的出接口为ac1212和隧道a,则接入设备121通过ac1212将arp请求发送给主机112,并通过隧道a将arp请求发送给接入设备122,接入设备122通过隧道a接收到arp请求后,确定与隧道a对应的vsi,若该vsi对应ac1222,则接入设备122通过ac1222将arp请求发送给主机114,经过上述处理,将arp请求发送给vpn1的主机112和主机114。

主机112在接收到arp请求后,由于arp请求的目的ip地址是ip地址113,不是本主机112的ip地址,因此主机112不会返回arp响应报文。主机114在接收到arp请求后,由于arp请求的目的ip地址是ip地址113,不是本主机114的ip地址,因此主机114不会返回arp响应报文。

显然,经过上述处理,接入设备121无法学习到主机113的ip地址,为了学习到主机113的ip地址,在生成arp请求后,还可以执行如下步骤:

步骤207,接入设备121将该arp请求发送给控制器131。

参见上述实施例,接入设备121已经存储控制流表1和控制流表2,控制流表1的匹配选项为:vsiif1、报文类型为arp类型,动作选项为:上送控制器131。显然,接入设备121在生成arp请求后,该arp请求对应vpn1,且vpn1的vsi接口信息是vsiif1,并且arp请求的报文类型为arp类型,也就是说,命中控制流表1,可以将arp请求发送给控制器131。

在将arp请求发送给控制器131时,接入设备121可以将arp请求封装到控制消息(如packet_in消息),并将该控制消息发送给控制器131。

其中,该控制消息还可以包括但不限于vpn1的vsi接口信息(如vsiif1),此外,该arp请求的目的ip地址可以为主机113的ip地址113。

步骤208,控制器131接收到控制消息后,从该控制消息中解析出arp请求和vsiif1,该arp请求的目的ip地址为主机113的ip地址113。

步骤209,控制器131根据该控制消息中的vsiif1确定促使接入设备121上送arp请求的源主机对应的vpn。显然,由于在vpn1的配置信息包括vsiif1,因此,控制器131可以确定源主机对应的vpn是vpn1。

步骤210,控制器131从vpn1的所有网段中确定ip地址113对应的网段。

其中,由于vpn1对应网段10和网段11,因此,可以从网段10和网段11中确定ip地址113对应的网段,假设ip地址113对应网段11。

步骤211,控制器131从接入设备121支持的其它vpn(vpn1之外的其它vpn)中查询具有网段11的vpn。如果没有查询到具有网段11的vpn,则结束流程,如果查询到具有网段11的vpn,如vpn2,则执行步骤212。

步骤212,控制器131构造vpn2对应的数据报文2。

其中,该数据报文2的源ip地址可以为vpn2的网关地址,目的ip地址可以为主机113的ip地址113,源mac地址可以为vpn2的网关的全局mac地址,目的mac地址可以为接入设备121的mac地址或者全0的mac地址。

控制器131还可以为数据报文2封装隧道头,即在数据报文2外面添加隧道头,隧道头的源ip地址可以为控制器131的ip地址,源mac地址可以为任意mac地址,如控制器131的mac地址,目的ip地址可以为接入设备121的ip地址,目的mac地址为任意mac地址,如接入设备121的mac地址。

步骤213,控制器131确定vpn2对应的网络标识(如vxlan标识),并将数据报文2和该vxlan标识封装到控制消息(如packet_out消息)中。

步骤214,控制器131将该控制消息发送给接入设备121。

在实际应用中,控制器131还可以将该控制消息发送给接入设备122,而接入设备122接收到控制消息的处理流程,与接入设备121接收到控制消息的处理流程类似,后续不再赘述,以接入设备121接收到控制消息的处理流程为例。

步骤215,接入设备121在接收到控制消息后,从该控制消息中解析出数据报文2和vxlan标识,并根据该vxlan标识确定主机113对应的vpn。

其中,接入设备121得到数据报文2后,由于数据报文2的目的mac地址为本设备的mac地址或全0的mac地址,因此,接入设备121可以对数据报文2进行三层转发,在对数据报文2进行三层转发时,先确定主机113的vpn。

在一个例子中,控制器131将数据报文2和该vxlan标识封装到控制消息时,还可以在控制消息中指定出接口为normal(正常)口。这样,接入设备121得到数据报文2后,若发现控制消息中指定出接口为normal口,才会解析数据报文2的目的mac地址,在发现目的mac地址为本设备的mac地址或全0的mac地址时,对数据报文2进行三层转发。此外,若发现控制消息中指定出接口为ac或者隧道,则直接通过该ac或者隧道转发数据报文2。

在一个例子中,由于控制消息携带有vxlan标识,因此,接入设备121可以查询与该vxlan标识对应的vsi,并查询与该vsi对应的vsi接口信息。本实施例中,由于控制消息携带的vxlan标识是vpn2对应的vxlan标识,因此查询到的vsi接口信息是vsiif2,基于上述配置信息a可知,vsiif2对应vpn2,也就是说,接入设备121可以确定主机113对应vpn2。

步骤216,接入设备121在vpn2的路由表中查询ip地址113命中的路由。

其中,接入设备121确定主机113对应vpn2后,可以通过ip地址113(即数据报文2的目的ip地址)查询vpn2的路由表。

若ip地址113命中该路由表的主机路由(即32位ip地址的路由),则表示接入设备121此前已经学习到主机113的ip地址,并在vpn2的路由表中记录了路由表项,因此,接入设备121可以直接通过该主机路由发送数据报文2。

若ip地址113命中该路由表的网段路由(即非32位ip地址的路由,如24位ip地址的路由、16位ip地址的路由等),则表示接入设备121此前还没有学习到主机113的ip地址,vpn2的路由表中也没有记录主机113对应的主机路由,因此,接入设备121执行步骤217和后续步骤,并通过这些步骤学习主机113的ip地址,以在vpn2的路由表中生成主机113对应的主机路由。

步骤217,接入设备121生成arp请求,并在vpn2内发送该arp请求,其中,该arp请求的目的ip地址为主机113的ip地址113。

其中,由于ip地址113命中vpn2的路由表中的网段路由,而不是命中vpn1的路由表中的网段路由,因此,接入设备121在vpn2内发送arp请求。

其中,接入设备121可以利用配置信息a确定vpn2的vsi接口信息,如vsiif2,然后,基于vsi与vsi接口信息的对应关系,可以确定与vsiif2对应的vsi,如vsi2,该vsi2对应一个或多个出接口(如ac和/或隧道)。通过vsi2对应的出接口发送arp请求,从而在vpn2内广播该arp请求。

参见图1所示,假设主机113属于vpn2,主机112和主机114属于vpn1,vsi2对应的出接口为隧道b,则接入设备121通过隧道b将arp请求发送给接入设备122,接入设备122通过隧道b接收到arp请求后,确定与隧道b对应的vsi,若该vsi对应ac1221,则通过ac1221将arp请求发送给主机113,经过上述处理,将arp请求发送给vpn2的主机113。

主机113在接收到arp请求后,由于arp请求的目的ip地址是ip地址113,即本主机113的ip地址,因此主机113会返回arp响应报文。

步骤218,接入设备121在接收到主机113返回的arp响应报文后,根据该arp响应报文在vpn2的路由表中添加主机路由,即目的ip地址为ip地址113的主机路由,并将该主机路由添加到vpn1的路由表中。

在一个例子中,在主机113返回arp响应报文时,接入设备122可以通过ac1221接收到该arp响应报文,并通过隧道b将arp响应报文发送给接入设备121,接入设备121通过隧道b接收到arp响应报文后,可以在vpn2的路由表中添加主机路由,该主机路由的目的ip地址为ip地址113,出接口对应隧道b,对此主机路由的添加过程不做限制。进一步的,参见上述实施例,由于在接入设备121配置vpn1和vpn2互通,因此,在vpn2的路由表中生成主机路由后,还可以将该主机路由插入到vpn1的路由表中,即在vpn1的路由表中添加主机路由,该主机路由的目的ip地址为ip地址113,出接口对应隧道b。

步骤219,接入设备121通过vpn1的路由表中的主机路由将数据报文1发送给主机113。具体的,接入设备121可以通过隧道b将数据报文1发送给接入设备122,由接入设备122通过ac1221将数据报文1发送给主机113。

在一个例子中,主机111再次访问主机113时,接入设备121在接收到数据报文后,在上述步骤205中,接入设备121在vpn1的路由表中查询ip地址113命中的路由,由于ip地址113命中该路由表的主机路由,因此,接入设备121可以直接通过该主机路由发送数据报文,从而完成数据报文的传输。

步骤220,接入设备121将该arp请求发送给控制器131。

参见上述实施例,接入设备121已经存储控制流表1和控制流表2,控制流表2的匹配选项为:vsiif2、报文类型为arp类型,动作选项为:上送控制器131。步骤217中,接入设备121生成arp请求后,该arp请求对应vpn2,且vpn2的vsi接口信息是vsiif2,并且arp请求的报文类型为arp类型,也就是说,命中控制流表2,可以将arp请求发送给控制器131。

在将arp请求发送给控制器131时,接入设备121可以将arp请求封装到控制消息(如packet_in消息),并将该控制消息发送给控制器131。

其中,该控制消息还可以包括但不限于vpn2的vsi接口信息(如vsiif2),此外,该arp请求的目的ip地址可以为主机113的ip地址113。

步骤221,控制器131接收到控制消息后,从该控制消息中解析出arp请求和vsiif2,该arp请求的目的ip地址为主机113的ip地址113。

步骤222,控制器131根据该控制消息中的vsiif2确定促使接入设备121上送arp请求的源主机对应的vpn。显然,由于在vpn2的配置信息包括vsiif2,因此,控制器131可以确定源主机对应的vpn是vpn2。

其中,由于控制器131已经构造vpn2对应的数据报文2(参见步骤212),因此,在确定源主机对应vpn2后,不再构造数据报文,结束流程。

基于上述技术方案,本申请实施例中,当接入设备支持多个vpn,不同vpn存在重叠网段时,接入设备在接收到数据报文后,可以在不同的vpn分别发送arp请求,这样,无论数据报文的目的ip地址的主机属于哪个vpn,该vpn的主机均会返回响应报文,这样,接入设备可以根据该响应报文生成主机路由,并通过该主机路由发送数据报文,使得数据报文能够正常传输。在上述方式中,使得网络规划变得简单,这样,在规模较大的网络中,即使用户配置出现错误,导致不同vpn存在重叠网段,也可以保证数据报文的正常传输。

基于与上述方法同样的申请构思,本申请实施例提出一种数据报文传输方法,可以应用于接入设备,参见图2所示,为该方法的流程示意图,可以包括:

步骤311,接收第一vpn内的第一主机发往第二主机的第一数据报文,该第一数据报文的目的ip地址为第二主机的ip地址,该第一数据报文的源ip地址为第一主机的ip地址,第一主机属于第一vpn,第二主机属于第二vpn,且第一vpn与第二vpn存在重叠网段,且第二主机的ip地址属于重叠网段。

例如,参见上述实施例,第一主机为主机111,第二主机为主机113,第一数据报文为数据报文1,第一主机属于vpn1,第二主机属于vpn2,且第一vpn与第二vpn存在的重叠网段是网段11,第二主机的ip地址属于网段11。

步骤312,若确定出该第一数据报文的目的ip地址命中第一vpn的网段路由,则向控制器发送该第一arp请求。其中,该第一arp请求用于使控制器确定第二主机对应的ip网段是否为属于第一vpn且属于第二vpn的重叠网段,若确定结果为是,则下发第二数据报文和第二vpn对应的网络标识。

其中,在确定出第一数据报文的目的ip地址命中第一vpn的网段路由后,可以生成第一arp请求,通过第一vpn对应的出接口发送第一arp请求。

其中,向控制器发送该第一arp请求,可以包括:若该第一vpn的vsi接口信息命中控制流表,则可以将该第一arp请求和该vsi接口信息上送控制器;其中,该控制流表的匹配选项可以为重叠网段对应的第一vpn的vsi接口信息、且报文类型为arp类型,该控制流表的动作选项可以为上送控制器。

例如,参见上述步骤204,基于该第一数据报文携带的vlan标识,可以查询与该vlan标识对应的vxlan标识,并查询与该vxlan标识对应vsi,并查询与该vsi对应的vsi接口信息。进一步的,假设vsi接口信息是vsiif1,则基于配置信息a,可以确定出第一主机对应的第一vpn是vpn1。

参见上述步骤206,接入设备在生成第一arp请求后,可以利用配置信息a确定第一vpn的vsi接口信息,如vsiif1,然后,基于vsi与vsi接口信息的对应关系,接入设备可以确定与vsiif1对应的vsi,该vsi可以对应一个或者多个出接口(如ac和/或隧道等)。然后,接入设备可以通过该vsi对应的出接口发送第一arp请求,从而在第一vpn内广播该第一arp请求。

参见上述步骤207,由于接入设备已经存储控制流表1和控制流表2,控制流表1的匹配选项为:第一vpn的vsi接口信息(如vsiif1)、报文类型为arp类型,动作选项为:上送控制器。因此,接入设备在生成第一arp请求后,若确定该第一arp请求对应第一vpn,且该第一vpn的vsi接口信息命中控制流表1、并且该第一arp请求的报文类型命中控制流表1,则可以将第一arp请求和第一vpn的vsi接口信息(如vsiif1)发送给控制器。

步骤313,接收控制器下发的第二数据报文和第二vpn对应的网络标识,并根据该网络标识确定出第二主机对应的第二vpn。其中,该第二数据报文的目的ip地址可以为第二主机的ip地址,该网络标识可以为vxlan标识。

在一个例子中,根据该网络标识确定出第二主机对应的第二vpn,可以包括:接入设备根据该网络标识(如vxlan标识)确定第二vpn的vsi接口信息,并根据第二vpn的vsi接口信息确定第二主机对应的第二vpn。

步骤314,若确定出该第二数据报文的目的ip地址命中第二vpn的网段路由,则通过该第二vpn对应的出接口发送第二arp请求。

在一个例子中,通过该第二vpn对应的出接口发送第二arp请求,可以包括:接入设备确定该第二vpn的vsi接口信息,并确定与该第二vpn的vsi接口信息对应的出接口,其中,该出接口可以为ac和/或隧道;然后,接入设备可以通过与该vsi接口信息对应的出接口发送第二arp请求。

例如,参见上述步骤215,接入设备可以接收控制器发送的第二数据报文(如数据报文2)和第二vpn对应的网络标识(如vxlan标识),可以查询与该网络标识对应的vsi,查询与该vsi对应的vsi接口信息。基于配置信息a,若vsi接口信息是vsiif2,则确定第二主机对应的第二vpn是vpn2。

参见上述步骤216,若第二数据报文的目的ip地址(如ip地址113)命中vpn2的路由表的主机路由(即32位ip地址的路由),则表示该第二数据报文的目的ip地址命中第二vpn的主机路由。若第二数据报文的目的ip地址命中vpn2的路由表的网段路由(即非32位ip地址的路由),则表示该第二数据报文的目的ip地址命中第二vpn的网段路由,可以执行步骤314。

参见上述步骤217,接入设备在生成第二arp请求后,可以利用配置信息a确定第二vpn的vsi接口信息,如vsiif2,然后,基于vsi与vsi接口信息的对应关系,可以确定与vsiif2对应的vsi,该vsi可以对应一个或者多个出接口(如ac和/或隧道等)。然后,接入设备可以通过该vsi对应的出接口发送第二arp请求,从而可以在第二vpn内广播该第二arp请求。

在一个例子中,接入设备通过该第二vpn对应的出接口发送第二arp请求之后,若接收到第二主机针对该第二arp请求返回的响应报文(即arp响应报文),则可以根据该响应报文在第二vpn的路由表中添加第二主机的主机路由,并将第二主机的主机路由添加到第一vpn的路由表中。

具体的,参见上述步骤218,接入设备在接收到第二主机针对该第二arp请求返回的arp响应报文后,可以根据该arp响应报文在vpn的路由表中添加主机路由,即目的ip地址为ip地址113的主机路由,并将该主机路由添加到vpn1的路由表中。然后,接入设备121可以通过vpn1的路由表中的主机路由将数据报文发送给第二主机。

基于与上述方法同样的申请构思,本申请实施例提出一种数据报文传输方法,可以应用于控制器,参见图3所示,为该方法的流程示意图,可以包括:

步骤321,接收接入设备发送的第一arp请求和第一vpn的vsi接口信息,其中,该第一arp请求的目的ip地址可以为第二主机的ip地址。

在一个例子中,若控制器根据vpn信息确定不同vpn内的主机存在重叠网段,则控制器还可以向该重叠网段的主机对应的接入设备发送控制流表;其中,该控制流表的匹配选项可以包括该重叠网段对应的vpn的vsi接口信息、且报文类型为arp类型,该控制流表的动作选项可以为上送控制器。

进一步的,接入设备在生成第一arp请求后,若该第一arp请求命中该控制流表,就可以向控制器发送第一arp请求和重叠网段对应的vpn的vsi接口信息,而控制器可以接收该第一arp请求和该vpn的vsi接口信息。

例如,参见上述步骤207,接入设备在生成arp请求后,由于该arp请求对应第一vpn,且该第一vpn的vsi接口信息是vsiif1,并且该arp请求的报文类型为arp类型,也就是说,该arp请求命中控制流表1,因此,接入设备可以将arp请求和第一vpn的vsi接口信息(如vsiif1)发送给控制器。

步骤322,在确定出该第二主机对应的ip网段为属于第一vpn且属于第二vpn的重叠网段(即第一vpn和第二vpn均存在该ip网段)时,则构造第二数据报文,其中,该第二数据报文的目的ip地址为第二主机的ip地址。

其中,确定出该第二主机对应的ip网段为属于第一vpn且属于第二vpn的重叠网段,可以包括:根据第一vpn的vsi接口信息确定促使接入设备上送第一arp请求的源主机对应的第一vpn;从该第一vpn的所有网段中确定出第二主机对应的ip网段;然后,查询具有第二主机对应的ip网段的第二vpn,这样,就可以确定出该第二主机对应的ip网段为属于该第一vpn且属于该第二vpn的重叠网段。当然,上述方式只是一个示例,对于第一vpn和第二vpn的确定顺序,在本实施例中不做限制。例如,还可以先根据第二数据报文的目的ip地址确定第二主机对应的ip网段,并查询具有该ip网段的第二vpn,然后,还可以根据第一vpn的vsi接口信息确定源主机对应的第一vpn。

例如,参见上述步骤209-步骤211,控制器可以根据第一vpn的vsi接口信息(如vsiif1),确定促使接入设备上送arp请求的源主机对应的第一vpn是vpn1。然后,从vpn1的所有网段(如网段10和网段11)中确定出第二主机对应的ip网段,即arp请求的目的ip地址所属的ip网段,如网段11。

然后,控制器从接入设备支持的其它vpn中查询具有网段11的vpn,如vpn2,即vpn2是第二vpn,ip网段为属于vpn1且属于vpn2的重叠网段。

步骤323,向接入设备下发第二数据报文和第二vpn对应的网络标识,以使接入设备在确定出第二数据报文的目的ip地址命中第二vpn的网段路由时,则通过该网络标识对应的第二vpn对应的出接口发送第二arp请求。

例如,参见上述步骤212-步骤214,控制器可以构造第二数据报文,第二数据报文的目的ip地址为第二主机的ip地址,目的mac地址为接入设备的mac地址或者全0的mac地址。确定第二vpn对应的网络标识(如vxlan标识),并将第二数据报文和第二vpn对应的网络标识发送给接入设备。

基于与上述方法同样的申请构思,本申请实施例还提出一种数据报文传输装置,应用于接入设备,如图4所示,为所述装置的结构图,所述装置包括:

接收模块401,用于接收第一vpn内的第一主机发往第二主机的第一数据报文;

确定模块402,用于确定出所述第一数据报文的目的ip地址命中第一vpn的网段路由;

发送模块403,用于向控制器发送第一arp请求;以使所述控制器确定所述第二主机对应的ip网段是否为属于所述第一vpn且属于第二vpn的重叠网段,若确定结果为是,则下发第二数据报文和所述第二vpn对应的网络标识;所述第二数据报文的目的ip地址为所述第二主机的ip地址;

所述接收模块401,还用于接收所述控制器下发的第二数据报文和第二vpn对应的网络标识;

所述确定模块402,还用于根据所述网络标识确定出所述第二主机对应的第二vpn,并确定出所述第二数据报文的目的ip地址命中第二vpn的网段路由;

所述发送模块403还用于通过第二vpn对应的出接口发送第二arp请求。

在一个例子中,所述发送模块403,还用于在所述确定模块确定出所述第一数据报文的目的ip地址命中第一vpn的网段路由后,生成第一arp请求,通过所述第一vpn对应的出接口发送第一arp请求;

所述发送模块403向控制器发送第一arp请求时具体用于:若所述第一vpn的vsi接口信息命中控制流表,则将第一arp请求和所述vsi接口信息上送控制器;所述控制流表的匹配选项为所述重叠网段对应的第一vpn的vsi接口信息、且报文类型为arp类型,所述控制流表的动作选项为上送控制器。

在一个例子中,所述确定模块402根据所述网络标识确定出所述第二主机对应的第二vpn时具体用于:根据所述网络标识确定所述第二vpn的vsi接口信息;根据所述第二vpn的vsi接口信息确定第二主机对应的第二vpn。

在一个例子中,所述发送模块403通过第二vpn对应的出接口发送第二arp请求时具体用于:确定所述第二vpn的vsi接口信息,并确定与所述第二vpn的vsi接口信息对应的出接口,所述出接口为接入电路ac和/或隧道;通过与所述vsi接口信息对应的出接口发送第二arp请求。

本申请实施例提供的接入设备,从硬件层面而言,硬件架构示意图具体可以参见图5所示,包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的数据报文传输操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

基于与上述方法同样的申请构思,本申请实施例还提出一种数据报文传输装置,应用于控制器,如图6所示,为所述装置的结构图,所述装置包括:

接收模块601,用于接收接入设备发送的第一arp请求和第一vpn的vsi接口信息,所述第一arp请求的目的ip地址为第二主机的ip地址;

处理模块602,用于在确定出第二主机对应的ip网段为属于第一vpn且属于第二vpn的重叠网段时,则构造第二数据报文,其中,所述第二数据报文的目的ip地址为第二主机的ip地址;

发送模块603,用于向接入设备下发第二数据报文和第二vpn对应的网络标识,以使接入设备在确定出第二数据报文的目的ip地址命中第二vpn的网段路由时,通过所述网络标识对应的第二vpn对应的出接口发送第二arp请求。

所述发送模块603,还用于若根据vpn信息确定不同vpn内的主机存在重叠网段,则向重叠网段的主机对应的接入设备发送控制流表;

其中,所述控制流表的匹配选项包括所述重叠网段对应的vpn的vsi接口信息、且报文类型为arp类型,所述控制流表的动作选项为上送控制器。

在一个例子中,所述处理模块602确定出第二主机对应的ip网段为属于第一vpn且属于第二vpn的重叠网段时具体用于:根据所述第一vpn的vsi接口信息确定促使所述接入设备上送第一arp请求的源主机对应的第一vpn;从所述第一vpn的所有网段中确定出所述第二主机对应的ip网段;查询具有所述第二主机对应的ip网段的第二vpn。

本申请实施例提供的控制器,从硬件层面而言,硬件架构示意图具体可以参见图7所示,包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的数据报文传输操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1