一种虚拟网络访问外网的方法和装置与流程

文档序号:13221210阅读:368来源:国知局
技术领域本发明涉及计算机网络技术领域,特别是一种虚拟网络访问外网的方法和装置。

背景技术:
OpenFlow网络是斯坦福大学提出的一种新型网络,它使传统的二层和三层交换机具备了细粒度流转发能力,即,从传统的基于MAC地址的转发、以及基于IP地址的转发,拓展到基于包头描述的流转发。同时,将传统的控制层面从转发设备中剥离出来,所有转发行为的决策从交换机自身“迁移”到控制器上。具体地,OpenFlow网络包括控制器(Controller)和交换机(Switch),控制器向交换机下发流表,交换机根据所述流表进行包查找和转发。所述流表的每个流表项包括包头域(headerfileds)、活动计数器(counters)、以及0个或多个执行行动(actions)。目前,流表中的包头域包括12个域,具体包括:进入接口,以太网(Ethernet)源地址、Ethernet目标地址、Ethernet类型,虚拟局域网(VLAN)标识(ID),VLAN优先级,IP源地址、IP目标地址、IP协议、IPToS位,TCP/UDP目标端口、TCP/UDP源端口。每一个域包括一个确定值或者所有(any)值,为了实现数据包与流表项更准确的匹配,还可以通过掩码表示流表中每个域包括的值。活动计数器可以针对每张表、每个流、每个端口、或每个队列来计数。用来统计流量的一些信息,例如活动表项、查找次数、发送包数等。每个表项对应到0个或者多个行动,如果没有转发行动,则默认丢弃。多个行动的执行需要依照优先级顺序依次进行,但对包的发送不保证顺序。另外交换机可以对不支持的行动返回错误(unsupportedflowerror)。交换机根据所述流表对每一个包进行查找,如果包的包头域与某一流表项的包头域匹配,则执行所述流表项相关的策略,如果与任意流表项都不匹配,则交换机通过安全通道将包转发到控制器,由控制器来决策相关行为。目前,OpenFlow网络广泛应用于虚拟网络中进行流转发,针对基于OpenFlow网络进行流转发的虚拟网络,如何实现从该虚拟网络访问该虚拟网络以外的网络,例如传统的物理网络、或者其他虚拟网络,是当前需要解决的技术问题。

技术实现要素:
有鉴于此,本发明提出了一种虚拟网络访问外网的方法和装置,能够实现从虚拟网络访问该虚拟网络以外的网络。本发明提出的技术方案是:一种虚拟网络访问外网的方法,该方法应用于控制器,包括:向虚拟机下发路由信息和地址解析协议(ARP)表项信息,所述路由信息指示发往外网的流量的下一跳为预先创建的逻辑外网网关,所述ARP表项信息包括所述逻辑外网网关的MAC地址;向交换机下发流表,所述流表指示将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际外网网关。一种虚拟网络访问外网的装置,该装置包括逻辑外网网关创建模块、路由下发模块和流表下发模块;所述逻辑外网网关创建模块,用于创建逻辑外网网关;所述路由下发模块,用于向虚拟机下发路由信息和地址解析协议(ARP)表项信息,所述路由信息指示发往外网的流量的下一跳为所述逻辑外网网关,所述ARP表项信息包括所述逻辑外网网关的MAC地址;所述流表下发模块,用于向交换机下发流表,所述流表指示将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际外网网关。一种流量转发装置,应用于交换机,该流量转发装置包括流表接收模块、流量识别模块和流量转发模块;所述流表接收模块,用于接收流表,所述流表指示将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际外网网关;所述流量识别模块,用于识别出以所述逻辑外网网关的MAC地址为目的MAC地址的流量;所述流量转发模块,用于将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际外网网关。一种流量路由装置,应用于虚拟机,该流量路由装置包括路由接收模块、流量识别模块和流量路由模块;所述路由接收模块,用于接收路由信息和地址解析协议ARP表项信息,所述路由信息指示发往外网的流量的下一跳为预先创建的逻辑外网网关,所述ARP表项信息包括所述逻辑外网网关的MAC地址;所述流量识别模块,用于识别发往外网的流量;所述流量路由模块,用于将发往外网的流量路由到所述逻辑外网网关。由上述技术方案可见,本发明实施例中,首先为虚拟网络中需要与外网互通的网段创建逻辑外网网关,然后向虚拟机下发路由信息和ARP表项信息,所述路由信息指示发往外网的流量的下一跳为所述逻辑外网网关,所述ARP表项信息包括所述逻辑外网网关的MAC地址,并且,向交换机下发流表,所述流表指示将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际的外网网关。本发明实施例一方面设置实际的外网网关,用于连接虚拟网络和外网,该实际的外网网关是流量在访问外网时实际流经的网关,通常是物理外网网关,也可以是虚拟外网网关;另一方面,本发明实施例还为虚拟网络中需要与外网互通的网段创建逻辑外网网关,向虚拟机下发路由信息和ARP表项信息、向交换机下发流表,所述路由信息指示发往外网的流量的路由下一跳为所述逻辑外网网关,所述流表指示将目的MAC地址为所述逻辑外网网关的MAC地址的流量转发到实际的外网网关,从而,虚拟机根据所述路由信息和所述ARP表项信息将发往外网的流量的目的MAC地址设置为所述逻辑外网网关的MAC地址,实现了为发往外网的流量打上标签,虚拟机将打了标签的外网流量发给交换机以后,交换机识别出打了所述标签、即目的MAC地址为所述逻辑外网网关的MAC地址的流量,再根据所述流表将所述流量转发到实际的外网网关,进而通过该实际的外网网关将所述流量发往外网。可见,由于虚拟机中存在将外网流量发到逻辑外网网关的路由信息,虚拟机能够根据所述路由信息为外网流量打上标签,交换机中存在关于打了所述标签的流量如何转发的流表,虚拟机识别出打了所述标签的流量,进而根据所述流表直接将打了所述标签的流量转发到实际的外网网关,因此,不需要将发往外网的流量的首包发给控制器,能够减小对控制器的冲击,提升系统性能。并且,由于交换机中的流表是基于逻辑外网网关的MAC地址的,而逻辑外网网关是基于网段、而非单个IP地址进行创建的,因此,至多只需要为一个逻辑外网网关向交换机下发一条流表,不需要针对每一个外网IP地址分别下发流表,能够显著减少流表条数,提高流表匹配效率,提升系统性能。附图说明图1是虚拟网络基于外网网关设备访问外网的示意图;图2是本发明实施例提供的虚拟网络访问外网的方法流程图;图3是本发明实施例提供的虚拟网络访问外网时创建逻辑外网网关的示意图;图4是本发明实施例提供的虚拟网络访问外网时下发路由和ARP表项的示意图;图5是本发明实施例提供的虚拟网络访问外网时下发静态流表的示意图;图6是本发明实施例提供的虚拟网络访问外网时转发访问外网的流量的示意图;图7是本发明实施例提供的控制器的硬件结构连接图;图8是本发明实施例提供的虚拟网络访问外网的装置结构示意图;图9是本发明实施例提供的虚拟机的硬件结构连接图;图10是本发明实施例提供的流量路由装置结构示意图;图11是本发明实施例提供的交换机的硬件结构连接图;图12是本发明实施例提供的流量转发装置结构示意图。具体实施方式为了从虚拟网络访问外网,例如,从虚拟网络访问传统的物理网络,实现虚拟网络和传统的物理网络的对接,一种方案是:在网络中部署一台外网网关设备,由该外网网关设备来连接虚拟网络和外网。当虚拟网络中的设备要访问外网中的服务器时,相应流量将被转发到外网网关上进行统一转发。图1是虚拟网络基于外网网关设备访问外网的示意图。如图1所示,图1中示例的虚拟网络为Overlay网络,在Overlay网络中,每台虚拟机(VirtualMachine,VM)的默认路由的下一跳为VM网关,源VM确认报文的目的IP地址与该源VM是否属于同一网段,如果属于同一网段,该源VM会将该报文发往目的VM,如果不属于同一网段,则该源VM直接将报文的目标MAC地址填写为该默认路由的VM网关的MAC地址、并将目的IP地址填写为访问对象的IP地址。当VM需要访问外网时,由于目的IP地址是虚拟网络的外网IP地址,与VM的IP地址不属于同一网段,因此,VM会将报文的目标MAC地址填写为默认路由的VM网关的MAC地址,将报文的目的IP地址填写为访问对象的IP地址。然后,VM将所述报文发给交换机,交换机根据所述报文匹配流表,如果匹配到流表,则根据该流表转发报文,如果没有匹配到流表,交换机需要将所述报文通过安全通道发给控制器,由控制器来处理所述报文。因此,针对没有匹配流表的流量的首包,交换机都需要将其发给控制器,由控制器来进行流量的选路。当控制器发现该流量是要访问虚拟网络以外的IP地址时,控制器将向交换机下发流表,用于指示交换机将发往该IP地址的流量转发到外网网关上。该流表下发以后,交换机就可以对发往该IP地址的后续流量匹配到流表,进而将后续流量转发到外网网关上,然后,外网网关再将流量转发到外网。例如,在图1中,IP地址为2.2.2.20的VM的默认路由的下一跳是IP地址为2.2.2.1的网关,如果IP地址为2.2.2.20的VM要访问物理网络中的一个IP地址为1.1.1.1服务器,则:在步骤1中,该VM能够识别出该IP地址1.1.1.1与该VM不属于同一网段,因此,所述VM将报文的目的MAC地址填写为该VM的默认路由的下一跳,即,填写为IP地址为2.2.2.1的网关的MAC地址,将报文的目的IP填写为访问对象的IP地址,即IP地址1.1.1.1,然后,VM将所述报文发给交换机,交换机查找控制器下发的流表,发现针对IP地址1.1.1.1目前没有匹配的流表项,因此,交换机将报文通过安全通道发给控制器,由控制器处理该报文。在步骤2中,控制器向交换机下发流表,指示到目的地址1.1.1.1的报文发送到外网网关A上。在步骤3中,如果VM还有发往IP地址1.1.1.1的报文,由于交换机中已经存在针对该IP地址1.1.1.1的流表项,因此,交换机会将该报文直接转发到外网网关A上。由上述描述可见,在基于软件定义网络(SoftwareDefinedNetwork,SDN)进行流转发的虚拟网络中,当采用图1所示方案从虚拟网络访问外网时,存在以下的缺点:其一,所有访问外网的流量的首包都要发送到控制器,控制器会成为性能瓶颈。有大量外网访问时会导致控制器受到很大的冲击。其二,由于交换机中的流表是基于目的IP地址的,因此,当外网访问网点较多时,会产生大量的流表,造成流表匹配效率低下,影响性能。基于上述分析,本发明实施例提出了一种虚拟网络访问外网的方法和装置,能够避免对控制器造成冲击,提升系统性能。图2是本发明实施例提供的虚拟网络访问外网的方法流程图。如图2所示,该流程包括:步骤201,为虚拟网络中需要与外网互通的网段创建逻辑外网网关。步骤202,向虚拟机下发路由信息和地址解析协议(ARP)表项信息,所述路由信息指示发往外网的流量的下一跳为所述逻辑外网网关,所述ARP表项信息包括所述逻辑外网网关的MAC地址。步骤203,向交换机下发流表,所述流表指示将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际外网网关。由图2所示方法可见,本发明实施例为虚拟网络中需要与外网互通的网段创建逻辑外网网关,向虚拟机下发路由信息和ARP表项信息、向交换机下发流表,所述路由信息指示发往外网的流量的路由下一跳为所述逻辑外网网关,所述流表指示将目的MAC地址为所述逻辑外网网关的MAC地址的流量转发到实际的外网网关,由于虚拟机中存在将外网流量发到逻辑外网网关的路由信息,虚拟机能够根据所述路由信息为外网流量打上标签,交换机中存在关于打了所述标签的流量如何转发的流表,虚拟机识别出打了所述标签的流量,进而根据所述流表直接将打了所述标签的流量转发到实际的外网网关,因此,不需要将发往外网的流量的首包发给控制器,能够减小对控制器的冲击,提升系统性能。并且,由于交换机中的流表是基于逻辑外网网关的MAC地址的,而逻辑外网网关是基于网段、而非单个IP地址进行创建的,因此,至多只需要为一个逻辑外网网关向交换机下发一条流表,不需要针对每一个外网IP地址分别下发流表,能够显著减少流表条数,提高流表匹配效率,提升系统性能。进一步地,控制器在为虚拟网络中需要与外网互通的网段创建逻辑外网网关时,优选地,为每一个需要与外网互通的网段分别创建一个逻辑外网网关,从而能够便于对各个网段进行IP地址匹配,也便于管理各个逻辑外网网关。控制器创建逻辑外网网关以后,需要向VM下发路由信息和ARP表项信息,用于指示发往外网的流量的下一跳为所述逻辑外网网关,其中,所述ARP表项信息包括所述逻辑外网网关的MAC地址。其中,如果虚拟网络中有多个需要与外网互通的网段,并为每个网段分别创建了一个逻辑外网网关,则在向VM下发路由信息和ARP表项信息时,所述路由信息指示的发往外网的流量的下一跳为该VM所在网段对应的逻辑外网网关。比如,如果VM1-VM3属于网段1,VM4-VM6属于网段2,分别为网段1和网段2创建了逻辑外网网关1和逻辑外网网关2,则向VM1-VM3下发的路由信息中指明发往外网的流量的下一跳为逻辑外网网关1,向VM4-VM6下发的路由信息中指明发往外网的流量的下一跳为逻辑外网网关2。虚拟机根据所述路由信息和ARP表项信息处理流量。具体地,虚拟机在流量的目的IP地址与该虚拟机的IP地址不属于同一网段时,需要进一步识别所述流量的目的IP地址属于虚拟网络的内网地址还是外网地址,如果是外网地址,虚拟机将所述流量的目的MAC地址填写为所述默认路由下一跳的MAC地址,即填写为所述逻辑外网网关的MAC地址,如果是内网地址,虚拟机将所述流量的目的MAC地址填写为所述内网路由下一跳的MAC地址。其中,逻辑外网网关的MAC地址可以设置为预设的MAC地址,即设置为预设的特殊字符,然后通过下发流表,在流表中进一步指示交换机将以逻辑外网网关的MAC地址为目的MAC地址的流量的目的MAC地址修改为所述逻辑外网网关对应的实际外网网关的MAC地址,然后再转发到所述实际的外网网关。通过将逻辑外网网关的MAC地址设置为预设的MAC地址,可以便于对各个逻辑外网网关进行管理。进一步地,当有多个逻辑外网网关对应一个实际外网网关时,可以将对应相同的实际外网网关的各个逻辑外网网关的MAC地址设置为相同,将对应不同的实际外网网关的各个逻辑外网网关的MAC地址设置为不同,从而不仅能够方便对各个逻辑外网网关进行管理,而且,由于对应相同的实际外网网关的各个逻辑外网网关的MAC地址相同,因此,对于这些逻辑外网网关,只需要向交换机下发一条流表,用于指示将以这些逻辑外网网关的MAC地址为目的MAC地址的流量的目的MAC地址修改为对应的实际外网网关的MAC地址,因此能够进一步减少流表条数,提升流表匹配效率。比如,假设逻辑外网网关1和逻辑外网网关2对应实际外网网关1,逻辑外网网关3和逻辑外网网关4对应实际外网网关2,则可以将逻辑外网网关1和逻辑外网网关2的MAC地址设置为同一个值,比如设置为BB-BB-BB-BB,而将逻辑外网网关3和逻辑外网网关4的MAC地址设置为另一个值,比如设置为EE-EE-EE-EE。控制器在下发流表时,针对逻辑外网网关1和逻辑外网网关2向交换机下发流表1,指明将目的MAC地址为BB-BB-BB-BB的流量的目的MAC地址修改为实际外网网关1的MAC地址,针对逻辑外网网关3和逻辑外网网关4向交换机下发流表2,指明将目的MAC地址为EE-EE-EE-EE的流量的目的MAC地址修改为实际外网网关2的MAC地址。在另一实施例中,每个逻辑外网网关的MAC地址也可以分别设置为与该个逻辑外网网关对应的实际外网网关的MAC地址,这种情况下,交换机接收到以逻辑外网网关的MAC地址为目的MAC地址的流量以后,不需要修改目的MAC地址,而是直接将该流量转发到实际的外网网关。下面对照图1的例子,结合图3-图6,进一步示例性地详细说明本发明实施例提供的虚拟网络访问外网的流程。参见图3,先在分布式交换机的控制器上创建逻辑外网网关,并为逻辑外网网关分配MAC地址。然后,参见图4,所述控制器向虚拟机下发相应的路由表和ARP表项,所述路由表用于指示将发往外网网段的流量发到所述逻辑外网网关。之后,参见图5,所述控制器向交换机下发静态流表,所述静态流表用于指示将发往所述逻辑外网网关的流量转发到实际的外网网关。参见图6,当虚拟机中存在用于将外网流量发往逻辑网关的路由表、交换机中存在将发往逻辑网关的流量转发给实际的物理外网网关的流表以后,虚拟机根据所述路由表将外网流量的目的MAC地址标记为逻辑外网网关的MAC地址,然后发给交换机,交换机根据所述流表将所述外网流量转发给实际的物理外网网关。图3是本发明实施例提供的虚拟网络访问外网时创建逻辑外网网关的示意图。如图3所示,在控制器上创建逻辑的外网网关,比如,图3中创建IP地址为2.2.2.2的逻辑外网网关。其中,控制器可以为有需要与外网互通的每个网段分别设置一个逻辑外网网关。其中,控制器可以将逻辑外网网关的MAC地址设置为预设值,对应相同的实际外网网关的各个逻辑外网网关的MAC地址可以均设置为相同的特殊MAC,比如设置为BB-BB-BB-BB-BB-BB,图3中的BB代指了逻辑外网网关的MAC地址。通过将逻辑外网网关的MAC地址设置为预设值,可以使得逻辑外网网关的管理更加方便。控制器也可以将逻辑外网网关的MAC地址设置为该逻辑外网网关对应的实际外网网关的实际MAC地址,比如,在图3中,将逻辑外网网关的MAC地址设置为外网网关A的实际MAC地址。图4是本发明实施例提供的虚拟网络访问外网时下发路由和ARP表项的示意图。图4中,控制器向VM下发路由表和ARP表项,指明VM的默认路由的下一跳为逻辑外网网关,虚拟网络内网路由为VM原有的网关。其中,逻辑外网网关的ARP表项的MAC地址为BB-BB-BB-BB-BB-BB。参见图4,控制器向IP地址为2.2.2.20的VM下发路由表和ARP表项以后,该VM的默认路由下一跳由原有的网关2.2.2.1修改为逻辑外网网关2.2.2.2,并且,虚拟网络的内网路由下一跳仍未原有的网关2.2.2.1。在一实施例中,控制器可以与VM中能够接收路由表和ARP表项的配置模块联动,例如,与用于监控VM状态、进程以及配置VM的IP地址等操作的tools联动,实现路由表和ARP表项的下发,比如,控制器向VM的tools模块下发相应的路由表和ARP表项。图5是本发明实施例提供的虚拟网络访问外网时下发静态流表的示意图。控制器在VM对应的vSwitch上下发一条静态流表,用于指示虚拟机将所有目的MAC为BB-BB-BB-BB-BB-BB的报文的目的MAC修改为实际的外网网关A的MAC地址,然后再转发到外网网关A上。其中,如果逻辑外网网关的MAC地址已经配置为外网网关A的MAC地址了,则修改MAC地址的操作可以省掉。图6是本发明实施例提供的虚拟网络访问外网时转发访问外网的流量的示意图。由于VM上的默认路由的下一跳为逻辑外网网关,因此,当VM要访问外网中的一个地址时,如访问IP地址为1.1.1.1的服务器,VM会发现该目的IP匹配默认路由,于是将报文的目的IP地址填写为1.1.1.1,查询ARP表项后将目的MAC地址填写为逻辑外网网关的MAC地址BB-BB-BB-BB-BB-BB。如图6中的报文流所示,当所述报文到达vSwitch后,vSwitch直接匹配事先下发的目的MAC为BB-BB-BB-BB-BB-BB的流表,根据该流表,将报文的目的MAC地址修改为外网网关A的MAC地址,然后转发到外网网关A。图3-图6是以创建一个逻辑外网网关、且只有一个实际的外网网关A为例进行说明的。如果虚拟网络中有两个以上的网段需要与外网通信,则可以为每个网段分别创建一个逻辑外网网关,然后通过路由信息将该逻辑外网网关作为相应网段内VM的默认路由的下一跳,例如,如果VM1-VM3属于网段1,VM4-VM6属于网段2,分别为网段1和网段2创建了逻辑外网网关1和逻辑外网网关2,则向VM1-VM3下发的路由信息中指明发往外网的流量的下一跳为逻辑外网网关1,向VM4-VM6下发的路由信息中指明发往外网的流量的下一跳为逻辑外网网关2。如果虚拟网络中存在两个以上的实际的外网网关,则控制器在向交换机下发流表时,下发的流表根据流量的目的MAC地址属于的逻辑外网网关,指明将该流量转发到该逻辑外网网关对应的实际外网网关上。比如,假设逻辑外网网关1和逻辑外网网关2对应实际外网网关1,逻辑外网网关3和逻辑外网网关4对应实际外网网关2,则控制器下发流表1,流表1指明将以逻辑外网网关1或逻辑外网网关2的MAC地址为目标MAC地址的流量转发到实际外网网关1,控制器还下发流表2,流表2指明将以逻辑外网网关3或逻辑外网网关4的MAC地址为目标MAC地址的流量转发到实际外网网关2。本发明实施例中,分布式交换机控制器和虚拟机中运行的、能够接收路由表和ARP表项信息的配置模块联动,控制器向诸如VM-tools等所述配置模块下发指明默认路由下一跳为逻辑外网网关的路由表和该默认路由下一跳的ARP表项,从而为该虚拟机访问外网的报文打上相应的标记,即将访问外网的报文的目的MAC地址填写为所述逻辑外网网关的MAC地址。并且,控制器还向交换机下发静态流表,指示交换机将所有打上该标记的报文转发到外网网关。本发明实施例具有以下的有益效果:由于虚拟机中存在将外网流量发到逻辑外网网关的路由信息,虚拟机能够根据所述路由信息为外网流量打上标签,交换机中存在关于打了所述标签的流量如何转发的流表,虚拟机识别出打了所述标签的流量,进而根据所述流表直接将打了所述标签的流量转发到实际的外网网关,因此,不需要将发往外网的流量的首包发给控制器,能够减小对控制器的冲击,提升系统性能。并且,由于交换机中的流表是基于逻辑外网网关的MAC地址的,而逻辑外网网关是基于网段、而非单个IP地址进行创建的,因此,至多只需要为一个逻辑外网网关向交换机下发一条流表,不需要针对每一个外网IP地址分别下发流表,能够显著减少流表条数,提高流表匹配效率,提升系统性能。针对上述方法,本发明实施例还公开了一种控制器、虚拟机和交换机。图7是本发明实施例提供的控制器的硬件结构连接图。如图7所示,该控制器包括处理器、网络接口、内存和非易失性存储器,且上述各硬件通过总线连接,其中:非易失性存储器,用于存储指令代码;所述指令代码被处理器执行时完成的操作主要为内存中的虚拟网络访问外网的装置完成的功能。处理器,用于与非易失性存储器通信,读取和执行非易失性存储器中存储的所述指令代码,完成上述内存中的虚拟网络访问外网的装置完成的功能。内存,当非易失性存储器中的所述指令代码被执行时完成的操作主要为内存中的虚拟网络访问外网的装置完成的功能。从软件层面而言,应用于控制器中的虚拟网络访问外网的装置如图8所示。图8是本发明实施例提供的虚拟网络访问外网的装置结构示意图。如图8所示,该装置包括逻辑外网网关创建模块801、路由下发模块802和流表下发模块803。逻辑外网网关创建模块801,用于创建逻辑外网网关。路由下发模块802,用于向虚拟机下发路由信息和地址解析协议(ARP)表项信息,所述路由信息指示发往外网的流量的下一跳为所述逻辑外网网关,所述ARP表项信息包括所述逻辑外网网关的MAC地址。流表下发模块803,用于向交换机下发流表,所述流表指示将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际外网网关。其中,每一个需要与外网互通的网段分别对应一个逻辑外网网关;一个以上的逻辑外网网关对应一个实际外网网关,对应相同的实际外网网关的各个逻辑外网网关的MAC地址相同,对应不同的实际外网网关的各个逻辑外网网关的MAC地址不同。逻辑外网网关创建模块801,可以用于将逻辑外网网关的MAC地址设置为预设的MAC地址。所述流表进一步用于,指示将以逻辑外网网关的MAC地址为目的MAC地址的流量的目的MAC地址修改为所述逻辑外网网关对应的实际外网网关的MAC地址,然后再转发到所述实际的外网网关。逻辑外网网关创建模块801,可以用于将每个逻辑外网网关的MAC地址分别设置为与该个逻辑外网网关对应的实际外网网关的MAC地址。其中,所述路由信息可以包括:将网段内各个VM的默认路由下一跳设置为为该网段创建的逻辑外网网关。所述路由信息还可以包括:将网段内各个VM的内网路由下一跳设置为虚拟网络的内网网关。图9是本发明实施例提供的虚拟机的硬件结构连接图。如图9所示,该虚拟机包括处理器、网络接口、内存和非易失性存储器,且上述各硬件通过总线连接,其中:非易失性存储器,用于存储指令代码;所述指令代码被处理器执行时完成的操作主要为内存中的流量路由装置完成的功能。处理器,用于与非易失性存储器通信,读取和执行非易失性存储器中存储的所述指令代码,完成上述内存中的流量路由装置完成的功能。内存,当非易失性存储器中的所述指令代码被执行时完成的操作主要为内存中的流量路由装置完成的功能。从软件层面而言,应用于控制器中的流量路由装置如图10所示。图10是本发明实施例提供的流量路由装置结构示意图。如图10所示,该流量路由装置包括路由接收模块1001、流量识别模块1002和流量路由模块1003。路由接收模块1001,用于接收路由信息和地址解析协议ARP表项信息,所述路由信息指示发往外网的流量的下一跳为预先创建的逻辑外网网关,所述ARP表项信息包括所述逻辑外网网关的MAC地址。流量识别模块1002,用于识别发往外网的流量。流量路由模块1003,用于将发往外网的流量路由到所述逻辑外网网关。其中,所述路由信息可以指示网段内各个虚拟机VM将默认路由下一跳设置为为该网段创建的逻辑外网网关,将内网路由下一跳设置为虚拟网络的内网网关。流量识别模块1002,可以用于在流量的目的IP地址与该虚拟机的IP地址不属于同一网段时,识别所述流量的目的IP地址属于外网地址还是内网地址。流量路由模块1003,可以用于在所述流量的目的IP地址属于外网地址时,将所述流量的目的MAC地址填写为所述默认路由下一跳的MAC地址,在所述流量的目的IP地址属于内网地址时,将所述流量的目的MAC地址填写为所述内网路由下一跳的MAC地址。图11是本发明实施例提供的交换机的硬件结构连接图。如图11所示,该交换机包括处理器、网络接口、内存和非易失性存储器,且上述各硬件通过总线连接,其中:非易失性存储器,用于存储指令代码;所述指令代码被处理器执行时完成的操作主要为内存中的流量转发装置完成的功能。处理器,用于与非易失性存储器通信,读取和执行非易失性存储器中存储的所述指令代码,完成上述内存中的流量转发装置完成的功能。内存,当非易失性存储器中的所述指令代码被执行时完成的操作主要为内存中的流量转发装置完成的功能。从软件层面而言,应用于控制器中的流量转发装置如图12所示。图12是本发明实施例提供的流量转发装置结构示意图。如图12所示,该流量转发装置包括流表接收模块1201、流量识别模块1202和流量转发模块1203。流表接收模块1201,用于接收流表,所述流表指示将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际外网网关。流量识别模块1202,用于识别出以所述逻辑外网网关的MAC地址为目的MAC地址的流量。流量转发模块1203,用于将以所述逻辑外网网关的MAC地址为目的MAC地址的流量转发到实际外网网关。其中,所述逻辑外网网关的MAC地址可以为预设的MAC地址。所述流表进一步用于,指示将以逻辑外网网关的MAC地址为目的MAC地址的流量的目的MAC地址修改为所述逻辑外网网关对应的实际外网网关的MAC地址,然后再转发到所述实际的外网网关。流量转发模块1203,可以用于将以逻辑外网网关的MAC地址为目的MAC地址的流量的目的MAC地址修改为所述逻辑外网网关对应的实际外网网关的MAC地址,然后再转发到所述实际的外网网关。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1