路由确定方法、网络配置方法以及相关装置与流程

文档序号:11455664阅读:189来源:国知局
路由确定方法、网络配置方法以及相关装置与流程
本发明涉及通信领域,尤其涉及一种路由确定方法、网络配置方法以及相关装置。
背景技术
:随着虚拟化、云计算技术的成熟,数据中心内部的流量日益激增。在数据中心内,不同网段之间的数据报文均需要通过网关路由器转发,这样就大大增加了对网关路由器的压力。为了减小网关路由器的压力,现阶段的技术中在数据中心的节点中设置一个较为简单的内部路由器来(英文:innerrouter,缩写:ir),用于代替网关路由器对数据报文进行处理。这样,若报文源地址与报文目的ip地址处于同一个网关下,则该报文可以通过ir转发到目的ip地址处。但是,若报文源地址与报文目的ip地址并没有处于同一个网关下,例如报文源地址处于第一网关下,报文目的地地址处于第二网关下,则需要第一网关通过虚拟专用网络(英文:virtualprivatenetwork,缩写:vpn)隧道将该报文发送给第二网关,再由第二网关将该报文发送。报文经过vpn隧道转发意味着报文需要经过多次封装解封装,消耗大量的网络资源。且大量报文同时集中到网关时会造成vpn隧道拥堵,网关的东西向流量争抢南北向流量,引起网关的性能与可靠性瓶颈,导致整个网络的可用性降低。技术实现要素:本申请实施例提供了一种路由确定方法,可以缩短报文转发路径,减小网关路由器的压力。本申请还提出了一种网络配置方法、相关装置、计算设备和系统。本申请实施例第一方面提供了一种路由确定方法,适用于软件定义网络(英文:softwaredefinednetwork,缩写:sdn),其中sdn控制器和网络管理器(英文:networkmanager)均可以执行该路由确定方法,以sdn控制器为例:sdn控制器从源交换机处接收待转发报文的报文信息,该报文信息中至少包括待转发报文的目的ip地址,还可以包括源交换机接收该待转发报文的端口等信息。该待转发报文来自第一路由域,且该待转发报文的目的ip地址属于第二路由域。sdn控制器根据待转发报文的报文信息,确定待转发报文的转发信息,待转发报文的转发信息至少包括:待转发报文的目的ip地址对应的虚拟机的目的mac地址,源交换机发送待转发报文的转发端口和待转发报文的目的ip地址对应的虚拟机所在的网段的目的vni。sdn控制器根据待转发报文的转发信息生成目标流表,并将目标流表发送给源交换机,该目标流表中包括待转发报文的转发信息以及操作指示,该操作指示用于指示源交换机通过如下方式调整待转发报文:将待转发报文中的第一路由域对应的网关的mac地址修改为目的mac地址,并将目的vni添加到待转发报文。该操作指示还用于指示源交换机在完成了对待转发报文的调整后,在发送端口上发送该调整后的待转发报文。本申请提供的方法使得源交换机能够根据目标流表的指示,直接将待转发报文转发到目的ip地址,这样待转发报文就不需要经过网关的转发,缩短了报文转发路径,进而减少了报文封装解封装的次数,节约了网络资源,减小了网关路由器的压力,提升了sdn的可用性。若待转发报文的目的ip地址对应的虚拟机挂接在非源交换机上,则待转发报文的转发端口为源交换机的上行端口(英文:uplinkport),即可以将待转发报文通过该上行端口转发至源交换机与目的交换机之间的物理网络中,由物理网络根据待转发报文中携带的信息将待转发报文转发至目的交换机,其中,源交换机与待转发报文的目的地址所接入的交换机之间可以包括物理交换机等设备,但不包括网关。若待转发报文的目的ip地址对应的虚拟机挂接在源交换机上,则待转发报文的转发端口为源交换机的与目的ip地址对应的虚拟机对应的端口。可选的,sdn控制器在确定待转发报文的转发信息时,可以根据待转发报文的报文信息查找第一路由域的转发信息表。其中,第一路由域的转发信息表中包括第一目标表项,第一目标表项包括第二路由域的第一目的网段。sdn控制器根据第一目的网段包括待转发报文的目的ip地址,确定第一目的网段与带转发报文的目的ip地址匹配,进而获取第一目标表项。sdn控制器还根据第一目标表项的指示,跳转到第二路由域的转发信息表获取带转发报文的报文信息的匹配表项,并从匹配表项中获取待转发报文的转发信息。这样sdn控制器通过跳转不同路由域的转发信息表,获取了待转发报文的转发信息,使得待转发报文不需要经过网关转发,降低了网关的工作负担。可选的,sdn控制器还可以预先将第一目标表项添加到第一路由域的转发信息表中以供后续查找。可选的,第一目标表项可以包括第一条件信息字段和第一指示信息字段,第一条件信息字段中至少包括第一目的网段,还可以包括其它的条件信息;第一指示信息字段用于指示跳转到第二路由域的转发信息表。可选的,sdn控制器在待转发报文的报文信息满足第一条件信息字段中的所有条件时,获取第一目标表项。并根据第一指示信息字段的指示,跳转到第二路由域的转发信息表中获取待转发报文的报文信息的匹配表项。可选的,sdn控制器还可以根据用户指令或根据待转发报文,确定第二路由域或第二路由域的部分网段待与第一路由域互通。可选的,sdn控制器还可以预先向第一路由域的转发信息表中添加第二目标表项,第二目标表项包括第二条件信息字段和第二指示信息字段,第二条件信息字段至少包括第二路由域的第二目的网段,还可以包括其它条件信息。第二指示信息字段用于指示跳转到第三路由域的转发信息表;sdn控制器还可以预先向第三路由域的转发信息表中添加第三目标表项,第三目标表项包括第三条件信息字段和第三指示信息字段,第三条件信息字段至少包括第二路由域的第三目的网段,还可以包括其它条件信息。第三指示信息字段用于指示跳转到第二路由域的转发信息表。sdn控制器在接收到待转发报文的报文信息后,根据待转发报文的目的ip地址查找第一路由域的转发信息表。由于待转发报文的目的ip地址属于第二目的网段,因此sdn控制器确定第二目的网段与待转发报文的目的ip地址匹配,sdn控制器获取第二目标表项,并根据第二指示信息字段的指示跳转到第三路由域的转发信息表。由于待转发报文的目的ip地址属于第三目的网段,因此sdn控制器确定第三目的网段与待转发报文的目的ip地址匹配,sdn控制器获取第三目标表项,并根据第三指示信息字段的指示,跳转到第二路由域的转发信息表中获取待转发报文的匹配表项,然后从该匹配表项中获取待转发报文的转发信息。sdn控制器除了可以在三个路由域的转发信息表之间跳转,还可以在四个或四个以上的转发信息表之间跳转,此处不做赘述。可选的,第一至第三指示字段的形式均可以包括字符串、数字、指令中的一项或多项。可选的,sdn控制器还可以在第二路由域的转发信息表中确定一条或多条待添加表项,该一条或多条待添加表项对应第二路由域的待添加目的网段。其中,待转发报文的目的ip地址属于待添加目的网段,即待添加目的网段与待转发报文的目的ip地址匹配。sdn控制器将该一条或多条待添加表项添加到第一路由域的转发信息表中,这样sdn控制器在接收到待转发报文的报文信息后,就可以查找第一路由域的转发信息表,并根据待转发报文的目的ip地址获取匹配的待添加表项,然后从匹配的待添加表项中获取待转发报文的转发信息。本申请的第二方面提供了一种网络配置方法,适用于sdn,其中sdn控制器和网络管理器均可以执行该网络配置方法,此处仅以sdn控制器为例进行说明。该sdn中还包括目标主机,目标主机内部包括第一ir与第二ir。sdn控制器在第一ir上创建第一接口,并为第一接口分配第一ip地址;在第二ir上创建第二接口,并为第二接口分配第二ip地址。其中,第一ir用于替代第一路由域的网关来处理第一路由域的转发信息,第二ir用于替代第二路由域的网关来处理第二路由域的转发信息,第一ip地址不在第一路由域内,第二ip地址不在第二路由域内。sdn控制器在第一接口和第二接口之间创建网络连接,使得第一ir和第二ir可以通过该网络连接交换数据。sdn控制器还向第一ir的路由表中添加第一路由条目,其中包括第一目的地址字段和第一下一跳字段,其中,第一目的地址字段中包括第二路由域中的第二网段,第一下一跳字段中包括第二ip地址。这样,第一ir接收到来自第一路由域且目的ip地址属于第二网段的报文后,在查找第一ir的路由表表时能够获取到第一路由条目,并根据第一下一跳字段将该报文发送给第二ir,使得该报文能够通过第二ir转发。可以看出,sdn控制器通过配置主机中不同路由域对应的ir互通,使得不同路由域之间的报文可以在目标主机中通过多个ir进行转发,无需将报文交给网关转发,这样就能够缩短网络中报文的转发路径缩短,减少报文封装解封装的次数,节约网络资源,减小网关路由器的压力,提升sdn的可用性。可选的,sdn控制器还可以向第二ir的路由表中添加第二路由条目,其中包括第二目的地址字段和第二下一跳字段,其中,第二目的地址字段中包括第一路由域中的第一网段,第二下一跳字段中包括第一ip地址。这样,第二ir接收到来自第二路由域且目的ip地址属于第一网段的报文后,在查找第二路由域的转发信息表时能够获取到第二路由条目,并根据第二下一跳字段将该报文发送给第一ir,使得该报文能够通过第一ir转发。可选的,目标主机中包括的第一ir和第二ir均可以由sdn控制器来创建。可选的,第一ip地址和/或第二ip地址可以属于本地链路地址网段,即169.254网段。该网段一般不会被正常的网络业务使用到,将该网段的地址分配给第一接口和/或第二接口,能够保证第一ir和第二ir互通后正常网络业务的ip使用范围不会受到影响。可选的,sdn控制器通过将第一接口和第二接口通过以太接口对eth-pair互连,实现在第一接口和第二接口之间创建网络连接。可选的,目标主机中还包括虚拟交换机,sdn控制器通过将第一接口和第二接口加入该虚拟交换机,使得第一ir和第二ir可以通过该虚拟交换机交换数据,进而实现在第一接口和第二接口之间创建网络连接。可选的,sdn控制器在将第一接口和第二接口加入虚拟交换机时,可以将第一接口和第二接口加入该虚拟交换机中未使用的vlan中,以避免第一接口与第二接口对正常网络业务造成影响。可选的,目标主机中的虚拟交换机可以连接有多个本地虚拟机(英文:virtualmachine,缩写vm),sdn控制器在虚拟交换机连接的所有vm都部署于第一ir和第二ir时,才删除第一ir和第二ir。本申请的第三方面提供了一种报文转发方法,包括:源交换机获取待转发报文,并将待转发报文的报文信息发送给sdn控制器,其中待转发报文的报文信息包括待转发报文的目的ip地址,待转发报文来自第一路由域,且待转发报文的目的ip地址属于第二路由域;源交换机从sdn控制器处接收目标流表,该目标流表中包括待转发报文的转发信息以及操作指示,该待转发报文的转发信息中包括:目的mac地址、目的vni以及发送端口,其中,目的mac地址为待转发报文的目的ip地址对应的虚拟机的mac地址,目的vni为待转发报文的目的ip地址对应的虚拟机所在的网段的vni,发送端口为源交换机用于转发待转发报文的端口。目标流表中的操作指示用于指示源交换机通过如下方式调整待转发报文:将待转发报文中的第一路由域对应的网关的mac地址修改为目的mac地址,并将目的vni添加到待转发报文。该操作指示还用于指示源交换机在完成了对待转发报文的调整后,在发送端口上发送该调整后的待转发报文。源交换机根据目标流表的指示,转发待转发报文。本申请的第四方面提供了一种报文转发方法,包括:目标主机中的源交换机获取待转发报文,该待转发报文来自第一路由域,且该待转发报文的目的ip地址属于第二路由域;源交换机将该待转发报文发送给目标主机中的第一ir,第一ir用于替代第一路由域的网关来处理第一路由域的转发信息。第一ir的第一ir的路由表中包括第一路由条目,第一路由条目中包括第一目的地址字段和第一下一跳字段,第一目的地址字段中包括第二路由域中的第二网段,第一下一跳字段中包括第二ip地址,其中,第一网段包括待转发报文的目的ip地址,第二ip地址为目标主机中第二ir的第二接口的ip地址。第一ir根据待转发报文的目的ip地址,查找第一ir的路由表获取第一路由条目,并根据第一下一跳字段,将待转发报文发送给第二ir。第二ir接收到待转发报文后,查找第二ir的路由表获取待转发报文的转发路径,并根据待转发报文的转发路径转发给待转发报文。本申请的第五方面提供了一种路由确定装置,适用于sdn。该路由确定装置包括消息接收模块、信息确定模块和流表发送模块。其中,消息接收模块从源交换机处接收待转发报文的报文信息,该报文信息中至少包括待转发报文的目的ip地址,还可以包括源交换机接收该待转发报文的端口等信息。该待转发报文来自第一路由域,且该待转发报文的目的ip地址属于第二路由域。信息确定模块根据待转发报文的报文信息,确定待转发报文的转发信息。待转发报文的转发信息至少包括:待转发报文的目的ip地址对应的虚拟机的目的mac地址,源交换机发送待转发报文的转发端口和待转发报文的目的ip地址对应的虚拟机所在网段的目的vni。流表发送模块根据待转发报文的转发信息生成目标流表,并将目标流表发送给源交换机,该目标流表中包括待转发报文的转发信息以及操作指示,该操作指示用于指示源交换机通过如下方式调整待转发报文:将待转发报文中的第一路由域对应的网关的mac地址修改为目的mac地址,并将目的vni添加到待转发报文。该操作指示还用于指示源交换机在完成了对待转发报文的调整后,在发送端口上发送该调整后的待转发报文。本申请提供的路由确定装置使得源交换机能够根据待转发报文的转发信息,直接将待转发报文转发到目的ip地址,这样待转发报文就不需要经过网关的转发,缩短了报文转发路径,进而减少了报文封装解封装的次数,节约了网络资源,减小了网关路由器的压力,提升了sdn的可用性。可选的,信息确定模块在确定待转发报文的转发信息时,可以根据待转发报文的报文信息查找第一路由域的转发信息表。其中,第一路由域的转发信息表中包括第一目标表项,第一目标表项包括第二路由域的第一目的网段。信息确定模块根据第一目的网段包括待转发报文的目的ip地址,确定第一目的网段与带转发报文的目的ip地址匹配,进而获取第一目标表项。信息确定模块还根据第一目标表项的指示,跳转到第二路由域的转发信息表获取带转发报文的报文信息的匹配表项,并从匹配表项中获取待转发报文的转发信息。这样信息确定模块通过跳转不同路由域的转发信息表,获取了待转发报文的转发信息,使得待转发报文不需要经过网关转发。可选的,sdn控制器还可以表项添加模块,用于将第一目标表项添加到第一路由域的转发信息表中以供后续查找。可选的,第一目标表项可以包括第一条件信息字段和第一指示信息字段,第一条件信息字段中至少包括第一目的网段,还可以包括其它的条件信息;第一指示信息字段用于指示跳转到第二路由域的转发信息表。可选的,信息确定模块在待转发报文的报文信息满足第一条件信息字段中的所有条件时,获取第一目标表项。并根据第一指示信息字段的指示,跳转到第二路由域的转发信息表中获取待转发报文的报文信息的匹配表项。可选的,表项添加模块还可以预先向第一路由域的转发信息表中添加第二目标表项,第二目标表项包括第二条件信息字段和第二指示信息字段,第二条件信息字段至少包括第二路由域的第二目的网段,还可以包括其它条件信息。第二指示信息字段用于指示跳转到第三路由域的转发信息表;表项添加模块还可以预先向第三路由域的转发信息表中添加第三目标表项,第三目标表项包括第三条件信息字段和第三指示信息字段,第三条件信息字段至少包括第二路由域的第三目的网段,还可以包括其它条件信息。第三指示信息字段用于指示跳转到第二路由域的转发信息表。在消息接收模块接收到待转发报文的报文信息后,信息确定模块根据待转发报文的目的ip地址查找第一路由域的转发信息表。由于待转发报文的目的ip地址属于第二目的网段,因此信息确定模块确定第二目的网段与待转发报文的目的ip地址匹配,信息确定模块获取第二目标表项,并根据第二指示信息字段的指示跳转到第三路由域的转发信息表。由于待转发报文的目的ip地址属于第三目的网段,因此信息确定模块确定第三目的网段与待转发报文的目的ip地址匹配,信息确定模块获取第三目标表项,并根据第三指示信息字段的指示,跳转到第二路由域的转发信息表中获取待转发报文的匹配表项,然后从该匹配表项中获取待转发报文的转发信息。信息确定模块除了可以在三个路由域的转发信息表之间跳转,还可以在四个或四个以上的转发信息表之间跳转,此处不做赘述。可选的,第一至第三指示字段的形式均可以包括字符串、数字、指令中的一项或多项。可选的,sdn控制器还可以包括添加表项模块,用于在第二路由域的转发信息表中确定一条或多条待添加表项,该一条或多条待添加表项对应第二路由域的待添加目的网段。其中,待转发报文的目的ip地址属于待添加目的网段,即待添加目的网段与待转发报文的目的ip地址匹配。添加表项模块将该一条或多条待添加表项添加到第一路由域的转发信息表中,这样sdn控制器在接收到待转发报文的报文信息后,就可以查找第一路由域的转发信息表,并根据待转发报文的目的ip地址获取匹配的待添加表项,然后从匹配的待添加表项中获取待转发报文的转发信息。本申请的第六方面提供了一种网络配置装置,适用于sdn。该sdn中还包括目标主机,目标主机内部包括第一ir与第二ir。该sdn控制器具体包括接口创建模块、网络连接模块和路由添加模块。其中,接口创建模块在第一ir上创建第一接口,并为第一接口分配第一ip地址;在第二ir上创建第二接口,并为第二接口分配第二ip地址。其中,第一ir用于替代第一路由域的网关来处理第一路由域的转发信息,第二ir用于替代第二路由域的网关来处理第二路由域的转发信息,第一ip地址不在第一路由域内,第二ip地址不在第二路由域内。网络连接模块在第一接口和第二接口之间创建网络连接,使得第一ir和第二ir可以通过该网络连接交换数据。路由添加模块向第一ir的路由表中添加第一路由条目,其中包括第一目的地址字段和第一下一跳字段,其中,第一目的地址字段中包括第二路由域中的第二网段,第一下一跳字段中包括第二ip地址。这样,第一ir接收到来自第一路由域且目的ip地址属于第二网段的报文后,在查找第一ir的路由表表时能够获取到第一路由条目,并根据第一下一跳字段将该报文发送给第二ir,使得该报文能够通过第二ir转发。可以看出,sdn控制器通过配置主机中不同路由域对应的ir互通,使得不同路由域之间的报文可以在目标主机中通过多个ir进行转发,无需将报文交给网关转发,这样就能够缩短网络中报文的转发路径缩短,减少报文封装解封装的次数,节约网络资源,减小网关路由器的压力,提升sdn的可用性。可选的,路由添加模块还可以向第二ir的路由表中添加第二路由条目,其中包括第二目的地址字段和第二下一跳字段,其中,第二目的地址字段中包括第一路由域中的第一网段,第二下一跳字段中包括第一ip地址。这样,第二ir接收到来自第二路由域且目的ip地址属于第一网段的报文后,在查找第二路由域的转发信息表时能够获取到第二路由条目,并根据第二下一跳字段将该报文发送给第一ir,使得该报文能够通过第一ir转发。可选的,sdn控制器还可以包括ir管理模块,用于在目标主机不包括第二ir时,在目标主机中创建第二ir。可选的,第一ip地址和/或第二ip地址可以属于本地链路地址网段,即169.254网段。该网段一般不会被正常的网络业务使用到,将该网段的地址分配给第一接口和/或第二接口,能够保证第一ir和第二ir互通后正常网络业务的ip使用范围不会受到影响。可选的,网络连接模块通过将第一接口和第二接口通过以太接口对eth-pair互连,实现在第一接口和第二接口之间创建网络连接。可选的,目标主机中还包括虚拟交换机,网络连接模块通过将第一接口和第二接口加入该虚拟交换机,使得第一ir和第二ir可以通过该虚拟交换机交换数据,进而实现在第一接口和第二接口之间创建网络连接。可选的,网络连接模块在将第一接口和第二接口加入虚拟交换机时,可以将第一接口和第二接口加入该虚拟交换机中未使用的vlan中,以避免第一接口与第二接口对正常网络业务造成影响。可选的,目标主机中的虚拟交换机可以连接有多个本地vm,ir管理模块还用于在虚拟交换机连接的所有vm都部署于第一ir和第二ir时,删除第一ir和第二ir。本申请的第七方面提供了一种报文转发装置,适用于sdn中的主机。该报文转发装置包括:报文获取模块,用于获取待转发报文,并将待转发报文的报文信息发送给sdn控制器,其中待转发报文的报文信息携带待转发报文的目的ip地址,待转发报文来自第一路由域,且待转发报文的目的ip地址属于第二路由域;流表接收模块,用于从sdn控制器处接收目标流表,该目标流表中包括待转发报文的转发信息以及操作指示,该待转发报文的转发信息中包括:目的mac地址、目的vni以及发送端口,其中,目的mac地址为待转发报文的目的ip地址对应的虚拟机的mac地址,目的vni为待转发报文的目的ip地址对应的虚拟机所在网段的vni,发送端口为源交换机用于转发待转发报文的端口。目标流表中的操作指示用于指示源交换机通过如下方式调整待转发报文:将待转发报文中的第一路由域对应的网关的mac地址修改为目的mac地址,并将目的vni添加到待转发报文。该操作指示还用于指示源交换机在完成了对待转发报文的调整后,在发送端口上发送该调整后的待转发报文。报文转发模块,用于根据目标流表的指示,转发待转发报文。本申请的第八方面提供了一种报文转发装置,适用于sdn中的主机。该报文转发装置包括:虚拟交换机、第一ir和第二ir。其中,虚拟交换机用于获取待转发报文,并将该待转发报文发送给目标主机中的第一ir,该待转发报文来自第一路由域,且该待转发报文的目的ip地址属于第二路由域。该第一ir用于替代第一路由域的网关来处理第一路由域的转发信息。第一ir的第一ir的路由表中包括第一路由条目,第一路由条目中包括第一目的地址字段和第一下一跳字段,第一目的地址字段中包括第二路由域中的第二网段,第一下一跳字段中包括第二ip地址,其中,第一网段包括待转发报文的目的地址,第二ip地址为目标主机中第二ir的第二接口的ip地址。第一ir用于:根据待转发报文的目的ip地址,查找第一ir的路由表获取第一路由条目,并根据第一下一跳字段,将待转发报文发送给第二ir。第二ir用于:在接收到待转发报文后,查找第二ir的路由表获取待转发报文的转发路径,并根据待转发报文的转发路径转发给待转发报文。本申请的第九方面提供了一种计算设备,包括处理器、存储器和通信接口。通过调用所述存储器中的指令,该处理器用于执行本申请的第一方面提供的路由确定方法。本申请的第十方面提供了一种计算设备,包括处理器、存储器和通信接口。通过调用所述存储器中的指令,该处理器用于执行本申请的第二方面提供的网络配置方法。本申请的第十一方面提供了一种计算设备,包括处理器、存储器和通信接口。通过调用所述存储器中的指令,该处理器用于执行本申请的第三方面提供的报文转发方法。本申请的第十二方面提供了一种计算设备,包括处理器、存储器和通信接口。通过调用所述存储器中的指令,该处理器用于执行本申请的第四方面提供的报文转发方法。本申请的第十三方面提供了一种网络系统,包括本申请第九方面提供的计算设备以及至少一个第十一方面提供的计算设备,或包括第十方面提供的计算设备以及至少一个第十二方面所提供的计算设备。附图说明图1为现阶段技术中网络逻辑架构示意图;图2为现阶段的技术中网络实体架构示意图;图3(a)为传统方法中同一路由域的报文转发路径示意图;图3(b)为通过ir实现的同一路由域的报文转发路径示意图;图4为传统方法中不同路由域之间的报文转发路径示意图;图5为sdn的逻辑架构示意图;图6为本发明实施例中计算设备的结构图;图7(a)为本发明实施例中路由确定方法的流程图;图7(b)为本发明实施例中不同路由域之间的报文的一个转发路径示意图;图8(a)为本发明实施例中网络配置方法的流程图;图8(b)为本发明实施例中不同路由域之间的报文的另一个转发路径示意图;图9为本发明实施例中路由确定装置的结构图;图10为本发明实施例中网络配置装置的结构图。具体实施方式本发明实施例提供了一种路由确定方法,可以缩短报文转发路径,减小网关路由器的压力。本发明还提出了一种网络配置方法以及相关装置,以下将分别进行说明。现阶段技术中的网络基本逻辑架构请参阅图1。其中,s1~s6分别表示不同的网段(英文:subnet),第一网关与第二网关为网关路由器。网段s1、s2、s6挂接在第一网关上,第一网关负责网段s1、s2、s6之间的互通以及网段s1、s2、s6与外部网络的通信。为了便于描述,本申请中将一个网关以及其下挂接的所有网段的集合统称为路由域。因此图1中,第一网关、s1、s2、s6均属于第一路由域。同样的,网段s3、s4、s5挂接在第二网关上,第二网关与s3、s4、s5均属于第二路由域。其中,第一网关与第二网关之间建立有vpn隧道,第一路由域与第二路由域之间交互的数据均经过该vpn隧道。上一段描述的内容为网络的逻辑部署,在实际应用中搭建的网络实体架构请参阅图2。具体的,互连网络包括网关与多个主机,图2中仅以第一网关、第二网关、第一主机与第二主机为例进行说明。每个主机上部署有多个虚拟机(英文:virtualmachine,缩写:vm),并部署有虚拟交换机(英文:virtualswitch,缩写:vswitch)来实现vm之间的互通以及vm与外部网络的通信。不同的主机之间还可以通过物理交换机(英文:topofrank,缩写:tor)(图未示)来交换数据。其中,第一主机上的第一vswitch(以下简称第一交换机)下挂接有vm1、vm2、vm3,其中vm1与vm2属于s1,vm3属于s3。第二主机上的第二vswitch(以下简称第二交换机)下挂接有vm4、vm5、vm6,其中vm4与vm5属于s2,vm6属于s3。第一交换机和第二交换机均与第一网关和第二网关相连。其中,图3(a)所示的网关路由器与主机之间的连接关系仅为逻辑上的连接关系,网关路由器可以由网络中独立的设备来担任,也可以由主机中的vm等对象来担任。在传统的方法中,当vm1需要向vm5发送报文时,由于vm1与vm5属于第一路由域中的不同网段,因此报文需要经过网关的转发,其报文转发的具体路径请参阅图3(a):vm1将报文上发给第一交换机网段,由第一交换机将报文上发给第一网关,再由第一网关转发给第二交换机。第二交换机接收到报文后,根据报文携带的目的ip地址,将报文发送至vm5。从图3(a)中可以看出,同一路由域不同网段之间的报文需要提交到网关进行转发,报文转发路径较长。为此现阶段的技术提出了各种改进方法,例如:在主机内部设置一个较为简单的路由器来代替网关对本地报文进行处理,本申请中称之为内部路由器。ir可以是主机内部的物理实体,也可以是虚拟实体,如由vm、容器(英文:docker)、linux命名空间(英文:namespace)等来担任。通过ir来实现同一路由域不同网段的报文转发的方法请参阅图3(b):第一主机内部设置有第一ir,第一ir用于代替第一网关处理第一主机中第一路由域的报文转发信息。第一ir对应有路由表,第一路由域的报文转发信息均记录在该路由表中。vm1向第一交换机发送待转发报文,该报文的目的为vm5。第一交换机接收到待转发报文后,不是将该报文发送给第一网关,而是将该报文发送给第一ir。第一ir接收到待转发报文后,在第一ir对应的路由表中查找匹配路由条目,并根据查找结果将报文转发给第二交换机,由第二交换机将报文发送至vm5。这样vm1与vm5之间的报文就不需要经过第一网关转发,缩短了报文的转发路径,提高了报文的转发效率,且可以减少对第一网关的带宽占用。上面介绍的是同一路由域内的报文转发方法,下面将介绍不同路由域之间的报文转发方法,请参阅图4。若vm1要向vm6发送报文,则由于vm1所在的s1属于第一路由域,vm6所在的s3属于第二路由域,因此第一ir在接收到待发送到vm6的报文后不能直接转发给第二交换机。第一ir需要上发给第一网关,并由第一网关通过vpn隧道发送给第二网关,然后由第二网关发送至第二交换机。从图4中可以看出,现阶段的技术中,第一路由域的报文需要通过网关之间的vpn隧道才能到达第二路由域。这样在第一路由域与第二路由域需要交换大量报文的时候会产生很多问题。例如,经过网关转发的报文需要经过多次封装解封装,封装解封装的过程会消耗大量的网络资源。且大量报文同时集中到网关时会造成vpn隧道拥堵,网关的东西向流量争抢南北向流量,引起网关的性能与可靠性瓶颈,导致整个网络的可用性降低。针对上一段所述的问题,本发明提出了改进的方法,适用于软件定义网络。sdn是一种新型的虚拟化网络,通过将网络设备控制面与数据面分离开来,实现了网络流量的灵活控制,使网络作为管道变得更加智能。本发明提供的方案具体适用于sdn控制器或网络管理器,本发明中的sdn控制器可以指代sdn控制器、或网络管理器、或集成了sdn控制器和网络管理器的单元。sdn的逻辑架构请参阅图5,包括sdn控制器,用于对sdn中的设备进行控制管理。该sdn控制器可以是独立的装置或设备,也可以以vm的形式部署在各主机中;sdn中可以具有一个sdn控制器,也可以将sdn控制器的功能分布在多个节点上,此处不做限定。sdn中还包括多个主机,本发明中仅以第一主机和第二主机为例进行说明。其中,sdn控制器负责根据用户的指示信息以及sdn网络拓扑,确定待转发报文的转发规则,并将确定的转发规则以流表的形式通知sdn中的主机。sdn控制器可以由图6所示的计算设备600实现。计算设备600的组织结构包括处理器602、存储器604,还可以包括总线608、通信接口606。其中,处理器602、存储器604和通信接口606可以通过总线608实现彼此之间的通信连接,也可以通过无线传输等其他手段实现通信。存储器604存储器可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-onlymemory,缩写:rom),快闪存储器(英文:flashmemory),硬盘(英文harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd);存储器604还可以包括上述种类的存储器的组合。用于实现本发明的程序代码可以保存在存储器604中,并由处理器602来执行。用于实现本发明的第一转发信息表、第二转发信息表和第三转发信息表可以保存在存储器604中,并由处理器602在执行时使用。计算设备600通过通信接口606获取待转发报文的报文信息,并通过通信接口606发送流表或指令。处理器602可以为中央处理器(英文:centralprocessingunit,缩写:cpu)。通过访问存储器604中的程序代码,处理器602可以接收待转发报文的报文信息,并根据待转发报文的报文信息确定待转发报文的转发信息,并通过流表将待转发报文的转发信息发送给发送待转发报文的报文信息的交换机,其中待转发报文的转发信息中包括待转发报文的目的mac地址、发送端口和目的vni。根据待转发报文的报文信息确定待转发报文的转发信息的方法有多种,处理器602可以预先向第一路由域的转发信息表中添加第一目标表项,这样处理器602在接收到待转发报文的报文信息后,就可以根据待转发报文的报文信息从第一路由域的转发信息表获取第一目标表项,然后第一目标表项的指示,跳转到第二路由域的转发信息表中获取待转发报文的报文信息的匹配表项,再从获取待转发报文的报文信息的匹配表项中获取待转发报文的转发信息。或者,处理器602可以预先向第一路由域的转发信息表中添加第二目标表项,向第三路由域的转发信息表中添加第三目标表项。这样处理器602在接收到待转发报文的报文信息后,就可以根据待转发报文的报文信息从第一路由域的转发信息表获取第二目标表项,然后第二目标表项的指示跳转到第三路由域的转发信息表,在第三路由域的转发信息表中获取第三目标表项,并根据第三目标表项跳转到中获取待转发报文的报文信息的匹配表项,再从获取待转发报文的报文信息的匹配表项中获取待转发报文的转发信息。又或者,处理器602可以预先将第二路由域的转发信息表中的部分表项添加到第一路由域的转发信息表中,这样处理器602能够根据待转发报文的报文信息,直接在第一路由域的转发信息表中获取待转发报文的转发信息。处理器602通过访问存储器604中的程序代码,还可以在目标主机中的第一ir上创建第一接口,并为第一接口分配第一互联网协议(英文:internetprotocol,缩写:ip)地址,在第二ir上创建第二接口(若目标主机中没有第二ir,则创建第二ir),并为第二接口分配第二ip地址,然后在第一接口与第二接口之间创建网络连接。之后,向第一ir的路由表中添加第一路由条目,第一路由条目中的第一目的地址字段为第二路由域的第二网段,第一下一跳字段为第二ip地址。可选的,处理器602还可以向第二ir的路由表中添加第二路由条目,第二路由条目中的第二目的地址字段为第一路由域的第一网段,第二下一跳字段为第一ip地址。在确定目标主机的虚拟交换机上没有挂接任何属于第一路由域或第二路由域的vm时,删除第一ir与第二ir。本发明还提供了一种路由确定方法,图5和图6中的sdn控制器在运行时执行该方法,以使得不同路由域之间的报文能够不经过网关实现互通。其中,sdn控制器可以将整个第一路由域和整个第二路由域都互通起来,但也可以仅将第一路由域与第二路由域中的部分网段互通。本实施例中仅以网段s1与网段s3互通为例进行说明。其流程请参阅图7(a)所示:701、sdn控制器确定网段s1与网段s3待互通。其中s1属于互连网络中的第一路由域,s3属于第二路由域。其中,为了保证互通后s1中的报文能够正确到达s3,第一路由域应不包括s3。可选的,为了保证互通后s3中的报文能够正确到达s1,第二路由域可以不包括s1。其中,sdn控制器可以根据用户指令,确定s1与s3待互通。702、sdn控制器向第一转发信息表中添加第一目标表项。作为sdn的管理设备,sdn控制器管理多个转发信息表,每个转发信息表对应着一个路由域,且每个转发信息表中包括多条表项,这些表项记录了对应路由域内的转发信息。本实施例中将第一路由域对应的转发信息表称为第一转发信息表,将第二路由域对应的转发信息表称为第二转发信息表,将第三路由域对应的转发信息表称为第三转发信息表。sdn控制器中的转发信息表的形式有很多,具体的,每条表项都可以包括条件信息字段与转发信息字段。其中,条件信息字段中记录有目的ip地址,还可以记录有其它条件信息。转发信息字段用于记录转发信息,具体可以记录目的ip地址对应的下一跳等三层转发信息,三层转发信息可以为路由域的标识,sdn控制器可以进一步通过三层转发信息获取目的ip地址对应的发送端口、介质访问控制层(英文:mediaaccesscontrol,缩写:mac)地址、虚拟网标识(英文:virtualnetworkidentifier,缩写:vni)、虚拟可扩展局域网隧道终端(英文:virtualextensiblelocalareanetworktunnelingendpoint,缩写:vtep)标识等转发信息。转发信息字段也可以直接记录目的ip地址对应的发送端口、mac地址、vni、vtep标识等转发信息。转发信息表的一种形式的示例如表1所示。sdn控制器可以根据待转发报文的目的ip地址,顺序查找表1获取待转发报文的转发信息。若表1中其它表项均不与待转发报文的目的ip地址匹配,则sdn控制器确定待转发报文匹配到默认表项,获取到网关信息,该网关信息用于指示将待转发报文发送到网关。转发信息表还可以为其它的形式,此处不做限定。条件信息转发信息目的ip地址1转发信息1目的ip地址2转发信息2............默认表项网关信息表1现阶段的技术中,假设s1中的vm1要向s3中的vm6发送待转发报文,则vm1挂接的第一交换机接收到待转发报文,并将该待转发报文的信息发送给sdn控制器,该待转发报文的信息包括第一交换机接收该待转发报文的端口以及该待转发报文的目的ip地址等信息。sdn控制器接收到该待转发报文的信息后,根据该待转发报文的信息中的端口信息确定该待转发报文属于第一路由域,就确定查找第一转发信息表。可以理解的,由于该待转发报文的目的ip地址属于第二路由域的s3网段,因此第一转发信息表中无法查找到该待转发报文的转发信息。sdn控制器确定该待转发报文需要通过第一网关转发,并通过流表告知第一交换机将待转发的报文发送给第一网关。本发明中,sdn控制器向第一转发信息表中添加了第一目标表项。与第一转发表中已有的其它表项不同,第一目标表项用于指示跳转到第二转发信息表中查找待转发报文的匹配表项。可选的,第一目标表项中可以包括第一条件信息字段,用于描述获取第一目标表项所需要满足的条件,其中至少包括属于第二路由域的第一目的网段(英文:destination,或称为dest)。第一目的网段为一段连续的地址,可选的,由于本实施例中将s1与s3互通,因此第一目的网段可以包括网段s3。例如,若第一转发信息表为路由表的形式,则第一目标表项的第一条件信息字段可以由目的地址字段来担任,且该目的地址字段填写有网段s3的ip地址段。第一条件信息字段中除了第一目的网段之外还可以包括其它条件,也可以为除了路由表之外的其它形式(如三元组、五元组的形式),此处不做限定。其中,sdn控制器只有在确定待转发报文满足第一条件信息字段中的全部条件时,才能够获取第一目标表项。可选的,第一目标表项中还可以包括第一指示信息字段,用于指示跳转到第二转发信息表。第一指示信息字段可以是预置的数字、字符串或其他形式,下面仅以字符串为例进行说明:sdn控制器中预先设置好不同字符串与不同操作之间的对应关系,并将查找第二转发信息表的操作对应的字符串填写在第一指示信息字段中。这样当sdn控制器获取第一目标表项后,就可以根据第一指示信息字段的字符串确定执行查找第二转发信息表的操作。此外,第一指示信息字段也可以为指令的形式(如action指令的形式),该指令指示跳转到第二转发信息表,使得sdn控制器在获取了第一目标表项后,无需根据数字或字符串与操作的对应关系来确定需要执行的操作,直接执行第一指示信息字段中的执行即可。添加了第一目标表项的第一转发信息表的形式的一个示例请参阅表2,值得注意的是,第一目标表项需要添加在默认表项之前,以保证sdn控制器在查找第一转发信息表时,能够优先查找到第一目标表项,其次再查找到默认表项。条件信息转发信息目的ip地址1转发信息1目的ip地址2转发信息2............第一条件信息字段第一指示信息字段............默认表项网关信息表2若sdn控制器在查找第一转发信息表时获取了第一目标表项,则根据该第一目标表项跳转到第二转发信息表查找匹配表项。具体的跳转方法请参阅步骤703至709:703、vm1向第一交换机发送第一报文,第一报文的目的ip地址为vm6的ip地址。第一交换机接收该第一报文。其中,vm1属于第一路由域中的s1网段,vm6属于第二路由域中的s3网段。可选的,第一报文中还可以携带有第一网关的mac地址。可选的,第一交换机中还可以保存有该交换机自身的各个端口与网段的对应关系,这样第一交换机就可以根据自身接收该第一报文的端口,确定第一报文来自s1网段,并向第一报文中添加s1网段的vni。第一交换机接收到第一报文后,需要向sdn控制器请求流表,以便获取第一报文的转发信息。704、第一交换机将第一报文的报文信息发送给sdn控制器,以向sdn控制器请求流表以便获取第一报文的转发信息。sdn控制器接收该第一报文的报文信息。其中,第一交换机可以将第一报文和接收该第一报文的端口的信息作为第一报文的报文信息直接发送给sdn控制器,也可以将接收该第一报文的端口、目的ip地址等摘要信息作为第一报文的报文信息发送给sdn控制器。但无论第一报文的报文信息是什么形式,都需要包括目的ip地址信息,使得sdn控制器能够根据第一报文的报文信息,确定第一报文的目的ip地址。705、sdn控制器根据第一报文的报文信息,查找第一转发信息表。其中,sdn控制器可以根据第一报文的报文信息中,第一交换机接收该第一报文的端口的信息或其它信息确定第一报文来自第一路由域,因此确定查找第一转发信息表。由于第一报文的目的ip地址属于网段s3,因此第一报文的目的ip地址与第一目的网段匹配,sdn控制器通过查找第一转发信息表,可以获取到第一目标表项。706、sdn控制器根据第一目标表项的指示,在第二转发信息表中查找第一报文的匹配表项。其中,由于第二转发信息表记录了第二路由域内的转发信息,因此sdn控制器能够通过在第二转发信息表中查找匹配表项来获取第一报文的转发信息。707、sdn控制器从第一报文的匹配表项中获取第一报文的转发信息。sdn控制器在第二转发信息表中查找到了第一报文的匹配表项后,就可以从该匹配表项中获取源交换机用于转发第一报文的转发信息,第一报文的转发信息应至少包括:目的mac地址、目的vni、以及第一报文的发送端口。其中,目的mac地址为第一报文的目的ip地址对应的vm的mac地址,具体应该为vm6的mac地址;目的vni为第一报文的目的ip地址对应的vm所在的网段的vni,具体应该为s3网段的vni;第一报文的发送端口用于表示第一交换机用于发送第一报文的端口。可选的,若vm1与vm6间通过虚拟可扩展局域网(英文:virtualextensiblelocalareanetwork,缩写:vxlan)通信,则该匹配表项还包括目的vtep标识。本实施例中以vm1与vm6位于不同的主机中为例进行说明,因此第一报文的发送端口为上行端口,第一交换机可以通过该上行端口将第一报文发送给其它交换机(包括第二交换机)。但是在实际应用中,发送第一报文的vm与第一报文的目的ip地址对应的vm可能挂接在同一交换机下(相当于vm6与vm1同时位于第一主机中,vm6也挂接在第一交换机下)。在这种情况下,第一报文的发送端口不为上行端口,而是第一交换机与vm6通信的端口。需要说明的是,从第二转发信息表中获取的第一报文的匹配表项获取第一报文的转发信息的过程可以有多种实现方式。例如:第一报文的匹配表项中直接记录了待转发报文的转发信息。再例如,第一报文的匹配表项中记录了第二路由域的标识,则sdn控制器根据获取的第二路由域的标识,根据第一报文的报文信息,在第二路由域的标识对应的路由信息表中查询到第一报文的转发信息,这种实现方式中,每一个路由域均有对应的路由信息表。708、sdn控制器根据第一报文的转发信息生成目标流表发送给第一交换机,该目标流表中包括第一报文的转发信息以及操作指示,该操作指示用于指示第一交换机调整第一报文,然后将调整后的第一报文从发送端口上转发。具体的调整操作包括:将第一报文中携带的第一网关的mac地址修改为转发信息中的目的mac地址,并向第一报文中添加目的vni(若在步骤703中执行了向第一报文中添加s1网段的vni的步骤,则将第一报文中的s1网段的vni更换为目的vni)。一种可选的实现方式中,sdn控制器从获取了第一报文的转发信息后,还生成了操作指示,并将根据操作指示与转发信息生成目标流表,例如modify:目的mac地址,modify:目的vni,transmit:第一报文的发送端口。则第一交换机接收到目标流表后,根据操作指示与转发信息执行对第一报文的调整,并将调整后的第一报文从发送端口发送出去。可选的,由于sdn控制器此时已知待互通的网段,sdn控制器还可以生成第二交换机对应的匹配流表,并将该匹配流表发送至第二交换机,以使得s3网段上的报文需要发送至s1网段时,可以在第二交换机上匹配到该匹配流表,将该报文转发至第一交换机。该匹配流表可以包括多个流表,且sdn控制器向第二交换机发送匹配流表可以在向第一交换机发送目标流表的之前或之后,或与向第一交换机发送目标流表同步执行。709、第一交换机根据目标流表调整并转发第一报文。第一交换机根据目标流表调整第一报文,并在完成了对第一报文的调整后,从第一报文的发送端口上转发调整后的第一报文。可选的,若步骤707中还获取了目的vtep标识,则第一交换机还将该目的vtep标识添加到第一报文中。其中,第一交换机的上行端口通过物理交换机与多个其它交换机相联,该物理交换机可以根据第一报文的中的目的mac地址与目的vni,确定将调整后的第一报文发送给第二交换机。于是物理交换机直接将调整后的第一报文发送给第二交换机。第二交换机接收该调整后的第一报文。可以看出,第一报文的整个转发路径中,并没有经过网关。710、第二交换机将第一报文发送给vm6。第二交换机根据第一报文的中的目的mac地址与目的vni,将第一报文发送给vm6。值得指出的是,步骤701、702与步骤703、704之间没有特定的顺序,只要步骤702位于步骤705之前即可。此外,步骤701为可选步骤,sdn控制器可以不执行步骤701。例如,sdn控制器可以在步骤703和704后,根据第一报文的目的ip地址确定s3待与第一路由域相通,再执行步骤702,然后依次执行步骤705至710。此外,步骤702为可选步骤。例如,若第一转发表中已经预置有第一目标表项,则步骤701与步骤702均可以省略。可选的,本发明提供的方法不仅适用于sdn控制器在两个路由域的转发信息表之间跳转查询,还可以适用于sdn控制器在多个路由域之间跳转查询,如从第一转发信息表跳转到第三转发信息表后,再跳转到第二转发信息表。具体的,步骤701、702、705、706可以被替换为如下步骤:sdn控制器可以向第一转发信息表中添加第二目标表项,向第三转发信息表中添加第三目标表项,第二目标表项中包括第二条件信息字段,用于描述获取第二目标表项所需要满足的条件,其中至少包括属于第二路由域的第二目的网段。第二目标表项中还包括第二指示信息字段,用于指示跳转到第三转发信息表。第三目标表项中包括第三条件信息字段,用于描述获取第三目标表项所需要的条件,其中至少包括属于第二路由域的第三目的网段。第三目标表项中还包括第三指示信息字段,用于指示跳转到第二转发信息表。sdn控制器根据第一报文的目的ip地址查找第一转发信息表。其中第一报文的目的ip地址属于第二目的网段,故sdn控制器获取第二目标表项,并根据第二目标表项中的第二指示信息字段跳转到第三转发信息表进行查询。其中第一报文的目的ip地址属于第三目的网段,故sdn控制器获取第三目标表项,并根据第三目标表项中的第三指示信息字段跳转到第二转发信息表中查找第一报文的匹配表项。其中,第二目的网段可以与第三目的网段相同、或包括第三目的网段、或属于第三目的网段、或与第三目的网段部分重叠。但是无论第二目的网段与第三目的网段之间是何关系,第二目的网段与第三目的网段都需要包括第一报文的目的ip地址。可选的,sdn控制器也可以通过其它方式确定待转发报文的转发信息。例如,sdn控制器可以将第二转发信息表中对应待添加目的网段的表项预先添加到第一转发信息表中。其中,待添加目的网段与第一至第三目的网段可以相同或(全部或部分)重叠,只要待添加目的网段包括第一报文的目的ip地址即可。具体的,由于sdn控制器确定网段s1与网段s3待互通,因此sdn控制器将s3作为待添加目的网段,确定第二转发信息表中记录了网段s3相关的转发信息的表项为待添加的表项,并将这些待添加的表项添加到第一转发信息表中。之后,sdn控制器在接收了第一报文的报文信息,并在第一转发信息表中查找匹配表项。可以理解的,由于第一报文的目的ip地址属于s3,因此sdn控制器会在第一转发信息表添加的表项中直接查找到匹配表项,进而获取第一报文的转发信息。可选的,在将待添加的表项添加到第一转发信息表中时,可以通过前缀等方式在第一转发信息表中注明待添加的表项对应第二路由域。从步骤701~710可以看出,sdn控制器向交换机发送新的流表指示不同路由域之间的报文的转发信息,使得不同路由域之间的报文可以由源交换机通过不包含网关的路径发送至目的交换机或目的vm,这样就缩短了报文转发路径,进而减少了报文封装解封装的次数,节约了网络资源。且本发明使得不同路由域之间的报文无需经过网关转发,能够减小网关路由器的压力,提升sdn的可用性。以上提供的场景描述了第一交换机接收到待转发报文后,将待转发报文的报文信息上报给sdn控制器以获取目标流表。实际使用中,除了这一场景,还可能出现以下场景:sdn控制器根据用户的配置或指令确定第一待互通网段以及第二待互通网段,第一待互通网段和第二待互通网段分别属于不同路由域。此时,sdn控制器可以根据第一转发信息表生成第二待互通网段的各个目的ip地址对应的目标流表,并将这些目标流表发送至第一交换机,以使得第一交换机后续接收到第二待互通网段的各个目的ip地址对应的待转发报文时,可以直接处理。而且,sdn控制器可以根据第二转发信息表生成第一待互通网段的各个目的ip地址对应的目标流表,并将这些目标流表发送至第二交换机,以使得第二交换机后续接收到第一待互通网段的各个目的ip地址对应的待转发报文时,可以直接处理。本场景中,sdn控制器预先将待互通的网段对应的目标流表发送至对应的交换机中,减少了待互通的网段在后续报文的转发过程中向sdn控制器请求目标流表的过程,进一步提升了报文转发效率。图7所示的方法中,交换机向sdn控制器请求流表,并根据请求到的流表转发报文,以实现不同路由域之间的报文互通。除此之外,本发明还提供了一种网络配置方法,用于对主机进行配置,使得主机能够直接转发不同路由域之间的报文。该方法适用于sdn控制器或网络管理器,本发明仅以sdn控制器为例进行描述。图5和图6中的sdn控制器在运行时执行该方法,其具体流程请参阅图8(a),包括:801、sdn控制器确定第一主机上网段s1与网段s3待互通。其中,s1属于互连网络中的第一路由域,s3属于第二路由域。为了保证s1与s3能够正确互通,第一路由域中不包括s3,第二路由域中不包括s1。其中,第一主机中至少包括第一ir与第二ir,第一ir用于代替第一网关处理第一主机上第一路由域相关的转发信息,第一ir对应有路由表,其中记录了第一路由域相关的转发信息。类似的,第二ir用于替代第二网关处理第一主机上第二路由域相关的转发信息,第二ir对应有路由表,其中记录了第一路由域相关的转发信息。可选的,第一主机中包括第一交换机,若第一交换机上没有挂接第一路由域中的vm,则第一主机中也可以原本不包括第一ir,由sdn控制器创建第一ir。类似的,若第一交换机上没有挂接第二路由域中的vm,则第一主机中也可以原本不包括第二ir,由sdn控制器创建第二ir,此处不做限定。其中,本步骤801中sdn控制器可以根据用户指令,确定s1与s3待互通。其中,本步骤801为可选步骤。802、sdn控制器在第一ir上确定第一接口以及第一接口的第一ip地址,并在第二ir上确定第二接口以及第二接口的第二ip地址。其中,第一接口可以由sdn控制器创建,用于第一ir和第二ir互通。第一ip地址可以由sdn控制器分配,用于表示第一接口的ip地址。与之类似,第二接口可以由sdn控制器创建,用于第二ir和第一ir互通。第二ip地址可以由sdn控制器分配,用于表示第二接口的ip地址。其中,为了保证第一接口与第二接口后续能够正常连接,第一ip地址应不在第一路由域内,第二ip地址应不在第二路由域内。可选的,第一ip地址和/或第二ip地址可以属于本地链路地址网段(英文:linklocaladdress),即169.254网段。该网段一般不会被正常的网络业务使用到,将该网段的地址分配给第一接口和/或第二接口,能够保证s1和s3互通后正常网络业务的ip使用范围不会受到影响。803、sdn控制器在第一接口和第二接口之间创建网络连接,以在创建的网络连接上交换s1和s3之间的数据。具体的,sdn控制器可以通过以太接口对(英文:eth-pair)将第一接口与第二接口互连起来;或者,sdn控制器可以将第一接口与第二接口加入第一交换机,使得第一ir与第二ir可以通过第一交换机来交换s1和s3之间的报文。可选的,第一交换机可以将第一接口和第二接口加入未使用的虚拟局域网(英文:vlan)中,以避免第一接口与第二接口对正常网络业务造成影响。可选的,第一接口和第二接口可以接入相同的vlan,以提高第一ir和第二ir的报文传输效率。可选的,第一主机中也可以设置一个小型的虚拟交换机,sdn控制器可以将第一接口与第二接口加入该小型的虚拟交换机中。804、sdn控制器向第一ir对应的路由表中添加第一路由条目。该第一路由条目表示:若待转发报文的目的ip地址属于s3,则待转发报文的下一跳为第二ip地址。第一ir的对应路由表中的第一路由条目的形式有很多,例如可以如表3所示:目的ip地址下一跳网段s3第二ip地址表3sdn控制器向第一ir的路由表中添加了第一路由条目之后,第一ir就可以根据第一路由条目,将目的ip地址属于s3的待转发报文发送到第二ip地址,然后由第二ir进行后续转发操作。可选的,sdn控制器还可以向第二ir对应的路由表中添加第二路由条目,该第二路由条目表示:若待转发报文的目的ip地址属于s1,则待转发报文的下一跳为第一ip地址。第二ir对应的路由表中的第二路由条目的形式有很多,例如可以如表4所示:表4sdn控制器向第二ir的路由表中添加了第二路由条目之后,第二ir就可以根据第二路由条目,将目的ip地址属于s1的待转发报文发送到第一ip地址,然后由第一ir进行后续的转发操作。805、vm1向第一交换机发送第三报文,第三报文的目的ip地址为vm6。第一交换机接收第三报文。其中,vm1属于第一路由域中的s1网段,vm6属于第二路由域中的s3网段。806、第一交换机将第三报文发送给第一ir,第一ir接收第三报文。807、第一ir在第一ir对应的路由表中查找第三报文的匹配路由,得到第一路由条目,进而确定第三报文的下一跳为第二ip地址。于是第一ir根据查找到的第一路由条目将第三报文发往第二ir的第二接口。第二ir接收第三报文。808、第二ir查找第三报文的匹配路由,由于第二ir用于处理第二路由域的转发信息,因此能够正常查找到第三报文的下一跳。于是第二ir根据查找结果将第三报文发送给第二交换机。第二交换机接收第三报文。809、第二交换机将第三报文发送给vm6。其中,步骤803与804之间没有特定的顺序,步骤804也可以位于步骤803之前。从步骤801~809可以看出,sdn控制器通过配置主机中不同路由域对应的ir互通,使得不同路由域之间的报文可以在主机中通过多个ir进行转发,其转发路径如图8(b)所示。将图8(b)与图4对比可以发现,本发明提供的网络配置方法能够缩短网络中报文的转发路径缩短,减少了报文封装解封装的次数,节约了网络资源。且本发明使得不同路由域之间的报文无需经过网关转发,能够减小网关路由器的压力,提升sdn的可用性。值得指出的是,现有技术中,主机上一般只配置有虚拟交换机所挂接的vm所对应的ir。即现有技术中,若第一交换机上没有挂接第二路由域的vm,则会删除第二ir。但是本申请中,第二ir可以用于将第一路由域的报文转发到第二路由域,因此可选的,本发明中sdn控制器只有在第一交换机上既没有挂接第一路由域的vm也没有挂接第二路由域的vm时,才会删除第一ir和第二ir。本发明实施例还提供了相关的路由确定装置,该路由确定装置可以通过图5中的sdn控制器或图6中的计算设备来实现,或通过专用集成电路(英文:application-specificintegratedcircuit,缩写:asic)或可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)实现。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或其任意组合。该路由确定装置用于实现图7所示的路由确定方法。路由确定装置的组织结构示意图如图9所示,包括:消息接收模块901、信息确定模块902、流表发送模块903。其中,消息接收模块901用于执行图7中的步骤704,接收第一报文的报文信息。信息确定模块902用于根据第一报文的报文信息,确定第一报文的转发信息,具体可以用于执行图7中的步骤705至707。流表发送模块903用于执行图7中的步骤708。可选的,路由确定装置还可以包括可选模块:表项添加模块904,用于执行图7所示的实施例中,向第一转发信息表中添加第一目标表项的步骤702,或用于执行向第一转发信息表中添加第二目标表项以及向第三转发信息表中添加第三目标表项的步骤。相对应的,信息确定模块902则执行图7所示的实施例中,根据第一报文的目的ip地址查找第一转发信息表获取第二目标表项,并根据第二目标表项中的第二指示信息字段跳转到第三转发信息表获取第三目标表项,并根据第三目标表项中的第三指示信息字段跳转到第二转发信息表中查找第一报文的匹配表项的步骤。可选的,路由确定装置还可以包括可选模块:添加表项模块905,用于执行图7所示的实施例中,确定待添加的表项,并将待添加的表项添加到第一转发信息表中的步骤。相应的,信息确定模块则执行图7所示的实施例中,在第一转发信息表添加的表项中直接查找到匹配表项,进而获取第一报文的转发信息的步骤。本发明实施例还提供了相关的网络配置装置,该网络配置装置可以通过图5中的sdn控制器或图6中的计算设备来实现,或通过asic、cpld、fpga、gal中的一项或几项的组合来实现。该网络配置装置用于实现图8所示的网络配置方法。网络配置装置的组织结构示意图如图10所示,包括:创建接口模块1001、网络连接模块1002、路由添加模块1003。其中,创建接口模块1001用于执行图8中步骤802,网络连接模块1002用于执行图8中的步骤803,路由添加模块1003用于执行图8中的步骤804。可选的,网络配置装置还包括可选模块:ir管理模块1004,用于执行图8所示的实施例中,在第一主机不包括第二ir时创建第二ir的步骤,以及当第一交换机既没有挂接第一路由域的vm也没有挂接第二路由域的vm时,删除第一ir和第二ir的步骤。本申请中,“第一”,“第二”,“第三”等,用于区分类型相同的不同个体,并不表示这些个体之间具有顺序、层级或者其它依赖关系。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、改进等,均应包括在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1