基于分布式虚拟路由器的报文转发方法和系统与流程

文档序号:11234542阅读:383来源:国知局
基于分布式虚拟路由器的报文转发方法和系统与流程

本发明涉及网络通信技术领域,尤其涉及一种基于分布式虚拟路由器的报文转发方法和系统。



背景技术:

在现代网络信息传递过程中,路由器是互联网络的枢纽,是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径发送网络信号。

传统的集中式路由器在进行转发时,经常会出现“发卡弯路”现象,对网络信息传递的稳定性造成不良影响。为解决传统的集中式路由器“发卡弯路”现象,引入分布式虚拟路由器,即不同主机部署相同的分布式虚拟路由器,使本主机内流量只经过本机路由器,从而避免“发卡弯路”。

但是,在传统分布式虚拟路由器的主机之间进行网络信息传递时,不同主机的vm(virtualmachine,虚拟机)间在不同子进行网跨主机通信,发送端报文只经过主端主机dvr(distributedvirtualrouter,分布式虚拟路由器),不经过对端主机的dvr,使报文来回路径不一致,导致dvr上无法记录整个流的过程,从而无法实现报文的有状态转发,进而无法实现alg(applicationlayergateway,应用层网关)、acl(accesscontrollist,访问控制列表)等操作,对网络信息传递的安全性造成影响。



技术实现要素:

本发明的主要目的在于提出一种基于分布式虚拟路由器的报文转发方法和系统,旨在实现通过分布式虚拟路由器对报文进行有状态转发,进而提高网络信息传递的安全性。

为实现上述目的,本发明提供一种基于分布式虚拟路由器的报文转发方法,包括:

主端主机的分布式虚拟路由器创建对应的会话表并对报文进行转发,由主端 主机的第二交换机对所述报文进行标记后转发所述报文至对端主机;

所述对端主机的接收路由器接收所述主端主机转发的报文并发送至所述对端主机的第一交换机,由所述对端主机的第一交换机根据所述标记传送所述报文至所述对端主机的分布式虚拟路由器;

所述对端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述对端主机的第一交换机;

所述对端主机的第一交换机传送所述报文至所述对端主机的虚拟机;

所述对端主机将所述报文对应的响应报文转发至所述主端主机,所述响应报文流经所述对端主机的分布式虚拟路由器和所述主端主机的分布式虚拟路由器。

优选地,所述主端主机的分布式虚拟路由器创建对应的会话表并对报文进行转发,由主端主机的第二交换机对所述报文进行标记后转发所述报文至对端主机的步骤包括:

所述主端主机的虚拟机对所述报文进行封装,传送至所述主端主机的第一交换机,由所述主端主机的第一交换机传送所述报文至所述主端主机的分布式虚拟路由器;

所述主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的第二交换机;

所述主端主机的第二交换机对所述报文进行隧道封装,并进行标记,通过所述隧道转发至对端主机。

优选地,所述对端主机将所述报文对应的响应报文转发至所述主端主机的步骤包括:

所述对端主机的虚拟机对所述响应报文进行封装,传送至所述对端主机的第一交换机,由所述对端主机的第一交换机传送所述响应报文至所述对端主机的分布式虚拟路由器;

所述对端主机的分布式虚拟路由器根据所述会话表,传送所述响应报文至所述对端主机的第二交换机;

所述对端主机的第二交换机对所述响应报文进行隧道封装,并进行标记,通过所述隧道转发至所述主端主机;

所述主端主机的接收路由器接收所述对端主机转发的响应报文并传送至所述主端主机的第一交换机,由所述主端主机的交换机根据所述标记传送所述响应 报文至所述主端主机的分布式虚拟路由器;

所述主端主机的分布式虚拟路由器根据所述会话表,传送所述响应报文至所述主端主机的第一交换机;

所述主端主机的第一交换机传送所述响应报文至所述主端主机的虚拟机。

优选地,所述对端主机的接收路由器接收所述主端主机转发的报文并传送至所述对端主机的第一交换机,由所述对端主机的第一交换机根据所述标记传送所述报文至所述对端主机的分布式虚拟路由器的步骤包括:

所述对端主机的接收路由器接收所述主端主机转发的报文,解析所述隧道封装;

所述对端主机的接收路由器识别所述报文是否具有所述标记;

若所述所述报文具有所述标记,则所述对端主机的接收路由器传送所述报文至所述对端主机的第一交换机,由所述对端主机的第一交换机传送所述报文至所述对端主机的分布式虚拟路由器;

所述主端主机的接收路由器接收所述对端主机转发的响应报文并传送至所述主端主机的第一交换机,由所述主端主机的第一交换机根据所述标记传送所述响应报文至所述主端主机的分布式虚拟路由器的步骤包括:

所述主端主机的接收路由器接收所述对端主机转发的响应报文,解析所述隧道封装;

所述主端主机的接收路由器识别所述响应报文是否具有所述标记;

若所述响应报文具有所述标记,则所述主端主机的接收路由器传送所述响应报文至所述主端主机的第一交换机,由所述主端主机的第一交换机传送所述响应报文至所述主端主机的分布式虚拟路由器。

优选地,所述主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的第二交换机的步骤包括:

所述主端主机的分布式虚拟路由器接收所述报文;

所述主端主机的分布式虚拟路由器检测所述报文是否存在对应的会话表;

若不存在,则所述主端主机的分布式虚拟路由器创建所述报文对应的会话表;

所述主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的第二交换机的步骤包括:

所述对端主机的分布式虚拟路由器接收所述报文;

所述对端主机的分布式虚拟路由器检测所述报文是否存在对应的会话表;

若不存在,则所述对端主机的分布式虚拟路由器创建所述报文对应的会话表。

本发明还提出一种基于分布式虚拟路由器的报文转发系统,包括:

主端主机,其中所述主端主机的分布式虚拟路由器创建对应的会话表并对报文进行转发,由主端主机的第二交换机对所述报文进行标记后转发所述报文至对端主机;

对端主机,其中所述对端主机的接收路由器接收所述主端主机转发的报文并发送至所述对端主机的第一交换机,由所述对端主机的第一交换机根据所述标记传送所述报文至所述对端主机的分布式虚拟路由器;所述对端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述对端主机的第一交换机;所述对端主机的第一交换机传送所述报文至所述对端主机的虚拟机;所述对端主机将所述报文对应的响应报文转发至所述主端主机,所述响应报文流经所述对端主机的分布式虚拟路由器和所述主端主机的的分布式虚拟路由器。

优选地,所述主端主机中,所述主端主机的虚拟机对所述报文进行封装,传送至所述主端主机的第一交换机,由所述主端主机的第一交换机传送所述报文至所述主端主机的分布式虚拟路由器;所述主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的第二交换机;所述主端主机的第二交换机对所述报文进行隧道封装,并进行标记,通过所述隧道转发至对端主机。

优选地,所述对端主机中,所述对端主机的虚拟机对所述响应报文进行封装,传送至所述对端主机的第一交换机,由所述对端主机的第一交换机传送所述响应报文至所述对端主机的分布式虚拟路由器;所述对端主机的分布式虚拟路由器根据所述会话表,传送所述响应报文至所述对端主机的第二交换机;所述对端主机的第二交换机对所述响应报文进行隧道封装,并进行标记,通过所述隧道转发至所述主端主机;

所述主端主机中,所述主端主机的接收路由器接收所述对端主机转发的响应报文并传送至所述主端主机的第一交换机,由所述主端主机的第一交换机根据所 述标记传送所述响应报文至所述主端主机的分布式虚拟路由器;所述主端主机的分布式虚拟路由器根据所述会话表,传送所述响应报文至所述主端主机的第一交换机;所述主端主机的第一交换机传送所述响应报文至所述主端主机的虚拟机。

优选地,所述对端主机中,所述对端主机的接收路由器接收所述主端主机转发的报文,解析所述隧道封装;所述对端主机的接收路由器识别所述报文是否具有所述标记;若所述所述报文具有所述标记,则所述对端主机的接收路由器传送所述报文至所述对端主机的第一交换机,由所述对端主机的第一交换机传送所述报文至所述对端主机的分布式虚拟路由器;

所述主端主机中,所述主端主机的接收路由器接收所述对端主机转发的响应报文,解析所述隧道封装;所述主端主机的接收路由器识别所述响应报文是否具有所述标记;若所述响应报文具有所述标记,则所述主端主机的接收路由器传送所述响应报文至所述主端主机的第一交换机,由所述主端主机的第一交换机传送所述响应报文至所述主端主机的分布式虚拟路由器。

优选地,所述主端主机中,所述主端主机的分布式虚拟路由器接收所述报文;所述主端主机的分布式虚拟路由器检测所述报文是否存在对应的会话表;若不存在,则所述主端主机的分布式虚拟路由器创建所述报文对应的会话表;

所述对端主机中,所述对端主机的分布式虚拟路由器接收所述报文;所述对端主机的分布式虚拟路由器检测所述报文是否存在对应的会话表;若不存在,则所述对端主机的分布式虚拟路由器创建所述报文对应的会话表。

本发明公开了一种基于分布式虚拟路由器的报文转发方法和系统,通过主端主机的分布式虚拟路由器创建对应的会话表并对报文进行转发,由第二交换机对报文进行标记后转发报文至对端主机;对端主机的接收路由器接收主端主机转发的报文并经对端主机的第一交换机根据标记传送报文至对端主机的分布式虚拟路由器;对端主机的分布式虚拟路由器创建报文对应的会话表,并经对端主机的第一交换机传送报文至对端主机的虚拟机;对端主机将报文对应的响应报文转发至主端主机,响应报文流经对端主机的分布式虚拟路由器和主端主机的分布式虚拟路由器,使报文的转发过程都经过了分布式虚拟路由器,得到了完整的流量回路。

由此,解决了现有技术中无法对报文进行有状态转发的问题。实现了通过分 布式虚拟路由器对报文进行有状态转发,进而提高网络信息传递的安全性。

附图说明

图1是本发明基于分布式虚拟路由器的报文转发方法第一实施例的流程示意图;

图2是本发明实施例中所述主端主机的分布式虚拟路由器对报文进行转发,由主端主机的交换机对所述报文进行标记后转发所述报文至对端主机的一种流程示意图;

图3是本发明实施例中所述对端主机将所述报文对应的响应报文转发至所述主端主机的一种流程示意图;

图4是本发明实施例中所述对端主机的接收路由器接收所述主端主机转发的报文并传送至所述对端主机的交换机,由所述对端主机的交换机根据所述标记传送所述报文至所述对端主机的分布式虚拟路由器的一种流程示意图;

图5是本发明实施例中所述主端主机的接收路由器接收所述对端主机转发的响应报文并传送至所述主端主机的交换机,由所述主端主机的交换机根据所述标记传送所述响应报文至所述主端主机的分布式虚拟路由器的一种流程示意图;

图6是本发明实施例中所述主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的交换机的一种流程示意图;

图7是本发明实施例中所述主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的交换机的一种流程示意图;

图8是本发明基于分布式虚拟路由器的报文转发系统第一实施例的结构示意图;

图9是本发明主端主机和对端主机进行报文转发的结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:通过主端主机的分布式虚拟路由器对报文 进行转发,由主端主机的交换机对报文标记后转发报文至对端主机;对端主机的接收路由器接收主端主机转发的报文并发送至对端主机的交换机,由对端主机的交换机根据标记传送报文至对端主机的分布式虚拟路由器;对端主机的分布式虚拟路由器创建会话表,并传送报文至对端主机的交换机;对端主机的交换机传送报文至对端主机的虚拟机;对端主机将报文对应的响应报文转发至主端主机,流经对端主机和主端主机的分布式虚拟路由器,由此,解决了现有技术中无法对报文进行有状态转发的问题,实现了通过分布式虚拟路由器对报文进行有状态转发,进而提高网络信息传递的安全性。

如图1所示,本发明第一实施例提出一种基于分布式虚拟路由器的报文转发方法,包括:

步骤s1,主端主机的分布式路由器分布式虚拟路由器创建对应的会话表并对报文进行转发,由主端主机的第二交换机对所述报文进行标记后转发所述报文至对端主机。

具体地,本实施例方案主要应用于网络通信系统中,当然也不限于其他能够实现信息传递的通信设备。本实施例以网络通信系统进行举例。

其中,网络通信系统中的主端主机的虚拟机对报文进行封装,传送至主端主机的第二交换机,由主端主机的第二交换机传送报文至主端主机的分布式虚拟路由器。

其中,网络通信系统中的主端主机为信息的主端,可以用于将需要转发的信息,以报文的形式转发至对端主机。

其中,主端主机设置有虚拟机、第一交换机、第二交换机、接收路由器和分布式虚拟路由器,在具体实现时,主端主机可以设置有vm(virtualmachine,虚拟机)、dvs1(distributedvirtualswitch,分布式虚拟交换机)、dvs2、接收路由器和dvr(distributedvirtualrouter,分布式虚拟路由器)。

其中,主端主机的vm封装报文,例如:源ip地址为10.1.1.10,源mac(mediaaccesscontrol,介质访问控制层)地址为主端主机的vm的网卡mac地址,目的地址ip为10.20.1.22,目的mac地址为对端主机dvr的mac地址;最后将上述封装的报文经网卡传送至主端主机的dvs1。

其中,主端主机的dvs1接收到主端主机的vm传送的报文后,对保存于 dvs1的fdb表(forwardingdatabase,mac地址转发表)进行查询,若dvs接收到的上述报文为非过滤性报文,则对上述报文进行传送,传送至主端主机的dvr。fdb表用于维护交换机从它的所有端口接收mac地址信息后所形成mac地址表,当dvs1收到报文时,它将根据自己的fdb表来决定是将该报文进行过滤或者转发,同时为防止dvr在dvs1上的fdb表中出现接口变化,dvr与dvs1连接时会下发静态的fdb表。

在网络通信系统中的主端主机的虚拟机发送报文,传送至主端主机的第一交换机,由主端主机的第一交换机传送报文至主端主机的分布式虚拟路由器后,主端主机的分布式虚拟路由器创建报文对应的会话表,并传送报文至主端主机的第二交换机。

其中,主端主机的dvr在接收到主端主机的dvs1传送的报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对会话表进行查询,查询上述报文是否存在对应的会话表,在具体实现时,可以采用session表,session表用于记录转发信息,例如:五元组信息、nat(networkaddresstranslation,网络地址转换)信息、alg(访问控制列表)信息等。

其中,若主端主机的dvr检测到不存在上述报文对应的session表,则主端主机的dvr创建上述报文对应的session表,该session表保存有与上述报文对应的五元组信息、alg信息和acl信息等,alg信息用于识别本条流应用层协议流量,acl信息用于根据alg信息实现acl拦截或者放通;当有后续报文需要进行转发时,可以通过直接查找对应的session表,根据已存有的五元组信息,实现快速转发至主端主机的dvs2,同时更新相关数据。

其中,若主端主机的dvr检测到存在上述报文对应的session表,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至主端主机的dvs2,同时更新相关数据。

在网络通信系统中的主端主机的分布式虚拟路由器创建报文对应的会话表,并传送报文至主端主机的第二交换机后,主端主机的第二交换机对报文进行隧道封装,并标记,通过预设隧道转发至对端主机。

其中,主端主机的dvs2接收到上述报文后,对保存于dvs2的fdb表进行查询,若dvs2接收到的上述报文为非过滤性报文,则对上述报文进行隧道封装,并在上述报文的头部打标记,例如,可以在上述报文报头的字段中插入一个 或一段可识别的字符,再经过预设的隧道转发至对端主机中,该预设的隧道可以是vxlan隧道、gre隧道或者是其他能够进行报文转发的信息转发隧道。

步骤s2,所述对端主机的接收路由器接收所述主端主机转发的报文并发送至所述对端主机的第一交换机,由所述对端主机的第一交换机根据所述标记传送所述报文至所述对端主机的分布式虚拟路由器。

具体地,在网络通信系统中的主端主机的分布式虚拟路由器对报文进行转发,由主端主机的第二交换机对报文进行标记后转发报文至对端主机后,网络通信系统中的对端主机的接收路由器接收主端主机转发的报文并发送至对端主机的第一交换机,由对端主机的第一交换机根据标记传送报文至对端主机的分布式虚拟路由器。

其中,对端主机设置有虚拟机、第一交换机、第二交换机、接收路由器和分布式虚拟路由器,在具体实现时,对端主机可以设置有vm、dvs1、dvs2、接收路由器和dvr。

其中,对端主机的接收路由器接收到主端主机的dvs2传送的报文后,对该报文进行隧道封装解析,再进行识别,若识别上述报文具有上述标记,则传送至对端主机的dvs1中,再由对端主机的dvs1传送至对端主机的dvr;若识别上述报文不具有上述标记,则不进行传送。

步骤s3,所述对端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述对端主机的第一交换机。

具体地,在网络通信系统中的对端主机的接收路由器接收主端主机转发的报文并发送至对端主机的第一交换机,由对端主机的第一交换机根据标记传送报文至对端主机的分布式虚拟路由器后,对端主机的分布式虚拟路由器创建报文对应的会话表,并传送报文至对端主机的第一交换机。

其中,对端主机的dvr在接收到对端主机的dvs1传送的报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对session表进行查询,查询上述报文是否存在对应的session表。

其中,若对端主机的dvr检测到不存在上述报文对应的session表,则对端主机的dvr创建上述报文对应的session表。

其中,若对端主机的dvr检测到存在上述报文对应的session表,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至 对端主机的dvs1,同时更新相关数据。

步骤s4,所述对端主机的第一交换机传送所述报文至所述对端主机的虚拟机。

具体地,在网络通信系统中的对端主机的分布式虚拟路由器创建报文对应的会话表,并传送报文至对端主机的第一交换机后,对端主机的第一交换机传送报文至对端主机的虚拟机。

其中,对端主机的dvs1在接收到对端主机的dvr传送的报文后,对保存于dvs1的fdb表进行查询,若dvs1接收到的上述报文为非过滤性报文,则将报文传送至对端主机的vm。

步骤s5,所述对端主机将所述报文对应的响应报文转发至所述主端主机,所述响应报文流经所述对端主机的分布式虚拟路由器和所述主端主机的分布式虚拟路由器。

具体地,在网络通信系统中的对端主机的交换机传送报文至对端主机的虚拟机后,对端主机将报文对应的响应报文转发至主端主机。

其中,对端主机的vm在接收到报文后,对端主机的vm发送响应报文,传送至对端主机的dvs1,由对端主机的dvs1传送响应报文至对端主机的dvr;然后对端主机的dvr根据session表,传送响应报文至对端主机的dvs2;然后对端主机的dvs2对响应报文进行隧道封装,并标记,通过预设隧道转发至主端主机;主端主机中,首先主端主机的路由器接收对端主机转发的响应报文,进行隧道解析并识别响应报文是否具有标记,若响应报文具有标记,则由主端主机的dvs2传送响应报文至主端主机的dvr;然后主端主机的dvr根据session表,传送响应报文至主端主机的dvs1;最后主端主机dvs1传送响应报文至主端主机的vm。

其中,如图9所示,假设host1的vm与host2的vm进行通信,在具体实现时,可以采用如下方法:

1.host1的vm封装报文,设源ip地址为10.1.1.10,源mac地址为host1的vm网卡mac地址,目的ip地址为10.20.1.22,目的mac地址为host2的dvr网卡mac地址,经host1的vm的网卡将报文传送至host1的dvs1;

2.host1的dvs1接收到报文后,查fdb表,将报文传送至host1的dvr;

3.host1的dvr根据五元组查session表,若报文无对应的sesion表, 则建立对应的session表,经10.20.1.1/24对应接口将报文传送至host1的dvs2,当有后续报文时,直接查找对应的session表,更新相关数据,实现快速将报文传送至host1的dvs2;

4.host1的dvs2接收到报文后,查fdb表,在报文头部打标记,经vxlan隧道(不限于vxlan隧道)将报文转发至host2的接收路由器;

5.host2的接收路由器接收所述报文,传送报文至host2的dvs1中,host2的接收dvs1接收到报文后,由于报文已打标记,传送至host2的dvr1进行session表创建返回至host2的dvs1,再由host2的dvs1经查fdb表后,将报文传送至host2的vm;

6.host2的vm2接收到报文后,进行响应报文操作,封装报文,源ip地址为10.20.1.22,源mac地址为host2的vm网卡mac地址,目的ip地址为10.1.1.10,目的mac地址为host1的dvr的mac地址,经host2的vm的网卡将报文传送至host2的dvs1;

7.host2的dvs1接收到报文后,查fdb表,将报文传送至host2的dvr;

8.host2的dvr接收报文到报文后,查session表(步骤5中创建的),更新session表,根据session表传送至host2的dvs2;

9.host2的dvs2接收到报文后,查fdb表,在报文头部打标记,经vxlan隧道(不限于vxlan隧道)将报文转发至host1的接收路由器;

10.host1的接收路由器接收响应报文,并传送至host1的dvs1,host1的dvs1接收到报文后,由于报文已打标记,传送至host1的dvr更新session表,session表更新完成后将报文传送至host1的dvs1;

11.host1的dvs1接收到报文后,查fdb表,将报文传送至vm。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发方法,通过标记报文的方式,将报文从dvs向dvr引流,使来回转发报文都经过dvr,可以保证dvr上报文来回路径一致,使dvr上有完整的来回流量,因此,可以实现dvr的有状态转发,进而可以实现alg、acl等功能,即实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,参照图2,为本发明具体实施例中所述主端主机的分布式虚拟路由器创建对应的会话 表并对报文进行转发,由主端主机的第二交换机对所述报文进行标记后转发所述报文至对端主机的一种流程示意图。

作为一种实施方式,基于第一实施例中的方法的实施,上述步骤s1包括:

步骤s11,所述主端主机的虚拟机对所述报文进行封装,传送至所述主端主机的第一交换机,由所述主端主机的第一交换机传送所述报文至所述主端主机的分布式虚拟路由器。

具体地,网络通信系统中的主端主机的虚拟机对报文进行封装,传送至主端主机的第一交换机,由主端主机的第一交换机传送报文至主端主机的分布式虚拟路由器。

其中,网络通信系统中的主端主机为信息的主端,可以用于将需要转发的信息,以报文的形式转发至对端主机。

其中,主端主机设置有虚拟机、第一交换机、第二交换机、路由器和分布式虚拟路由器,在具体实现时,主端主机可以设置有vm、dvs1、dvs2、接收路由器和dvr。

其中,主端主机的vm封装发送报文,例如:源ip地址为10.1.1.10,源mac(mediaaccesscontrol,介质访问控制层)地址为主端主机的vm的网卡mac地址,目的地址ip为10.20.1.22,目的mac地址为对端主机dvr的mac地址;最后将上述封装的报文经网卡传送至主端主机的dvs1。

其中,主端主机的dvs1接收到主端主机的vm传送的报文后,对保存于dvs1的fdb表进行查询,若dvs1接收到的上述报文为非过滤性报文,则对上述报文进行传送,传送至主端主机的dvr。fdb表用于维护交换机从它的所有端口接收mac地址信息后所形成mac地址表,当dvs1收到报文时,它将根据自己的fdb表来决定是将该报文进行过滤或者转发,同时为防止dvr在dvs1上的fdb表中出现接口变化,dvr与dvs1连接时会下发静态的fdb表。

步骤s12,所述主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的第二交换机。

具体地,在网络通信系统中的主端主机的虚拟机对报文进行封装,传送至主端主机的第一交换机,由主端主机的第一交换机传送报文至主端主机的分布式虚拟路由器后,主端主机的分布式虚拟路由器创建报文对应的会话表,并传送报文至主端主机的第二交换机。

其中,主端主机的dvr在接收到主端主机的dvs1传送的报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对会话表进行查询,查询上述报文是否存在对应的会话表,在具体实现时,可以采用session表,session表用于记录转发信息,例如:五元组信息、nat信息、alg信息等。

其中,若主端主机的dvr检测到不存在上述报文对应的session表,则主端主机的dvr创建上述报文对应的session表,该session表保存有与上述报文对应的五元组信息、alg信息和acl信息等,alg信息用于识别本条流应用层协议流量,acl信息用于根据alg信息实现acl拦截或者放通;当有后续报文需要进行转发时,可以通过直接查找对应的session表,根据已存有的五元组信息,实现快速转发至主端主机的dvs2,同时更新相关数据。

其中,若主端主机的dvr检测到存在上述报文对应的session表,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至主端主机的dvs2,同时更新相关数据。

步骤s13,所述主端主机的第二交换机对所述报文进行隧道封装,并进行标记,通过所述隧道转发至对端主机。

具体地,在网络通信系统中的主端主机的分布式虚拟路由器创建报文对应的会话表,并传送报文至主端主机的第二交换机后,主端主机的第二交换机对报文进行隧道封装,并进行标记,通过隧道转发至对端主机。

其中,主端主机的dvs2接收到上述报文后,对保存于dvs2的fdb表进行查询,若dvs2接收到的上述报文为非过滤性报文,则对上述报文进行隧道封装,并在上述报文的头部打标记,例如,可以在上述报文报头的字段中插入一个或一段可识别的字符,再经过预设的隧道转发至对端主机中,该预设的隧道可以是vxlan隧道、gre隧道或者是其他能够进行报文转发的信息转发隧道。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发方法,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,参照图3,为本发明具体实施例中对端主机将所述报文对应的响应报文转发至所述主 端主机的一种流程示意图。

作为一种实施方式,基于第一实施例中的方法的实施,上述步骤s5包括:

步骤s51,所述对端主机的虚拟机对所述响应报文进行封装,传送至所述对端主机的第一交换机,由所述对端主机的第一交换机传送所述响应报文至所述对端主机的分布式虚拟路由器。

具体地,在网络通信系统中的对端主机的第一交换机传送响应报文至对端主机的虚拟机后,对端主机的虚拟机对响应报文进行封装,传送至对端主机的第一交换机,由对端主机的第一交换机传送响应报文至对端主机的分布式虚拟路由器。

其中,对端主机设置有虚拟机、第一交换机、第二交换机、接收路由器和分布式虚拟路由器,在具体实现时,对端主机可以设置有vm、dvs1、dvs2、接收路由器和dvr。

其中,对端主机的vm可以首先对响应报文进行封装,然后将上述封装的响应报文经网卡传送至对端主机的dvs1。

其中,对端主机的dvs1接收到对端主机的vm传送的响应报文后,对保存于dvs1的fdb表进行查询,若dvs1接收到的上述响应报文为非过滤性报文,则对上述响应报文进行传送,传送至对端主机的dvr。

步骤s52,所述对端主机的分布式虚拟路由器根据所述会话表,传送所述响应报文至所述对端主机的第二交换机。

具体地,在网络通信系统中的对端主机的虚拟机对响应报文进行封装,传送至对端主机的第一交换机,由对端主机的第一交换机传送响应报文至对端主机的分布式虚拟路由器后,对端主机的分布式虚拟路由器根据会话表,传送响应报文至对端主机的第二交换机。

其中,对端主机的dvr在接收到对端主机的dvs1传送的响应报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对会话表进行查询,查询上述响应报文是否存在对应的会话表,在具体实现时,可以采用session表,session表用于记录转发信息,例如:五元组信息、nat信息、alg信息等。

其中,若对端主机的dvr检测到存在上述响应报文对应的session表,则对端主机的dvr直接查找对应的session表,根据已存有的五元组信息,实现 快速转发至对端主机的dvs2,同时更新相关数据。

步骤s53,所述对端主机的第二交换机对所述响应报文进行隧道封装,并进行标记,通过所述隧道转发至所述主端主机。

具体地,在网络通信系统中的对端主机的分布式虚拟路由器根据会话表,传送响应报文至对端主机的第二交换机后,对端主机的第二交换机对响应报文进行隧道封装,并进行标记,通过隧道转发至主端主机。

其中,对端主机的dvs2接收到上述响应报文后,对保存于dvs2的fdb表进行查询,若dvs2接收到的上述响应报文为非过滤性报文,则对上述报文进行隧道封装,并在上述响应报文的头部打标记,例如,可以在上述响应报文报头的字段中插入一个或一段可识别的字符,再经过预设的隧道转发至对端主机中,该预设的隧道可以是vxlan隧道、gre隧道或者是其他能够进行报文转发的信息转发隧道。

步骤s54,所述主端主机的接收路由器接收所述对端主机转发的响应报文并传送至所述主端主机的第一交换机,由所述主端主机的第一交换机根据所述标记传送所述响应报文至所述主端主机的分布式虚拟路由器。

具体地,在网络通信系统中的对端主机的交换机对响应报文进行隧道封装,并进行标记,通过隧道转发至主端主机后,网络通信系统中的主端主机的接收路由器接收对端主机转发的响应报文并传送至主端主机的第一交换机,由主端主机的第一交换机根据标记传送响应报文至主端主机的分布式虚拟路由器。

其中,主端主机设置有虚拟机、第一交换机、第二交换机、接收路由器和分布式虚拟路由器,在具体实现时,主端主机可以设置有vm、dvs1、dvs2、接收路由器和dvr。

其中,主端主机的路由器接收到对端主机的dvs2传送的响应报文后,先对该响应报文进行隧道封装解析,再对该响应报文进行识别,若识别上述响应报文具有上述标记,则传送至主端主机的dvs1,由主端主机的dvs1传送至主端主机的dvr中;若识别上述响应报文不具有上述标记,则不进行传送。

步骤s55,所述主端主机的分布式虚拟路由器根据所述会话表,传送所述响应报文至所述主端主机的第一交换机。

具体地,在网络通信系统中的主端主机的接收路由器接收对端主机转发的响应报文并传送至主端主机的第一交换机,由主端主机的第一交换机根据标记传送 响应报文至主端主机的分布式虚拟路由器后,主端主机的分布式虚拟路由器根据会话表,传送响应报文至主端主机的第一交换机。

其中,主端主机的dvr在接收到主端主机的dvs1传送的响应报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对session表进行查询,查询上述响应报文是否存在对应的session表。

其中,若对端主机的dvr检测到不存在上述响应报文对应的session表,则主端主机控制主端主机的dvr直接查找对应的session表,根据已存有的五元组信息,实现快速转发至主端主机的dvs1,同时更新相关数据。

步骤s56,所述主端主机的第一交换机传送所述响应报文至所述主端主机的虚拟机。

具体地,在网络通信系统中的主端主机的分布式虚拟路由器根据会话表,传送响应报文至主端主机的第一交换机后,主端主机的第一交换机传送响应报文至主端主机的虚拟机。

其中,主端主机的dvs1在接收到主端主机的dvr传送的响应报文后,对保存于dvs1的fdb表进行查询,若dvs1接收到的上述响应报文为非过滤性报文,则将响应报文传送至主端主机的vm。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发方法,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,参照图4,为本发明实施例中对端主机的接收路由器接收所述主端主机转发的报文并传送至所述对端主机的第一交换机,由所述对端主机的第一交换机根据所述标记传送所述报文至所述对端主机的分布式虚拟路由器的一种流程示意图。

作为一种实施方式,基于第一实施例中的方法的实施,上述步骤s2包括:

步骤s21,所述对端主机的接收路由器接收所述主端主机转发的报文,解析所述隧道封装。

具体地,在网络通信系统中的主端主机的第二交换机对报文进行隧道封装,并进行标记,通过隧道转发至对端主机后,网络通信系统中的对端主机的接收路由器接收主端主机转发的报文,解析隧道封装。

步骤s22,所述对端主机的接收路由器识别所述报文是否具有所述标记。

具体地,在网络通信系统中的对端主机的接收路由器接收主端主机转发的报文,解析隧道封装后,对端主机的接收路由器识别报文是否具有标记。

其中,对端主机的路由器接收到主端主机的dvs2传送的报文后,对该报文进行识别,例如:对报文报头的字段与预设的字段进行匹配,若成功匹配,则认为报文具有标记,否则,则认为报文不具有标记。

步骤s23,若所述所述报文具有所述标记,则所述对端主机的接收路由器传送所述报文至所述对端主机的第一交换机,由所述对端主机的第一交换机传送所述报文至所述对端主机的分布式虚拟路由器。

具体地,在网络通信系统中的对端主机识别到报文具有标记后,对端主机传送报文至对端主机的第一交换机,由对端主机的第一交换机传送报文至对端主机的分布式虚拟路由器。

其中,对端主机的路由器接收到主端主机的dvs2传送的报文后,对该报文进行识别,若识别上述报文具有上述标记,则传送至对端主机的dvs1,由对端主机的dvs1传送至对端主机对端主机的dvr中;若识别上述报文不具有上述标记,则不进行传送。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发方法,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,参照图5,为本发明实施例中主端主机的接收路由器接收所述对端主机转发的响应报文并传送至所述主端主机的第一交换机,由所述主端主机的第一交换机根据所述标记传送所述响应报文至所述主端主机的分布式虚拟路由器的一种流程示意图。

作为一种实施方式,基于第一实施例中的方法的实施,上述步骤s54包括:

步骤s541,所述主端主机的接收路由器接收所述对端主机转发的响应报文,解析所述隧道封装。

具体地,在网络通信系统中的对端主机的第二交换机对响应报文进行隧道封装,并进行标记,通过隧道转发至主端主机后,网络通信系统中的主端主机的接收路由器接收对端主机转发的响应报文,解析隧道封装。

步骤s542,所述主端主机的接收路由器识别所述响应报文是否具有所述标记。

具体地,在网络通信系统中的主端主机的接收路由器接收对端主机转发的响应报文,解析隧道封装后,主端主机的接收路由器识别响应报文是否具有标记。

其中,主端主机的路由器接收到对端主机的dvs2传送的响应报文后,对该响应报文进行识别,例如:对报文报头的字段与预设的字段进行匹配,若成功匹配,则认为报文具有标记,否则,则认为报文不具有标记。

步骤s543,若所述响应报文具有所述标记,则所述主端主机的接收路由器传送所述响应报文至所述主端主机的第一交换机,由所述主端主机的第一交换机传送所述响应报文至所述主端主机的分布式虚拟路由器。

具体地,在网络通信系统中的主端主机识别到响应报文具有标记后,主端主机传送响应报文至主端主机的第一交换机,由主端主机的第一交换机传送响应报文至主端主机的分布式虚拟路由器。

其中,主端主机的路由器接收到对端主机的dvs2传送的响应报文后,对该响应报文进行识别,若识别上述响应报文具有上述标记,则传送至主端主机的dvs1,由主端主机的dvs1传送至主端主机的dvr中;若识别上述响应报文不具有上述标记,则不进行传送。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发方法,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,参照图6,为本发明实施例中主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的第二交换机的一种流程示意图。

作为一种实施方式,上述步骤s12包括:

步骤s121,所述主端主机的分布式虚拟路由器接收所述报文。

具体地,网络通信系统中的主端主机的分布式虚拟路由器接收报文。

步骤s122,所述主端主机的分布式虚拟路由器检测所述报文是否存在对应的会话表。

具体地,在网络通信系统中的主端主机的分布式虚拟路由器接收报文后,主 端主机的分布式虚拟路由器检测报文是否存在对应的会话表。

其中,主端主机的dvr根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对session表进行查询,查询上述报文是否存在对应的session表,session表用于记录转发信息,例如:五元组信息、nat信息、alg信息等。

步骤s123,若不存在,则所述主端主机的分布式虚拟路由器创建所述报文对应的会话表。

具体地,若网络通信系统中的主端主机的分布式虚拟路由器检测到所述报文不存在,则主端主机的分布式虚拟路由器创建报文对应的会话表。

其中,主端主机控制主端主机的dvr创建上述报文对应的session表,该session表保存有五元组信息、alg信息和acl信息等,其中,alg信息用于识别本条流应用层协议流量,acl信息用于根据alg信息实现acl拦截或者放通;当有后续报文需要进行转发时,可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至主端主机的dvs2,同时更新相关数据。

其中,若主端主机的dvr检测到所述报文存在,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至主端主机的dvs2,同时更新相关数据。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发方法,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,参照图7,为本发明实施例中主端主机的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机的第二交换机的一种流程示意图。

作为一种实施方式,上述步骤s3包括:

步骤s31,所述对端主机的分布式虚拟路由器接收所述报文。

具体地,网络通信系统中的对端主机的分布式虚拟路由器接收报文。

步骤s32,所述对端主机的分布式虚拟路由器检测所述报文是否存在对应的会话表。

具体地,在网络通信系统中的对端主机的分布式虚拟路由器接收报文后,对 端主机的分布式虚拟路由器检测报文是否存在对应的会话表。

其中,对端主机的dvr根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对session表进行查询,查询上述报文是否存在对应的session表,session表用于记录转发信息,例如:五元组信息、nat信息、alg信息等。

步骤s33,若不存在,则所述对端主机的分布式虚拟路由器创建所述报文对应的会话表。

具体地,若网络通信系统中的对端主机的分布式虚拟路由器检测到所述报文不存在,则对端主机的分布式虚拟路由器创建报文对应的会话表。

其中,对端主机控制对端主机的dvr创建上述报文对应的session表,该session表保存有五元组信息、alg信息和acl信息等,其中,alg信息用于识别本条流应用层协议流量,acl信息用于根据alg信息实现acl拦截或者放通;当有后续报文需要进行转发时,可以根据已存有的五元组信息,通过直接查找对应的session表,更新相关数据,从而实现快速转发至对端主机的dvs2。

其中,若对端主机的dvr检测到所述报文存在,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至对端主机的dvs2,同时更新相关数据。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发方法,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

基于上述实施例中方法的实施,本发明还提供了对应的系统实施例。

如图8所示,本发明第一实施例提出一种基于分布式虚拟路由器的报文转发系统,包括:主端主机a和对端主机b。

其中,上述主端主机a的特征为:主端主机a的分布式虚拟路由器创建对应的会话表并对报文进行转发,由主端主机a的第二交换机对所述报文进行标记后转发所述报文至对端主机b;

其中,上述对端主机b的特征为:对端主机b的接收路由器接收所述主端主机a转发的报文并发送至所述对端主机b的第一交换机,由所述对端主机b的第一交换机根据所述标记传送所述报文至所述对端主机b的分布式虚拟路由 器;所述对端主机b的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述对端主机b的第一交换机;所述对端主机b的第一交换机传送所述报文至所述对端主机b的虚拟机;所述对端主机b将所述报文对应的响应报文转发至所述主端主机a,所述响应报文流经所述对端主机b的分布式虚拟路由器和所述主端主机a的的分布式虚拟路由器。

具体地,本实施例方案主要应用于网络通信系统中,当然也不限于其他能够实现信息传递的通信设备。本实施例以网络通信系统进行举例。

其中,网络通信系统中的主端主机a的虚拟机对报文进行封装,传送至主端主机a的第二交换机,由主端主机a的第二交换机传送报文至主端主机a的分布式虚拟路由器。

其中,网络通信系统中的主端主机a为信息的主端,可以用于将需要转发的信息,以报文的形式转发至对端主机b。

其中,主端主机a设置有虚拟机、第一交换机、第二交换机、接收路由器和分布式虚拟路由器,在具体实现时,主端主机a可以设置有vm(virtualmachine,虚拟机)、dvs1(distributedvirtualswitch,分布式虚拟交换机)、dvs2、接收路由器和dvr(distributedvirtualrouter,分布式虚拟路由器)。

其中,主端主机a的vm封装报文,例如:源ip地址为10.1.1.10,源mac(mediaaccesscontrol,介质访问控制层)地址为主端主机a的vm的网卡mac地址,目的地址ip为10.20.1.22,目的mac地址为对端主机bdvr的mac地址;最后将上述封装的报文经网卡传送至主端主机a的dvs1。

其中,主端主机a的dvs1接收到主端主机a的vm传送的报文后,对保存于dvs1的fdb表(forwardingdatabase,mac地址转发表)进行查询,若dvs接收到的上述报文为非过滤性报文,则对上述报文进行传送,传送至主端主机a的dvr。fdb表用于维护交换机从它的所有端口接收mac地址信息后所形成mac地址表,当dvs1收到报文时,它将根据自己的fdb表来决定是将该报文进行过滤或者转发,同时为防止dvr在dvs1上的fdb表中出现接口变化,dvr与dvs1连接时会下发静态的fdb表。

在网络通信系统中的主端主机a的虚拟机发送报文,传送至主端主机a的第一交换机,由主端主机a的第一交换机传送报文至主端主机a的分布式虚拟路由器后,主端主机a的分布式虚拟路由器创建报文对应的会话表,并传送报文 至主端主机a的第二交换机。

其中,主端主机a的dvr在接收到主端主机a的dvs1传送的报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对会话表进行查询,查询上述报文是否存在对应的会话表,在具体实现时,可以采用session表,session表用于记录转发信息,例如:五元组信息、nat(networkaddresstranslation,网络地址转换)信息、alg(访问控制列表)信息等。

其中,若主端主机a的dvr检测到不存在上述报文对应的session表,则主端主机a的dvr创建上述报文对应的session表,该session表保存有与上述报文对应的五元组信息、alg信息和acl信息等,alg信息用于识别本条流应用层协议流量,acl信息用于根据alg信息实现acl拦截或者放通;当有后续报文需要进行转发时,可以通过直接查找对应的session表,根据已存有的五元组信息,实现快速转发至主端主机a的dvs2,同时更新相关数据。

其中,若主端主机a的dvr检测到存在上述报文对应的session表,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至主端主机a的dvs2,同时更新相关数据。

在网络通信系统中的主端主机a的分布式虚拟路由器创建报文对应的会话表,并传送报文至主端主机a的第二交换机后,主端主机a的第二交换机对报文进行隧道封装,并标记,通过预设隧道转发至对端主机b。

其中,主端主机a的dvs2接收到上述报文后,对保存于dvs2的fdb表进行查询,若dvs2接收到的上述报文为非过滤性报文,则对上述报文进行隧道封装,并在上述报文的头部打标记,例如,可以在上述报文报头的字段中插入一个或一段可识别的字符,再经过预设的隧道转发至对端主机b中,该预设的隧道可以是vxlan隧道、gre隧道或者是其他能够进行报文转发的信息转发隧道。

在网络通信系统中的主端主机a的分布式虚拟路由器对报文进行转发,由主端主机a的第二交换机对报文进行标记后转发报文至对端主机b后,网络通信系统中的对端主机b的接收路由器接收主端主机a转发的报文并发送至对端主机b的第一交换机,由对端主机b的第一交换机根据标记传送报文至对端主机b的分布式虚拟路由器。

其中,对端主机b设置有虚拟机、第一交换机、第二交换机、接收路由器和分布式虚拟路由器,在具体实现时,对端主机b可以设置有vm、dvs1、dvs2、 接收路由器和dvr。

其中,对端主机b的接收路由器接收到主端主机a的dvs2传送的报文后,对该报文进行隧道封装解析,再进行识别,若识别上述报文具有上述标记,则传送至对端主机b的dvs1中,再由对端主机b的dvs1传送至对端主机b的dvr;若识别上述报文不具有上述标记,则不进行传送。

在网络通信系统中的对端主机b的接收路由器接收主端主机a转发的报文并发送至对端主机b的第一交换机,由对端主机b的第一交换机根据标记传送报文至对端主机b的分布式虚拟路由器后,对端主机b的分布式虚拟路由器创建报文对应的会话表,并传送报文至对端主机b的第一交换机。

其中,对端主机b的dvr在接收到对端主机b的dvs1传送的报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对session表进行查询,查询上述报文是否存在对应的session表。

其中,若对端主机b的dvr检测到不存在上述报文对应的session表,则对端主机b的dvr创建上述报文对应的session表。

其中,若对端主机b的dvr检测到存在上述报文对应的session表,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至对端主机b的dvs1,同时更新相关数据。

在网络通信系统中的对端主机b的分布式虚拟路由器创建报文对应的会话表,并传送报文至对端主机b的第一交换机后,对端主机b的第一交换机传送报文至对端主机b的虚拟机。

其中,对端主机b的dvs1在接收到对端主机b的dvr传送的报文后,对保存于dvs1的fdb表进行查询,若dvs1接收到的上述报文为非过滤性报文,则将报文传送至对端主机b的vm。

在网络通信系统中的对端主机b的交换机传送报文至对端主机b的虚拟机后,对端主机b将报文对应的响应报文转发至主端主机a。

其中,对端主机b的vm在接收到报文后,对端主机b的vm发送响应报文,传送至对端主机b的dvs1,由对端主机b的dvs1传送响应报文至对端主机b的dvr;然后对端主机b的dvr根据session表,传送响应报文至对端主机b的dvs2;然后对端主机b的dvs2对响应报文进行隧道封装,并标记,通过预设隧道转发至主端主机a;主端主机a中,首先主端主机a的路由器接 收对端主机b转发的响应报文,进行隧道解析并识别响应报文是否具有标记,若响应报文具有标记,则由主端主机a的dvs2传送响应报文至主端主机a的dvr;然后主端主机a的dvr根据session表,传送响应报文至主端主机a的dvs1;最后主端主机advs1传送响应报文至主端主机a的vm。

其中,如图9所示,假设host1的vm与host2的vm进行通信,在具体实现时,可以采用如下方法:

1.host1的vm封装报文,设源ip地址为10.1.1.10,源mac地址为host1的vm网卡mac地址,目的ip地址为10.20.1.22,目的mac地址为host2的dvr网卡mac地址,经host1的vm的网卡将报文传送至host1的dvs1;

2.host1的dvs1接收到报文后,查fdb表,将报文传送至host1的dvr;

3.host1的dvr根据五元组查session表,若报文无对应的sesion表,则建立对应的session表,经10.20.1.1/24对应接口将报文传送至host1的dvs2,当有后续报文时,直接查找对应的session表,更新相关数据,实现快速将报文传送至host1的dvs2;

4.host1的dvs2接收到报文后,查fdb表,在报文头部打标记,经vxlan隧道(不限于vxlan隧道)将报文转发至host2的接收路由器;

5.host2的接收路由器接收所述报文,传送报文至host2的dvs1中,host2的接收dvs1接收到报文后,由于报文已打标记,传送至host2的dvr1进行session表创建返回至host2的dvs1,再由host2的dvs1经查fdb表后,将报文传送至host2的vm;

6.host2的vm2接收到报文后,进行响应报文操作,封装报文,源ip地址为10.20.1.22,源mac地址为host2的vm网卡mac地址,目的ip地址为10.1.1.10,目的mac地址为host1的dvr的mac地址,经host2的vm的网卡将报文传送至host2的dvs1;

7.host2的dvs1接收到报文后,查fdb表,将报文传送至host2的dvr;

8.host2的dvr接收报文到报文后,查session表(步骤5中创建的),更新session表,根据session表传送至host2的dvs2;

9.host2的dvs2接收到报文后,查fdb表,在报文头部打标记,经vxlan隧道(不限于vxlan隧道)将报文转发至host1的接收路由器;

10.host1的接收路由器接收响应报文,并传送至host1的dvs1,host1 的dvs1接收到报文后,由于报文已打标记,传送至host1的dvr更新session表,session表更新完成后将报文传送至host1的dvs1;

11.host1的dvs1接收到报文后,查fdb表,将报文传送至vm。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发系统,通过标记报文的方式,将报文从dvs向dvr引流,使来回转发报文都经过dvr,可以保证dvr上报文来回路径一致,使dvr上有完整的来回流量,因此,可以实现dvr的有状态转发,进而可以实现alg、acl等功能,即实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,上述述主端主机a还包括以下特征,所述主端主机a的虚拟机对所述报文进行封装,传送至所述主端主机a的第一交换机,由所述主端主机a的第一交换机传送所述报文至所述主端主机a的分布式虚拟路由器;所述主端主机a的分布式虚拟路由器创建所述报文对应的会话表,并传送所述报文至所述主端主机a的第二交换机;所述主端主机a的第二交换机对所述报文进行隧道封装,并进行标记,通过所述隧道转发至对端主机b。

具体地,网络通信系统中的主端主机a的虚拟机对报文进行封装,传送至主端主机a的第一交换机,由主端主机a的第一交换机传送报文至主端主机a的分布式虚拟路由器。

其中,网络通信系统中的主端主机a为信息的主端,可以用于将需要转发的信息,以报文的形式转发至对端主机b。

其中,主端主机a设置有虚拟机、第一交换机、第二交换机、路由器和分布式虚拟路由器,在具体实现时,主端主机a可以设置有vm、dvs1、dvs2、接收路由器和dvr。

其中,主端主机a的vm封装发送报文,例如:源ip地址为10.1.1.10,源mac(mediaaccesscontrol,介质访问控制层)地址为主端主机a的vm的网卡mac地址,目的地址ip为10.20.1.22,目的mac地址为对端主机bdvr的mac地址;最后将上述封装的报文经网卡传送至主端主机a的dvs1。

其中,主端主机a的dvs1接收到主端主机a的vm传送的报文后,对保存于dvs1的fdb表进行查询,若dvs1接收到的上述报文为非过滤性报文, 则对上述报文进行传送,传送至主端主机a的dvr。fdb表用于维护交换机从它的所有端口接收mac地址信息后所形成mac地址表,当dvs1收到报文时,它将根据自己的fdb表来决定是将该报文进行过滤或者转发,同时为防止dvr在dvs1上的fdb表中出现接口变化,dvr与dvs1连接时会下发静态的fdb表。

在网络通信系统中的主端主机a的虚拟机对报文进行封装,传送至主端主机a的第一交换机,由主端主机a的第一交换机传送报文至主端主机a的分布式虚拟路由器后,主端主机a的分布式虚拟路由器创建报文对应的会话表,并传送报文至主端主机a的第二交换机。

其中,主端主机a的dvr在接收到主端主机a的dvs1传送的报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对会话表进行查询,查询上述报文是否存在对应的会话表,在具体实现时,可以采用session表,session表用于记录转发信息,例如:五元组信息、nat信息、alg信息等。

其中,若主端主机a的dvr检测到不存在上述报文对应的session表,则主端主机a的dvr创建上述报文对应的session表,该session表保存有与上述报文对应的五元组信息、alg信息和acl信息等,alg信息用于识别本条流应用层协议流量,acl信息用于根据alg信息实现acl拦截或者放通;当有后续报文需要进行转发时,可以通过直接查找对应的session表,根据已存有的五元组信息,实现快速转发至主端主机a的dvs2,同时更新相关数据。

其中,若主端主机a的dvr检测到存在上述报文对应的session表,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至主端主机a的dvs2,同时更新相关数据。

在网络通信系统中的主端主机a的分布式虚拟路由器创建报文对应的会话表,并传送报文至主端主机a的第二交换机后,主端主机a的第二交换机对报文进行隧道封装,并进行标记,通过隧道转发至对端主机b。

其中,主端主机a的dvs2接收到上述报文后,对保存于dvs2的fdb表进行查询,若dvs2接收到的上述报文为非过滤性报文,则对上述报文进行隧道封装,并在上述报文的头部打标记,例如,可以在上述报文报头的字段中插入一个或一段可识别的字符,再经过预设的隧道转发至对端主机b中,该预设的隧道 可以是vxlan隧道、gre隧道或者是其他能够进行报文转发的信息转发隧道。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发系统,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,上述对端主机b还包括以下特征:所述对端主机b的虚拟机对所述响应报文进行封装,传送至所述对端主机b的第一交换机,由所述对端主机b的第一交换机传送所述响应报文至所述对端主机b的分布式虚拟路由器;所述对端主机b的分布式虚拟路由器根据所述会话表,传送所述响应报文至所述对端主机b的第二交换机;所述对端主机b的第二交换机对所述响应报文进行隧道封装,并进行标记,通过所述隧道转发至所述主端主机a。

上述主端主机a还包括以下特征:所述主端主机a的接收路由器接收所述对端主机b转发的响应报文并传送至所述主端主机a的第一交换机,由所述主端主机a的第一交换机根据所述标记传送所述响应报文至所述主端主机a的分布式虚拟路由器;所述主端主机a的分布式虚拟路由器根据所述会话表,传送所述响应报文至所述主端主机a的第一交换机;所述主端主机a的第一交换机传送所述响应报文至所述主端主机a的虚拟机。

具体地,在网络通信系统中的对端主机b的第一交换机传送响应报文至对端主机b的虚拟机后,对端主机b的虚拟机对响应报文进行封装,传送至对端主机b的第一交换机,由对端主机b的第一交换机传送响应报文至对端主机b的分布式虚拟路由器。

其中,对端主机b设置有虚拟机、第一交换机、第二交换机、接收路由器和分布式虚拟路由器,在具体实现时,对端主机b可以设置有vm、dvs1、dvs2、接收路由器和dvr。

其中,对端主机b的vm可以首先对响应报文进行封装,然后将上述封装的响应报文经网卡传送至对端主机b的dvs1。

其中,对端主机b的dvs1接收到对端主机b的vm传送的响应报文后,对保存于dvs1的fdb表进行查询,若dvs1接收到的上述响应报文为非过滤性报文,则对上述响应报文进行传送,传送至对端主机b的dvr。

在网络通信系统中的对端主机b的虚拟机对响应报文进行封装,传送至对端主机b的第一交换机,由对端主机b的第一交换机传送响应报文至对端主机b的分布式虚拟路由器后,对端主机b的分布式虚拟路由器根据会话表,传送响应报文至对端主机b的第二交换机。

其中,对端主机b的dvr在接收到对端主机b的dvs1传送的响应报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对会话表进行查询,查询上述响应报文是否存在对应的会话表,在具体实现时,可以采用session表,session表用于记录转发信息,例如:五元组信息、nat信息、alg信息等。

其中,若对端主机b的dvr检测到存在上述响应报文对应的session表,则对端主机b的dvr直接查找对应的session表,根据已存有的五元组信息,实现快速转发至对端主机b的dvs2,同时更新相关数据。

在网络通信系统中的对端主机b的分布式虚拟路由器根据会话表,传送响应报文至对端主机b的第二交换机后,对端主机b的第二交换机对响应报文进行隧道封装,并进行标记,通过隧道转发至主端主机a。

其中,对端主机b的dvs2接收到上述响应报文后,对保存于dvs2的fdb表进行查询,若dvs2接收到的上述响应报文为非过滤性报文,则对上述报文进行隧道封装,并在上述响应报文的头部打标记,例如,可以在上述响应报文报头的字段中插入一个或一段可识别的字符,再经过预设的隧道转发至对端主机b中,该预设的隧道可以是vxlan隧道、gre隧道或者是其他能够进行报文转发的信息转发隧道。

在网络通信系统中的对端主机b的交换机对响应报文进行隧道封装,并进行标记,通过隧道转发至主端主机a后,网络通信系统中的主端主机a的接收路由器接收对端主机b转发的响应报文并传送至主端主机a的第一交换机,由主端主机a的第一交换机根据标记传送响应报文至主端主机a的分布式虚拟路由器。

其中,主端主机a设置有虚拟机、第一交换机、第二交换机、接收路由器和分布式虚拟路由器,在具体实现时,主端主机a可以设置有vm、dvs1、dvs2、接收路由器和dvr。

其中,主端主机a的路由器接收到对端主机b的dvs2传送的响应报文后, 先对该响应报文进行隧道封装解析,再对该响应报文进行识别,若识别上述响应报文具有上述标记,则传送至主端主机a的dvs1,由主端主机a的dvs1传送至主端主机a的dvr中;若识别上述响应报文不具有上述标记,则不进行传送。

在网络通信系统中的主端主机a的接收路由器接收对端主机b转发的响应报文并传送至主端主机a的第一交换机,由主端主机a的第一交换机根据标记传送响应报文至主端主机a的分布式虚拟路由器后,主端主机a的分布式虚拟路由器根据会话表,传送响应报文至主端主机a的第一交换机。

其中,主端主机a的dvr在接收到主端主机a的dvs1传送的响应报文后,根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对session表进行查询,查询上述响应报文是否存在对应的session表。

其中,若对端主机b的dvr检测到不存在上述响应报文对应的session表,则主端主机a控制主端主机a的dvr直接查找对应的session表,根据已存有的五元组信息,实现快速转发至主端主机a的dvs1,同时更新相关数据。

在网络通信系统中的主端主机a的分布式虚拟路由器根据会话表,传送响应报文至主端主机a的第一交换机后,主端主机a的第一交换机传送响应报文至主端主机a的虚拟机。

其中,主端主机a的dvs1在接收到主端主机a的dvr传送的响应报文后,对保存于dvs1的fdb表进行查询,若dvs1接收到的上述响应报文为非过滤性报文,则将响应报文传送至主端主机a的vm。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发系统,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,上述对端主机b还包括以下特征:所述对端主机b的接收路由器接收所述主端主机a转发的报文,解析所述隧道封装;所述对端主机b的接收路由器识别所述报文是否具有所述标记;若所述所述报文具有所述标记,则所述对端主机b的接收路由器传送所述报文至所述对端主机b的第一交换机,由所述对端主机b的第一交换机传送所述报文至所述对端主机b的分布式虚拟路由器。

具体地,在网络通信系统中的主端主机a的第二交换机对报文进行隧道封 装,并进行标记,通过隧道转发至对端主机b后,网络通信系统中的对端主机b的接收路由器接收主端主机a转发的报文,解析隧道封装。

在网络通信系统中的对端主机b的接收路由器接收主端主机a转发的报文,解析隧道封装后,对端主机b的接收路由器识别报文是否具有标记。

其中,对端主机b的路由器接收到主端主机a的dvs2传送的报文后,对该报文进行识别,例如:对报文报头的字段与预设的字段进行匹配,若成功匹配,则认为报文具有标记,否则,则认为报文不具有标记。

在网络通信系统中的对端主机b识别到报文具有标记后,对端主机b传送报文至对端主机b的第一交换机,由对端主机b的第一交换机传送报文至对端主机b的分布式虚拟路由器。

其中,对端主机b的路由器接收到主端主机a的dvs2传送的报文后,对该报文进行识别,若识别上述报文具有上述标记,则传送至对端主机b的dvs1,由对端主机b的dvs1传送至对端主机b对端主机b的dvr中;若识别上述报文不具有上述标记,则不进行传送。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发系统,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,上述主端主机a还包括以下特征:所述主端主机a的接收路由器接收所述对端主机b转发的响应报文,解析所述隧道封装;所述主端主机a的接收路由器识别所述响应报文是否具有所述标记;若所述响应报文具有所述标记,则所述主端主机a的接收路由器传送所述响应报文至所述主端主机a的第一交换机,由所述主端主机a的第一交换机传送所述响应报文至所述主端主机a的分布式虚拟路由器。

具体地,在网络通信系统中的对端主机b的第二交换机对响应报文进行隧道封装,并进行标记,通过隧道转发至主端主机a后,网络通信系统中的主端主机a的接收路由器接收对端主机b转发的响应报文,解析隧道封装。

在网络通信系统中的主端主机a的接收路由器接收对端主机b转发的响应报文,解析隧道封装后,主端主机a的接收路由器识别响应报文是否具有标记。

其中,主端主机a的路由器接收到对端主机b的dvs2传送的响应报文后, 对该响应报文进行识别,例如:对报文报头的字段与预设的字段进行匹配,若成功匹配,则认为报文具有标记,否则,则认为报文不具有标记。

在网络通信系统中的主端主机a识别到响应报文具有标记后,主端主机a传送响应报文至主端主机a的第一交换机,由主端主机a的第一交换机传送响应报文至主端主机a的分布式虚拟路由器。

其中,主端主机a的路由器接收到对端主机b的dvs2传送的响应报文后,对该响应报文进行识别,若识别上述响应报文具有上述标记,则传送至主端主机a的dvs1,由主端主机a的dvs1传送至主端主机a的dvr中;若识别上述响应报文不具有上述标记,则不进行传送。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发系统,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,上述主端主机a还包括以下特征:所述主端主机a的分布式虚拟路由器接收所述报文;所述主端主机a的分布式虚拟路由器检测所述报文是否存在对应的会话表;若不存在,则所述主端主机a的分布式虚拟路由器创建所述报文对应的会话表。

具体地,网络通信系统中的主端主机a的分布式虚拟路由器接收报文。

在网络通信系统中的主端主机a的分布式虚拟路由器接收报文后,主端主机a的分布式虚拟路由器检测报文是否存在对应的会话表。

其中,主端主机a的dvr根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对session表进行查询,查询上述报文是否存在对应的session表,session表用于记录转发信息,例如:五元组信息、nat信息、alg信息等。

若网络通信系统中的主端主机a的分布式虚拟路由器检测到所述报文不存在,则主端主机a的分布式虚拟路由器创建报文对应的会话表。

其中,主端主机a控制主端主机a的dvr创建上述报文对应的session表,该session表保存有五元组信息、alg信息和acl信息等,其中,alg信息用于识别本条流应用层协议流量,acl信息用于根据alg信息实现acl拦截或者放通;当有后续报文需要进行转发时,可以根据已存有的五元组信息, 通过直接查找对应的session表,实现快速转发至主端主机a的dvs2,同时更新相关数据。

其中,若主端主机a的dvr检测到所述报文存在,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至主端主机a的dvs2,同时更新相关数据。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发系统,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

进一步的,为了更好地通过分布式虚拟路由器对报文进行有状态转发,上述对端主机b还包括以下特征:所述对端主机b的分布式虚拟路由器接收所述报文;所述对端主机b的分布式虚拟路由器检测所述报文是否存在对应的会话表;若不存在,则所述对端主机b的分布式虚拟路由器创建所述报文对应的会话表。

具体地,网络通信系统中的对端主机b的分布式虚拟路由器接收报文。

在网络通信系统中的对端主机b的分布式虚拟路由器接收报文后,对端主机b的分布式虚拟路由器检测报文是否存在对应的会话表。

其中,对端主机b的dvr根据五元组(指源ip地址,源端口,目的ip地址,目的端口和传输层协议)对session表进行查询,查询上述报文是否存在对应的session表,session表用于记录转发信息,例如:五元组信息、nat信息、alg信息等。

若网络通信系统中的对端主机b的分布式虚拟路由器检测到所述报文不存在,则对端主机b的分布式虚拟路由器创建报文对应的会话表。

其中,对端主机b控制对端主机b的dvr创建上述报文对应的session表,该session表保存有五元组信息、alg信息和acl信息等,其中,alg信息用于识别本条流应用层协议流量,acl信息用于根据alg信息实现acl拦截或者放通;当有后续报文需要进行转发时,可以根据已存有的五元组信息,通过直接查找对应的session表,更新相关数据,从而实现快速转发至对端主机b的dvs2。

其中,若对端主机b的dvr检测到所述报文存在,则可以根据已存有的五元组信息,通过直接查找对应的session表,实现快速转发至对端主机b的 dvs2,同时更新相关数据。

通过上述方案,本发明提供了一种基于分布式虚拟路由器的报文转发系统,更好地实现了通过分布式虚拟路由器能够对报文进行有状态转发,进而更好地提高了网络信息传递的安全性。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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