一种MAC地址学习方法及装置与流程

文档序号:11148079阅读:483来源:国知局
一种MAC地址学习方法及装置与制造工艺
本发明涉及网络通信
技术领域
,尤其涉及一种MAC地址学习方法及装置。
背景技术
:SDN(SoftwareDefinedNetwork,软件定义网络)是一种新型的网络创新架构,通过控制平面和数据平面分离,实现网络流量的灵活控制。当SDN网络中存在多个数据中心时,通常将一个控制器集群分区域部署于多个数据中心。位于不同数据中心的控制器负责本数据中心的MAC(MediaAccessControl,介质访问控制)地址学习,然后,将自身学习到的MAC地址信息发送给集群内的一台主控制器,由主控制器负责向集群内其它控制器同步MAC地址信息,以完成控制器对所有数据中心MAC地址信息的学习,该过程过于繁琐,效率不高。技术实现要素:本发明的目的在于提供一种MAC地址学习方法及装置,用以简化多数据中心之间的MAC地址学习过程,提高MAC地址学习效率。为实现上述发明目的,本发明提供了如下技术方案:本发明提供一种MAC地址学习方法,应用于数据中心的控制器,所述方法包括:向本数据中心的网关设备下发EVI(EthernetVirtualizationInterconnect,以太网虚拟化互联)配置信息,以使本数据中心的网关设备与对端数据中心的网关设备建立EVI隧道;向本数据中心的网关设备发送第一LSP(LinkStatePacket,链路状态报文)报文,所述第一LSP报文携带本数据中心的至少一个客户端设备的MAC地址信息,以使本数据中心的网关设备通过所述EVI隧道将所述第一LSP报文发送给对端数据中心的网关设备,通过对端数据中心的网关设备将所述第一LSP报文上送给对端数据中心的控制器,以使对端数据中心的控制器根据所述第一LSP报文携带的MAC地址信息生成本数据中心客户端设备的MAC地址表项。本发明还提供一种MAC地址学习方法,应用于数据中心的网关设备,所述方法包括:根据本数据中心的控制器下发的EVI配置信息,建立与对端数据中心的网关设备之间的EVI隧道;将本数据中心的控制器发送的第一LSP报文通过所述EVI隧道发送给对端数据中心的网关设备,所述第一LSP报文携带本数据中心的至少一个客户端设备的MAC地址信息,以使对端数据中心的网关设备将所述第一LSP报文上送给对端数据中心的控制器,对端数据中心的控制器根据所述第一LSP报文携带的MAC地址信息生成本数据中心客户端设备的MAC地址表项。本发明还提供一种MAC地址学习装置,应用于数据中心的控制器,所述装置包括:隧道配置单元,用于向本数据中心的网关设备下发EVI配置信息,以使本数据中心的网关设备与对端数据中心的网关设备建立EVI隧道;报文发送单元,用于向本数据中心的网关设备发送第一LSP报文,所述第一LSP报文携带本数据中心的至少一个客户端设备的MAC地址信息,以使本数据中心的网关设备通过所述EVI隧道将所述第一LSP报文发送给对端数据中心的网关设备,通过对端数据中心的网关设备将所述第一LSP报文上送给对端数据中心的控制器,以使对端数据中心的控制器根据所述第一LSP报文携带的MAC地址信息生成本数据中心客户端设备的MAC地址表项。本发明还提供一种MAC地址学习装置,应用于数据中心的网关设备,所述装置包括:隧道建立单元,用于根据本数据中心的控制器下发的EVI配置信息,建立与对端数据中心的网关设备之间的EVI隧道;报文发送单元,用于将本数据中心的控制器发送的第一LSP报文通过所述EVI隧道发送给对端数据中心的网关设备,所述第一LSP报文携带本数据中心的至少一个客户端设备的MAC地址信息,以使对端数据中心的网关设备将所述第一LSP报文上送给对端数据中心的控制器,对端数据中心的控制器根据所述第一LSP报文携带的MAC地址信息生成本数据中心客户端设备的MAC地址表项。由以上描述可以看出,本发明由控制器对本数据中心网关设备进行EVI配置,通过配置后本数据中心网关设备与对端数据中心网关设备建立的EVI隧道,向对端数据中心传输本数据中心客户端设备的MAC地址信息,从而实现数据中心之间的MAC地址学习。附图说明图1是本发明实施例示出的一种MAC地址学习方法流程图;图2是本发明实施例示出的另一种MAC地址学习方法流程图;图3是本发明实施例示出的SDN网络的示意图;图4是本发明实施例示出的SDN网络内控制器的结构示意图;图5是本发明实施例示出的一种MAC地址学习装置的结构示意图;图6是本发明实施例示出的另一种MAC地址学习装置的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本发明中,每个数据中心部署各自独立的控制器集群,因此,不涉及跨数据中心之间控制器集群内部消息(例如,控制器集群内部的保活报文)的交互,在一定程度上可提高SDN网络的稳定性。基于该部署方式,本发明提出一种MAC地址学习方法,该方法由控制器对本数据中心网关设备进行EVI配置,进而通过配置后本数据中心网关设备与对端数据中心网关设备建立的EVI隧道,将本数据中心的MAC地址信息发送给对端数据中心,以使对端数据中心的控制器可以学习到本数据中心的MAC地址信息。参见图1,为本发明MAC地址学习方法的一个实施例流程图,该实施例从数据中心的控制器侧对MAC地址学习过程进行描述。步骤101,向本数据中心的网关设备下发EVI配置信息。EVI配置信息至少包含以下配置信息:在连接对端数据中心的物理接口上使能EVI;在该物理接口上配置EVI实例以及与该EVI实例关联的VLAN(这里假设关联数据中心支持的所有VLAN);使能EVI隧道,配置EVI隧道的源地址(本数据中心网关设备的IP地址)和目的地址(对端数据中心网关设备的IP地址)。同理,对端数据中心的控制器同样对对端数据中心的网关设备进行EVI配置。在完成上述配置后,本数据中心的网关设备与对端数据中心的网关设备建立EVI隧道。另外,在本数据中心的网关设备与对端数据中心的网关设备建立EVI隧道完成后,可以记录对端数据中的网关设备的设备标识与该EVI隧道的对应关系。步骤102,向本数据中心的网关设备发送第一LSP报文。控制器在完成本数据中心客户端设备的MAC地址学习后,生成携带本数据中心MAC地址信息的EVIIS-IS(EVIIntermediateSystem-to-IntermediateSystem,以太网虚拟化互联中间系统到中间系统,一种扩展后的IS-IS)的LSP报文,简称第一LSP报文。本发明利用LSP报文的特点,可在第一LSP报文中携带至少一个客户端设备的MAC地址信息,以提高数据中心之间MAC地址学习效率。控制器将第一LSP报文发送给本数据中心的网关设备,以使本数据中心的网关设备通过与对端数据中心网关设备建立的EVI隧道,将第一LSP报文发送给对端数据中心的网关设备,进而通过对端数据中心的网关设备将该第一LSP报文上送给对端数据中心的控制器,以使对端数据中心的控制器根据第一LSP报文携带的MAC地址信息生成本数据中心客户端设备的MAC地址表项。此外,控制器向本数据中心的网关设备下发第一流表项,该第一流表项用于指示本数据中心的网关设备将通过EVI隧道接收的第二LSP报文上送本数据中心的控制器,其中,第二LSP报文携带对端数据中心的至少一个客户端设备的MAC地址信息。控制器根据第二LSP报文携带的MAC地址信息,生成对端数据中心的客户端设备的MAC地址表项(用于记录MAC地址信息与学习到该MAC地址信息的接口的对应关系)。需要补充说明的是,在第二LSP报文中还携带对端数据中心网关设备的设备标识,当控制器接收到第二LSP报文时,根据本地记录的对端数据中心的网关设备的设备标识与EVI隧道的对应关系,确定与第二LSP报文中携带的设备标识对应的EVI隧道,进而确定对端数据中心的客户端设备的MAC地址表项的出接口为该EVI隧道口。当本数据中心的控制器接收到数据报文时,说明源客户端设备(发送数据报文的客户端设备)的接入交换设备上没有指引该数据报文转发的流表项。控制器根据接收的数据报文的目的MAC地址匹配MAC地址表项,当发现匹配的MAC地址表项的出接口为与对端数据中心网关设备连接的EVI隧道口时,说明该数据报文是发往对端数据中心的报文,因此,向源客户端设备的接入交换设备下发第二流表项,该第二流表项用于指示接入交换设备将源客户端设备发往对端数据中心的流量转发到本数据中心的网关设备。同时,控制器向本数据中心的网关设备下发第三流表项,该第三流表项用于指示本数据中心的网关设备将源客户端设备发往对端数据中心的流量通过与对端数据中心的网关设备建立的EVI隧道转发给对端数据中心的网关设备。该第三流表项的出接口为与对端数据中心的网关设备连接的EVI隧道口,同时,该第三流表项中还包括源客户端设备所属VLAN信息以及EVI隧道封装信息(EVI隧道的源地址和目的地址),以使本数据中心网关设备将源客户端设备发往对端数据中心的流量进行EVI隧道封装后转发给对端数据中心的网关设备。在完成第三流表项下发后,控制器将接收的源客户端设备发往对端数据中心的数据报文转发给本地数据中心的网关设备,以使本数据中心网关设备根据第三流表项将该数据报文转发给对端数据中心的网关设备,避免该数据报文的丢失。参见图2,为本发明MAC地址学习方法的一个实施例流程图,该实施例从数据中心的网关设备侧对MAC地址学习过程进行描述。步骤201,根据本数据中心的控制器下发的EVI配置信息,建立与对端数据中心的网关设备之间的EVI隧道。具体参见步骤101的描述,在此不再赘述。步骤202,将本数据中心的控制器发送的第一LSP报文通过所述EVI隧道发送给对端数据中心的网关设备。其中,该第一LSP报文携带本数据中心的至少一个客户端设备的MAC地址信息,以使对端数据中心的网关设备将第一LSP报文上送给对端数据中心的控制器,对端数据中心的控制器根据第一LSP报文携带的MAC地址信息生成本数据中心客户端设备的MAC地址表项。具体参见步骤102的描述,在此不再赘述。此外,网关设备接收本数据中心的控制器下发的第一流表项,该第一流表项用于指示网关设备将通过EVI隧道接收的第二LSP报文上送本数据中心的控制器,该第二LSP报文携带对端数据中心的至少一个客户端设备的MAC地址信息,以使本数据中心的控制器根据第二LSP报文携带的MAC地址信息,生成对端数据中心的客户端设备的MAC地址表项。在向对端数据中心转发流量之前,网关设备接收本数据中心控制器下发的第三流表项,该第三流表项用于指示网关设备将本数据中心的源客户端设备发往对端数据中心的流量通过已建立的EVI隧道转发给对端数据中心的网关设备。网关设备根据该第三流表项完成向对端数据中心的流量转发。对于网关设备通过EVI隧道接收到的对端数据中心的数据报文,网关设备在去除该数据报文的VLAN信息以及EVI封装信息后,匹配本地流表项(网关设备上存有到本数据中心所有客户端设备的流表项),将该数据报文转发给本数据中心的客户端设备。现以图3所示SDN组网为例,介绍MAC地址学习过程。数据中心1包括:SDN控制器1、网关设备GW1、交换设备OVS1、虚拟机VM1;数据中心2包括:SDN控制器2、网关设备GW2、交换设备OVS2、虚拟机VM2。控制器1对GW1进行EVI配置:在GW1的接口1上使能EVI;在接口1上配置EVI实例(记为EVI1),该EVI1关联所有需要跨数据中心访问的VLAN网络,VLAN100和VLAN200;使能EVI隧道,EVI隧道的源地址为GW1的IP地址1.1.1.1,目的地址为GW2的IP地址2.2.2.2,并将基于隧道源、目的地址建立的EVI连接标记为EVI-Link0;同时,控制器1记录本数据中心的网关设备GW1的设备标识ID1以及数据中心2的网关设备GW2的设备标识ID2,并记录ID2与EVI-Link0的对应关系。同理,控制器2对GW2进行EVI配置:在GW2的接口1上使能EVI;在接口1上配置EVI实例(记为EVI1),该EVI1关联所有需要跨数据中心访问的VLAN网络,VLAN100和VLAN200;使能EVI隧道,EVI隧道的源地址为GW2的IP地址2.2.2.2,目的IP地址为GW1的IP地址1.1.1.1,并将基于隧道源、目的地址建立的EVI连接标记为EVI-Link0;同时,控制器2记录本数据中心的网关设备GW2的设备标识ID2以及数据中心1的网关设备GW1的设备标识ID1,并记录ID1与EVI-Link0的对应关系。完成上述配置后,GW1与GW2建立EVI邻居以及EVI-Link(即EVI-Link0),在EVI-Link0上建立GW1和GW2的EVIIS-IS邻居关系,即完成EVI隧道建立。控制器1学习数据中心1的MAC地址信息,生成相应的MAC地址表项,参见表1。VLAN标识MAC地址出接口VLAN100MAC1OVS1的接口1………表1表1仅为示例性说明,且为了简化,仅以数据中心1的VM1为例,该VM1的MAC地址为MAC1,所属VLAN为VLAN100,连接在OVS1的接口1上。控制器1构造EVIIS-IS的LSP报文,在该LSP报文中携带表1中记录的本数据中心(数据中心1)中VM1的MAC地址信息(包括VLAN和MAC),同时,将LSP报文的system-id字段填写为GW1的设备标识ID1,将该LSP报文发送给GW1。由于GW1已与GW2建立EVIIS-IS邻居,因此,GW1会将LSP报文通过GW1和GW2之间的EVI隧道(隧道源地址为GW1的IP地址1.1.1.1,隧道目的地址为GW2的IP地址2.2.2.2)发送给GW2。同理,控制器2学习数据中心2的MAC地址信息,生成MAC地址表项,参见表2。表2表2的第1条MAC地址表项记录VM2的MAC地址为MAC2,所属VLAN为VLAN200,连接在OVS2的接口1上。控制器2构造EVIIS-IS的LSP报文,在该LSP报文中携带表2中记录的数据中心2中VM2的MAC地址信息,同时,将LSP报文的system-id字段填写为GW2的设备标识ID2,将该LSP报文发送给GW2。由GW2将LSP报文通过GW1和GW2之间的EVI隧道(隧道源地址为GW2的IP地址2.2.2.2,隧道目的地址为GW1的IP地址1.1.1.1)发送给GW1。控制器1给GW1下发流表项,用于指示GW1将接收到的LSP报文上送控制器1,该流表项记为FlowTable1。GW1接收到GW2发送的LSP报文后,通过匹配FlowTable1将LSP报文上送控制器1。控制器1解析LSP报文,获取LSP报文中携带的MAC地址信息,同时,获取该LSP报文携带的设备标识ID2,根据本地记录的设备标识ID2与EVI-Link0的对应关系,确定当前获取的MAC地址信息是通过GW1和GW2之间的EVI-Link0接收,生成对应MAC地址表项,参见表3。VLAN标识MAC地址出接口VLAN100MAC1OVS1的接口1VLAN200MAC2GW1的EVI-Link0………表3表3中第2条MAC地址表项记录控制器1学习到的数据中心2的VM2的MAC地址信息,对应出接口为GW1的EVI-Link0。同理,控制器2给GW2下发流表项,用于指示GW2将接收到的LSP报文上送控制器2,该流表项记为FlowTable2。GW2接收到GW1发送的LSP报文后,通过匹配FlowTable2将LSP报文上送控制器2。控制器2解析LSP报文,获取LSP报文中携带的MAC地址信息,同时,获取该LSP报文携带的设备标识ID1,根据本地记录的设备标识ID1与EVI-Link0的对应关系,确定当前获取的MAC地址信息是通过GW1和GW2之间的EVI-Link0接收,生成对应MAC地址表项,参见表4。VLAN标识MAC地址出接口VLAN200MAC2OVS2的接口1VLAN100MAC1GW2的EVI-Link0………表4表4中第2条MAC地址表项记录控制器2学习到的数据中心1的VM1的MAC地址信息,对应出接口为GW2的EVI-Link0。至此,控制器1和控制器2均已完成本数据中心以及对端数据中心的MAC地址学习。假设,VM1要访问VM2,VM1发送的数据报文在OVS1未找到匹配的转发流表项,因此,OVS1将该数据报文上送控制器1。控制器1根据该报文的目的MAC地址(VM2的MAC地址MAC2)查询表3,找到该数据报文的出接口为GW1的EVI-Link0,确定是发往其它数据中心的报文,因此,控制器1向VM1的接入交换设备OVS1下发流表项,记为FlowTable3,该FlowTable3的出接口为OVS1的接口2,用以指示OVS1将VM1发往VM2的流量通过OVS1的接口2转发给GW1;同时,控制器1向GW1下发流表项,记为FlowTable4,该FlowTable4的出接口为表3中第2条MAC地址表项的出接口EVI-Link0;此外,在该FlowTable4中还包括VM1所属VLAN的VLAN标识VLAN100,以及EVI-Link0对应的隧道封装信息(隧道源地址1.1.1.1,隧道目的地址2.2.2.2)。GW1根据FlowTable4为VM1发往VM2的流量封装VLAN头(VLAN100)和EVI头(隧道源地址1.1.1.1,隧道目的地址2.2.2.2),然后,通过GW1的EVI-Link0转发,即通过GW1和GW2之间的EVI隧道转发,由于在对GW1进行EVI配置时,已将EVI隧道配置在GW1的接口1上,因此,VM1发往VM2的流量实际是通过GW1的接口1转发给数据中心2的网关设备GW2。由于GW2的接口1上配置了与GW1的接口1相同的EVI实例EVI1,且关联了相同的VLAN网络VLAN100和VLAN200,因此,GW2可处理来自VLAN100的数据报文,GW2去除报文的VLAN头以及EVI头还原VM1发送的数据报文,按照本地保存的到达VM2的流表项(通常在VM2上线时,控制器2已向GW2和OVS2下发指引流量从GW2到达VM2的流表项)FlowTable5转发,该FlowTable5的出接口为GW2的接口2,OVS2接收到GW2转发的数据报文后,根据控制器2已下发的流量项FlowTable6转发,该FlowTable6的出接口为OVS2的接口1,VM2接收到数据报文,至此,完成整个转发过程。反之,VM2发往VM1的流量同样处理,在此不再赘述。与前述MAC地址学习方法的实施例相对应,本发明还提供了MAC地址学习装置的实施例。本发明MAC地址学习装置的实施例可以应用在控制器或网关设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4所示,为本发明MAC地址学习装置所在设备的一种硬件结构图,除了图4所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。请参考图5,为本发明一个实施例中的MAC地址学习装置的结构示意图。该MAC地址学习装置包括隧道配置单元501和报文发送单元502,其中:隧道配置单元501,用于向本数据中心的网关设备下发以太网虚拟化互联EVI配置信息,以使本数据中心的网关设备与对端数据中心的网关设备建立EVI隧道;报文发送单元502,用于向本数据中心的网关设备发送第一链路状态报文LSP报文,所述第一LSP报文携带本数据中心的至少一个客户端设备的MAC地址信息,以使本数据中心的网关设备通过所述EVI隧道将所述第一LSP报文发送给对端数据中心的网关设备,通过对端数据中心的网关设备将所述第一LSP报文上送给对端数据中心的控制器,以使对端数据中心的控制器根据所述第一LSP报文携带的MAC地址信息生成本数据中心客户端设备的MAC地址表项。进一步地,所述装置还包括:流表下发单元,用于向本数据中心的网关设备下发第一流表项,所述第一流表项用于指示本数据中心的网关设备将通过所述EVI隧道接收的第二LSP报文上送本数据中心的控制器,所述第二LSP报文携带对端数据中心的至少一个客户端设备的MAC地址信息;表项生成单元,用于根据所述第二LSP报文携带的MAC地址信息,生成对端数据中心的客户端设备的MAC地址表项。进一步地,所述第二LSP报文还携带对端数据中心的网关设备的设备标识;所述表项生成单元,具体用于根据本地记录的对端数据中心的网关设备的设备标识与EVI隧道的对应关系,确定对端数据中心的客户端设备的MAC地址表项的出接口为与对端数据中心的网关设备连接的EVI隧道口。进一步地,所述装置还包括:报文处理单元,用于当接收到数据报文时,根据所述数据报文的目的MAC地址匹配MAC地址表项;当匹配到的MAC地址表项的出接口为与对端数据中心的网关设备连接的EVI隧道口时,确定所述数据报文为发往对端数据中心的报文,向发送所述数据报文的源客户端设备的接入交换设备下发第二流表项,所述第二流表项用于指示所述接入交换设备将所述源客户端设备发往对端数据中心的流量转发到本数据中心的网关设备;向本数据中心的网关设备下发第三流表项,所述第三流表项用于指示本数据中心的网关设备将所述源客户端设备发往对端数据中心的流量通过所述EVI隧道转发给对端数据中心的网关设备。请参考图6,为本发明另一个实施例中的MAC地址学习装置的结构示意图。该MAC地址学习装置包括隧道建立单元601和报文发送单元602,其中:隧道建立单元601,用于根据本数据中心的控制器下发的以太网虚拟化互联EVI配置信息,建立与对端数据中心的网关设备之间的EVI隧道;报文发送单元602,用于将本数据中心的控制器发送的第一链路状态报文LSP报文通过所述EVI隧道发送给对端数据中心的网关设备,所述第一LSP报文携带本数据中心的至少一个客户端设备的MAC地址信息,以使对端数据中心的网关设备将所述第一LSP报文上送给对端数据中心的控制器,对端数据中心的控制器根据所述第一LSP报文携带的MAC地址信息生成本数据中心客户端设备的MAC地址表项。进一步地,所述装置还包括:流表接收单元,用于接收本数据中心的控制器下发的第一流表项,所述第一流表项用于指示所述网关设备将通过所述EVI隧道接收的第二LSP报文上送本数据中心的控制器,其中,所述第二LSP报文携带对端数据中心的至少一个客户端设备的MAC地址信息,以使本数据中心的控制器根据所述第二LSP报文携带的MAC地址信息,生成对端数据中心的客户端设备的MAC地址表项。进一步地,所述装置还包括:流表接收单元,用于接收本数据中心的控制器下发的第三流表项,所述第三流表项用于指示所述网关设备将本数据中心的源客户端设备发往对端数据中心的流量通过所述EVI隧道转发给对端数据中心的网关设备。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1